Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-01-2010
Avatar de BPL
BPL BPL is offline
Miembro
 
Registrado: ene 2009
Posts: 47
Poder: 0
BPL Va por buen camino
Question problemas al grabar con Sql...

Hola a toditos...

la verdad ya habia reportado este problemita que tengo, pero nadie contesto espero que ahora si, en un cachito que tengo........

yo trabajo con DBF, motor de BDD ADVANTAGE, Red Novell

tengo la sgte funcion hecha en delphi, para grabar en una tabla

Datamodule.tabla1.AdsConnection.BeginTransaction ;
TRY
QrAux.SQL.Clear ;
QrAux.SQL.Add('Insert Into tabla (campo1,campo2,campo3)') ;
QrAux.SQL.Add('Values (Dato1,Dato2,Dato3)') ;
QrAux.ParamByName('Dato1').AsInteger := valor1
QrAux.ParamByName('Dato2').AsInteger := valor2
QrAux.ParamByName('Dato3').AsInteger := valor3
QrAux.ExecSQL ;
QrAux.Close ;
EXCEPT
Datamodule.tabla1.AdsConnection.Rollback ;
RAISE
END ;
Datamodule.Tabla1.AdsConnection.Commit ;
Datamodule.Tabla1.Close;
ShowMessage('SE GRABO EXITOSAMENTE EL REGISTRO....');

pues bien el problema es que en cierta ocasiones eso si la minoria, me duplica el dato en la tabla grabandolo mas de una vez, si no es al mismo segundo es casi al mismo segundo.
en mi programa me doy la lata despues de grabar revisar y enviar msg si ocurrio esto...pero es un lata....

podria alguien ayudarme plis....este problema me tiene ahogada....

gracias, a todos y feliz año, sobretodo a los que me contestaran.....
Responder Con Cita
  #2  
Antiguo 07-01-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Segun veo, tal ves es por que no estas creando los parametros como deberia ser:
Haber intenta asi:
Código Delphi [-]
Datamodule.tabla1.AdsConnection.BeginTransaction ;
TRY
QrAux.SQL.Clear ;
QrAux.SQL.Add('Insert Into tabla (campo1,campo2,campo3)') ;
QrAux.SQL.Add('Values (:dato1,:dato2,:dato3)');//aqui no habias puesto los dos punto ( : ) para los parametros
QrAux.ParamByName('dato1').AsInteger := valor1
QrAux.ParamByName('dato2').AsInteger := valor2
QrAux.ParamByName('dato3').AsInteger := valor3
QrAux.ExecSQL ;
//QrAux.Close ;//<--Esto quisas esta por demas
EXCEPT
Datamodule.tabla1.AdsConnection.Rollback ;
RAISE
END ;
Datamodule.Tabla1.AdsConnection.Commit ;
Datamodule.Tabla1.Close;
ShowMessage('SE GRABO EXITOSAMENTE EL REGISTRO....');
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 07-01-2010
Avatar de BPL
BPL BPL is offline
Miembro
 
Registrado: ene 2009
Posts: 47
Poder: 0
BPL Va por buen camino
no si los tengo puesto, pero aqui se tranformaban en caritas por eso los obvie...

gracias ... pero igual ayudame.......
Responder Con Cita
  #4  
Antiguo 07-01-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.288
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿En qué momento llamas a este código?
¿Puede ser que lo estés llamando más de una vez?

Sólo viendo esto es difícil (por no decir imposible) que este código grabe dos registros iguales a no se que se llame dos veces (al menos así lo veo yo).

Si utilizas TAG's cuando escribas código delphi los mensajes se leerán mejor.
__________________
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.
Responder Con Cita
  #5  
Antiguo 07-01-2010
Avatar de BPL
BPL BPL is offline
Miembro
 
Registrado: ene 2009
Posts: 47
Poder: 0
BPL Va por buen camino
que lata eso no es porque me aseguro de apagar el boton despues de grabar...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas al grabar un registro con DBExpress Ingeniero Conexión con bases de datos 2 06-12-2008 13:47:31
Problemas al grabar Facturas o Pedidos? FelipeDiaz Conexión con bases de datos 4 14-01-2008 21:14:28
Problemas al Grabar Archivo DBF Marcelo Esparza Tablas planas 3 15-06-2006 03:56:43
Problemas al grabar en bases Paradox zugazua2001 Conexión con bases de datos 3 24-08-2005 18:21:41
Problemas al Grabar un Campo. utephi_14 OOP 5 16-04-2005 05:58:21


La franja horaria es GMT +2. Ahora son las 09:40:23.


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