Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Dudas con bloqueos en SQL Server y BDE

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Dudas con bloqueos en SQL Server y BDE Responder citando

Tengo un problema muy importante con bloqueos en tablas, y es crucial que lo resuelva pq la aplicación ya está funcionando.

Es una aplicación sobre SQL SERVER 7, cliente-servidor con BDE para la conexión.
En la tabla de la BBDD hay unos 10000 registros importados directamente por el SQL Server desde ACCESS. Si intento modificar uno de estos registros, no hay problema y realiza la modificación.
El problema surge, con los nuevos registros insertados desde la aplicación de Builder, que ahora mismo serán unos 20. Los registros los inserta correctamente (uso para la inserción un Append y un Post directamente sobre la tabla), pero si intento editar uno de estos registros, me sale el famoso mensaje de BDE “Couldn’t perform the edit because another user changed the record” o algo así.

Para la modificación y moverme por los registros, uso el evento “On Data Change” del DataSource correspondiente a la tabla.

try{ if (((Field)!=NULL)&&((Field->FieldName)!="Clave_pr"))) //Si no hay cambio es navegación por los registros y no entra en la condición.
{
if(MessageDlg("Se ha modificado el campo: " + (Field->FieldName) + ". ¿Seguro que desea modificar el campo?",
mtCustom, mbOKCancel << mbOK, 0)!=mbOK)
{ Productor->cambio_Gprod=true; //Variable para diferenciar si es una nueva inserción o es una edición
sour_Productor->DataSet->UpdateRecord();
sour_Productor->DataSet->Post();
}

else {sour_Productor->DataSet->Cancel();
sour_Productor->DataSet->Open() ;}
}

}

catch(...){}
}

He estado mirando el servidor SQL Server, y cuando paro la aplicación, no quedan bloqueos. He reiniciado el servidor y tampoco. Pero si he visto que cuando inicio la aplicación genera una serie de bloqueos sobre la tabla, que no entiendo bien. Parece como si los nuevos registros que se insertan, lo hubieran hecho en modo “solo lectura”.

No se me ocurre que pueda ser. He visto algo de transacciones, pero no sabría como modificar mi código (que sería bastante) para ponerlo, y si funcionaría sin problemas. Alguna ayuda por favor???? O es algo de la configuración del servidor o del BDE???? Es muy urgente.

Gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Manejas campos tipo Float?

Cuida el numero de decimales qeu quedan en memoria, recuerdf que el tipo float guarda datos con MUCHOS decimales basura, trata de usar variabels temporales tipo double o modifica el BDE indicando el numero maximo de decimales que deseas usar
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.