FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Actualizo registro con problemas
Hola a todos
Utilizo D6 y MS2000. Tengo una ficha en la cual hay un dbgrid para que el usuario puede seleccionar registro através del ratón o diciendole todos. El problema viene y la verdad no se porque puede ser. Muchas veces ocurre que ejecuto una sentencia de sql para que actualize todos los registros y solo me actualiza el primero y el resto se queda igual. Lo hago através del Sql Server Manager y no da problemas. Utilizo lo siguiente. if provincia.Text<> '' then begin ADOCommand1.CommandText:='Update Albaranes Set Esta =aram1 where cli=aram2 and aged =aram3'; ADOCommand1.Parameters.ParamByName('param1').Value:='S'; ADOCommand1.Parameters.ParamByName('param2').Value:=cliente.text; ADOCommand1.Parameters.ParamByName('param3').Value:=Agencia.text; end else begin ADOCommand1.CommandText:='Update Albaranes Set Esta =aram1 where cli=aram2'; ADOCommand1.Parameters.ParamByName('param1').Value:='S'; ADOCommand1.Parameters.ParamByName('param2').Value:=cliente.text; end; ADoCommand1.Execute; El caso que alguna vez me ha ocurrido que haciendo una copia de la bd luego si que funciona durante un par de veces y después ya deja de funcionar. Alguien tiene idea de que puede pasar. Un saludo y gracias por la ayuda |
#2
|
||||
|
||||
Podrías guardar en algun fichero o mostrar por pantalla las sentencias que estás enviando. Me da la impresión de que alguno de los parámetros tal vez no es el correcto.
Normalmente una consulta o funciona o no funciona, pero no tiene mucha lógica que no falle, pero sólo te actualice un registro (siendo un único UPDATE).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Esto es lo que me muestra
Update Albaranes Set Esta ='S' Where Cli ='100' Y solo me actualiza el primero |
#4
|
||||
|
||||
¿Cuantos tienes que coincidan con esta condición?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Mas de 20 registros.
|
#6
|
||||
|
||||
A mí, se me han fundido los plomos con esa respuesta .
el adocommand1 ese no tiene una variable "RowsAfected" ? a ver qué dice allí. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
||||
|
||||
Yo tampoco lo entiendo ...
Lanzas esta consulta: Y te devuelve 20 registros y lanzas esta SQL Y sólo te actualiza 1 ¿No tienes Triggers activados? ¿No tienes nada más que actualice?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
||||
|
||||
Seria de que lanzaras la consulta pero considerando el parametro provincia que utilizas en la condicional. por ahi debe de andar el problemin.
|
#9
|
||||
|
||||
¿Por qué tenemos que adivinar las tablas, los campos y los datos que tiene él?
Chico, pon ejemplito de todo y así queda claro lo que quieres hacer y por qué. Pero por favor, usa las etiquetas delphi y sql: [delphi] tu codigo delphi aqui [/delphi] [sql] tu codigo sql aqui [/sql] para que podamos verlo con identado y resaltado de sintaxis. No suele ser normal 3 días para resolver una duda de este tipo, (a menos que sea un bug del motor, o algo similar). Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#10
|
|||
|
|||
Primero disculparme por no haber contestado antes, pero no he podido.
Os muestro un ejemplo más claro de lo que me ocurre y no entiendo el porque. Intento hacer esto try Data.ConTipsaSer.BeginTrans; Data.Sql.CommandText:='Delete from Bultos where Cli ='+#39+cliente+#39; Data.Sql.Execute; Data.ConTipsaSer.CommitTrans; except Data.ConTipsaSer.RollbackTrans; end; Y me sigue borrando el primero. Lo que he hecho ha sigo generar un pequeño ejecutable con el mismo ADOConnection1 y el mismo ADOCommand1 procedure TForm1.Button1Click(Sender: TObject); var cliente:String; begin cliente:='01504'; ADOConnection1.Connected; ADOCommand1.CommandText:='Delete from Bultos where cli ='+#39+cliente+#39+') ADOCommand1.Execute; ADOConnection1.Connected:=False; end; Y me funciona. ¿No se por donde mirar? |
#11
|
||||
|
||||
¿Y estás seguro de que en el primer caso la variable cliente vale lo que debe valer?
Ya se que es un poco "rustico", pero es para asegurarte, porque lo que te está pasando está claro que es raro...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#12
|
|||
|
|||
Gracias Neftali, pero si que me muestra el cliente correctamente.
Creo que el problema no es de la base de datos, sino de las transcaciones o de algo que se queda abierto. También lo he probado con un procedimiento almacenado y lamentablemente solo me borra un registro. Voy a probar a crear otra conexión para borrar y actualizar haber que ocurre? Gracias |
#13
|
|||
|
|||
Gracias por ayudarme, lo he solucionado pero me gustaria saber por que no me hacer los delete o los update.
Bueno lo que he hecho ha sido abrir otra conexión y hacer la sentencia de sql. Y funciona a la primera. Un saludo y gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como actualizo con DataSetProvider? | felixgo | Conexión con bases de datos | 1 | 11-01-2011 18:16:22 |
como actualizo el kernel? | Robert01 | Linux | 2 | 02-11-2008 21:01:24 |
¿Actualizo a Delphi 2007? | Sr_Sombrero | Varios | 2 | 12-02-2008 14:00:18 |
Error cuando actualizo una tabla en SQL | liborio | Conexión con bases de datos | 1 | 10-01-2007 19:52:03 |
¿como actualizo Qreport? | Alfredo | Impresión | 2 | 08-03-2004 22:51:06 |
|