Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-02-2005
risu risu is offline
Registrado
 
Registrado: feb 2005
Posts: 5
Poder: 0
risu Va por buen camino
Bloqueo de tabla con BDE

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???? Es muy urgente.



Gracias
Tema Cerrado



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:40:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi