![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola, evidentemente si el DBGrid está en ese caso asociado a un Datasource asociado a su vez con el DataSet, te debe dar lo mismo lo escojas del DataSet tanto como del DBGrid, pero como te dice el compañero es mejor sacar los datos del mismo DataSet, siempre que no hubiese movido el puntero de la tupla que deseas obtener los datos.
No obstante también podrías sacar la información del DBGrid del siguiente modo; TablaInterbase.edit; // o .insert, append TablaInterbaseNomCampo1.value := NombreDBGrid.Fields[0].Value; . . . TablaInterbaseNomCampoN.value := NombreDBGrid.Fields[N-1].Value; TablaInterbase.Post; // o UpdateBatch() Siempre teniendo en cuenta los tipos asignados a los campos de acuerdo con las columnas que representa el DBGrid, teniendo en cuenta que el índice de campos del DBGrid comienza con el 0. Suerte. ![]()
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí. |
|
#2
|
|||
|
|||
|
Gracias por tu ayuda, con ese código casi lo he conseguido, lo que pasa es que solo lee la primera fila del DBGrid, sabrias como adelantar el puntero?
|
|
#3
|
|||
|
|||
|
Gracias por tu ayuda, casi me funciona ya la aplicacion, lo q pasa es que me saltan diferences excepciones, y algunas veces carga el primer dato y otras veces ninguno, este es el código del click boton:
procedure TForm1.Button1Click(Sender: TObject); begin IBTable1.Active:=True; While not ClientDataSet1.Eof do begin IBTable1.Insert; IBTable1.FieldByName('C_MENS_COD').Value := ClientDataSet1.Fields[0].Value; IBTable1.FieldByName('N_IND').Value := ClientDataSet1.Fields[1].Value; IBTable1.FieldByName('C_COD_INT').Value := ClientDataSet1.Fields[2].Value; IBTable1.FieldByName('C_MENS').Value := ClientDataSet1.Fields[3].Value; IBTable1.FieldByName('C_TIPO').Value := ClientDataSet1.Fields[4].Value; IBTable1.FieldByName('C_ORIG').Value := ClientDataSet1.Fields[5].Value; IBTable1.FieldByName('C_MENS_INT').Value := ClientDataSet1.Fields[6].Value; IBTable1.FieldByName('C_MOD').Value := ClientDataSet1.Fields[7].Value; IBTable1.FieldByName('L_PAR').Value := ClientDataSet1.Fields[8].Value; ClientDataSet1.Next; end; IBTable1.Post; IBTable1.Active:=False; end; Una de las excepciones que me salta es esta: Project Proyecto.exe raised exception class EDatabaseError with message "IBTable1: DataSet not in edit or insert mode"... El IBTable1 no tiene DataSet, a cual se refiere? Puede ser esta la causa de mi problema? |
|
#4
|
||||
|
||||
|
Bueno, eso haciendo una traza del flujo del programa enseguida se descubre. Suerte.
![]()
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí. |
|
#5
|
|||
|
|||
|
y como se hace una traza desde Delphi?
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|