Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
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
Bloqueos en SQL Server y 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
Responder Con Cita
  #2  
Antiguo 18-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Además de éste has abierto otros tres hilos con la misma pregunta

http://www.clubdelphi.com/foros/showthread.php?t=18640
http://www.clubdelphi.com/foros/showthread.php?t=18639
http://www.clubdelphi.com/foros/showthread.php?t=18638

mismo que he cerrado. Te sugiero leas la guía de estilo.

// Saludos
Responder Con Cita
  #3  
Antiguo 18-02-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Bloqueos en SQL Server y BDE

Hola

Te recomiendo que si estas trabajando con SQL 7 renuncies a la BDE y te conectes con ADO es mas directa y puedes aprovechar mejor la potencialidad de los procedimientos almacenados de SQL y veras que resolveras todos esos problemas que tienes.

Saludos
Luis Garcia
Responder Con Cita
  #4  
Antiguo 21-02-2005
risu risu is offline
Registrado
 
Registrado: feb 2005
Posts: 5
Poder: 0
risu Va por buen camino
Cita:
Empezado por roman
Además de éste has abierto otros tres hilos con la misma pregunta

http://www.clubdelphi.com/foros/showthread.php?t=18640
http://www.clubdelphi.com/foros/showthread.php?t=18639
http://www.clubdelphi.com/foros/showthread.php?t=18638

mismo que he cerrado. Te sugiero leas la guía de estilo.

// Saludos
Siento mucho haber mandado el hilo en 3 foros, pero estaba y estoy muy desesperado, y no estaba seguro de en que foro enviarlo. Me leeré la guía de estilo.

Gracias.



Y volviendo sobre mi problema, he descubierto que es del BDE y el SQL SERVER, pq si directamente inserto e intento editar un registro desde el SQL Explorer (la herramienta de Borland que utiliza el BDE para acceder a los datos) me surge el mismo problema.

Alguien tiene el BDE y el SQL SERVER 7 funcionando sin problemas??? O si se los dió, como lo arreglaron?

Es que si tengo que modificar todo el códico a ADO o DBExpress, puede ser un "infierno".

Gracias a todos.
Responder Con Cita
  #5  
Antiguo 25-02-2005
vani vani is offline
Miembro
 
Registrado: may 2004
Posts: 20
Poder: 0
vani Va por buen camino
Hola.

Pues yo tuve un problema parecido hace un par de años y la solución fue rehacer la aplicación con ADO, porque con el BDE no habia manera.

Un saludo.
Responder Con Cita
Respuesta



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 16:32:31.


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