FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
otro problema con Firebird
Hola a todos, se ke este tema esta más ke tokado pero kon todo y ke he revisado las respuestas a otros, no he podido resolver el mio .
Lo ke hago es solo seleccionar un registro una tabla y ese agregarlo a una tabla temporal, y agregado debe mostrarse este registro en otro grid, el problema es ke no se ve ke lo haga, debo salir del ejekutable y volver a entrar para ver ke se haya hecho la transaccion. Se ke debo poner "commit" pero me marca error, alguien me puede ayudar? de antemano gracias. kodigo: ibtable1.Open; ibtable2.Open; while not(ibtable1.Eof)do begin if(regselec=string(ibtable1.fieldbyname('CANCION').value))then begin ibtable2.Insert; ibtable2.FieldByName('ID').Value:=ibtable1.FieldByName('ID').Value; ibtable2.FieldByName('CANCION').Value:=ibtable1.FieldByName('CANCION').Value; ibtable2.FieldByName('ARTISTA').Value:=ibtable1.FieldByName('ARTISTA').Value; ibtable2.FieldByName('ALBUM').Value:=ibtable1.FieldByName('ALBUM').Value; ibtable2.FieldByName('UBICACION').Value:=ibtable1.FieldByName('UBICACION').Value; ibtable2.Post; ibtransaction2.Commit; end; ibtable1.next; end; ibtable1.Close; ibtable2.Close; |
#2
|
||||
|
||||
porque estas usando dos transacciones, creo suponer eso:
ibtransaction2.Commit; aparte la siguiente linea, esta dentro del while, que si encuentra lo que buscas, haga el insert el post y das commit y sigues dentro del bucle. está mal implemntada la lógica. El problema quizas sea que tus dos tablas apuntan a la transsacion número uno. Bueno, eso es loq ue pienso, no soy mago para adivinar la lógica de tu aplicación, pero viendo la parte que estas mostrando, puede ser eso.... ¿Dónde abres las tablas? ¿Cuándo haces el refresh?
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás... análisis de información análisis y diseño de sistemas Paoti Rios Reséndiz |
#3
|
|||
|
|||
A mi la logica no me parece que este muy mal, lo que no dice es que error le muestra al hacer el commit.
Ademas, cierra las dos tablas, asi que o hay más codigo, o es imposible que se vea nada en el grid. |
#4
|
||||
|
||||
correcto, pero cuando haces el commit, se cierran las tablas implicadas, y despues hace un table1.next, está algo ilógico.
Bueno, en mi punto de vista, se necesita más retroalimentación por parte del compañero, para poder ayudarle. Nos vemos
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás... análisis de información análisis y diseño de sistemas Paoti Rios Reséndiz |
#5
|
|||
|
|||
Aklaraciones
hola de nuevo a todos y gracias por el interes, tratare de explicarme en la logika del kodigo
procedure TForm2.DBGrid1DblClick(Sender: TObject); begin regselec:=dbgrid1.Fields[0].AsString; ibtable1.Open; ibtable2.Open; * hago un doble click a un registro del grid a fin de seleccionarlo y realize la siguiente accion while not(ibtable1.Eof)do begin if(regselec=string(ibtable1.fieldbyname('CANCION').value))then * este ciclo es una busqueda para ubicarme sobre los campos correspondientes a la celda seleccionada begin ibtable2.Insert; ibtable2.FieldByName('ID').Value:=ibtable1.FieldByName('ID').Value; ibtable2.FieldByName('CANCION').Value:=ibtable1.FieldByName ('CANCION').Value; ibtable2.FieldByName('ARTISTA').Value:=ibtable1.FieldByName('ARTISTA').Value; ibtable2.FieldByName('ALBUM').Value:=ibtable1.FieldByName('ALBUM').Value; ibtable2.FieldByName('UBICACION').Value:=ibtable1.FieldByName('UBICACION').Value; ibtable2.Post; ibtransaction2.Commit; end; ibtable1.next; end; ibtable1.Close; ibtable2.Close; end; * al encontrar los campos correspondientes estos se copian a otra tabla identica que es solo temporal, el ciclo se detiene cuando encuentra la coincidencia del campo seleccionado. Ya con esto, muestro los datos copiados en otro grid, el problema es que si lo hace bien todo, solo ke muestra los resultados al salir y volver a entrar a la aplikacion, es decir, no se actualiza al momento. Espero haberme dado a entender, Gracias!!! |
#6
|
||||
|
||||
Por favor utilizad TAG's cuando escribáis código Delphi en los mensajes.
__________________
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. |
#7
|
|||
|
|||
A parte de lo dicho por Neftali, no te has explicado mejor, ya que has vuelto a poner lo mismo!!!!
Cita:
Supongo que ese es el error que te da, y que no nos quieres decir. Tu quieres que el resultado aparezca en otro grid, pero no nos dices nada de él, ni a que tabla esta enganchado, ni si abres o refrescas la tabla. |
#8
|
||||
|
||||
No está muy claro este hilo, pero me parece que tienes que usar "CommitRetaining" en lugar de Commit, así hace que aparezcan los datos de forma "instantánea".
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Correr aplicación con firebird en K\: y S.O. en otro disco | coyotaxo | Conexión con bases de datos | 0 | 12-10-2005 22:01:23 |
Problema acceso a popiedad otro formulario | mguixot | OOP | 1 | 07-09-2005 15:42:15 |
problema al crear un formulario de otro ya creado | soyhugo | Varios | 2 | 01-02-2004 13:11:54 |
Otro problema relacionado con filtros (urgente) | ADN | Conexión con bases de datos | 6 | 28-07-2003 13:50:44 |
otro problema... | superhopi | OOP | 9 | 15-05-2003 10:26:40 |
|