![]() |
![]() |
| 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
|
|||
|
|||
|
Prueba quitando la línea que hace el Refresh...
Es lo único que veo en tu código que podría estar provocando el error. Saludos... |
|
#2
|
||||
|
||||
|
¿No sería mejor usar un "Drop table" o un "delere from" en lugar de ir borrando registro por registro?
__________________
|
|
#3
|
|||
|
|||
|
Tomando lo que dice ContraVeneno, el componente TTable tiene un método llamado EmptyTable que bien te podría servir para lo que buscas.
Saludos... |
|
#4
|
|||
|
|||
|
Gracias....he quitado la línea del refresh y me ha funcionado. Pero no lo entiendo, por que daba el error???
De nuevo, gracias. |
|
#5
|
|||
|
|||
|
Hola e nuevo, vuelvo con mis dudas...me encuentro en el intento de copiar los datos de una tabla maestro detalle a otra maestro-detalle. En un principio intentaba copiar las tablas por separado pero no me aparece la información correcta en la detalle y no me aparecía nada en la pedidos. Ahora estoy probando de otro modo, el código que utilizo es el siguiente:
Código:
DM.TblPedidos.First;
while not DM.TblPedidos.Eof do
begin
DM.TblPedidos_seg.Insert;
DM.TblPedidos_seg.FieldByName('Id').AsString := DM.TblPedidos.fieldbyname('Id').AsString;
DM.TblPedidos_seg.FieldByName('Proveedor').AsString := DM.TblPedidos.fieldbyname('Proveedor').AsString;
DM.TblPedidos_seg.FieldByName('Cod_Pedido').AsString := DM.TblPedidos.fieldbyname('Cod_Pedido').AsString;
DM.TblPedidos_seg.FieldByName('Nom_Proveedor').AsString := DM.TblPedidos.fieldbyname('Nom_Proveedor').AsString;
DM.TblPedidos_seg.FieldByName('Fecha').AsString := DM.TblPedidos.fieldbyname('Fecha').AsString;
DM.TblPedidos_seg.FieldByName('Fecha_prevista').AsString := DM.TblPedidos.fieldbyname('Fecha_prevista').AsString;
DM.TblPedidos_seg.FieldByName('Fecha_llegada').AsString := DM.TblPedidos.fieldbyname('Fecha_llegada').AsString;
DM.TblPedidos_seg.FieldByName('Gen_Albaran').AsString := DM.TblPedidos.fieldbyname('Gen_Albaran').AsString;
while not DM.TblArticulosPedido.Eof do
begin
DM.TblArticulosPedido_seg.Insert;
DM.TblArticulosPedido_seg.FieldByName('Articulo').AsString := DM.TblArticulosPedido.fieldbyname('Articulo').AsString;
DM.TblArticulosPedido_seg.FieldByName('Id').AsString := DM.TblArticulosPedido.fieldbyname('Id').AsString;
DM.TblArticulosPedido_seg.FieldByName('Cod_Pedido').AsString := DM.TblArticulosPedido.fieldbyname('Cod_Pedido').AsString;
DM.TblArticulosPedido_seg.FieldByName('Cantidad').AsString := DM.TblArticulosPedido.fieldbyname('Cantidad').AsString;
DM.TblArticulosPedido_seg.FieldByName('Ultimo_precio').AsString := DM.TblArticulosPedido.fieldbyname('Ultimo_precio').AsString;
DM.TblArticulosPedido_seg.Post;
DM.TblArticulosPedido_seg.Next;
DM.TblArticulos.Next;
end;
DM.TblPedidos_seg.Post;
DM.TblPedidos_seg.Next;
DM.TblPedidos.Next;
end;
"Corrupt Index. Index E:\webs\Hotels\delphi\DBHG_seg\DB\PEDIDOS.PX" Entonces mis preguntas son: - PQ no se pueden copiar las tablas por separado?? ![]() - Es el código lo que hace que me de el error comentado?? ![]() Espero que me podais echar una mano. Un saludo y gracias... |
|
#6
|
|||
|
|||
|
El problema puede estar en que en las relaciones maestro-detalle, se necesita que exista el registro padre antes de poder insertar los registros hijos, por aquello de la integridad referencial.
Entonces, en tu código, insertas un registro padre, pero antes de hacer el post, insertas los registros hijos y haces post a cada hijo, pero al no existir un registro padre se produce un error. Trata haciendo el post del registro padre antes de insertar los registros hijos. Saludos... |
|
#7
|
|||
|
|||
|
Hola a todos desde lo más profundo de la desesperación..después del último comentario de maeyanes parecía que me había funcionado pero de nuevo me da algún error en tiempo de ejecución, cuando no es un Corrupt Index es un Key Violation y si no un Table is not in insert o edit mode....resumiendo que me desespero. Por lo tanto os quería pedir permiso para poneros todo el código que envuelve ala operación de realizar copia para ver si de una vez por todas lo puedo a echar para adelante. No es demasiado código, y es muy simple (muy repetitivo, lo mismo para cada una de las tablas) pero es bastante y no quisiera ni que os aburrais antes de leerlo ni abusar.
Bien, espero vuestra respuesta para pasaroslo y explicaros como está hecho. Gracias de antemano y espero no estar abusando pero empiezo a estar un poco (por decir algo) de los nervios. |
|
#8
|
||||
|
||||
Solo me queda un par de dudas. No sé ni me voy a parar en mirar que campos son los que actuan en la relación maestra-detalle y cuales son claves primarias. Tú debes saberlo exactamente y debes tener mucho cuidado. Si en tblPedidos-tblArticulosPedido lo une un código que tiene el valor 10, puede que ese ya exista en tblPedidos_seg No sé pero es algo a tener en cuenta. Para los indices, asegurate de que todas las tablas tengan en el evento afterpost ttable.FlushBuffers. saludos y espero se entienda
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#9
|
||||
|
||||
|
Resumiendo:
Código:
maestra.first
while not maestra.eof do
begin
otraMaestra.Insert
copiar campos
otraMaestra.Post
Detalle.First
while not Detalle.eof do
begin
OtraDetalle.Insert;
copiar campos
OtraDetalle.Post;
Detalle.Next;
end;
Maestra.Next;
end;
usa TTable.BlockreadSize := 1024 y ttable.BlockReadSize := 0; mira en la ayuda para más información.saludos de nuevo ![]() saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Transacción en tablas InnoDB | FunBit | MySQL | 1 | 02-01-2006 17:26:58 |
| Copiar tablas Access | TONIAM | Conexión con bases de datos | 0 | 22-04-2005 11:36:18 |
| Copiar registros ordenados a otras tablas... | Phacko | Conexión con bases de datos | 6 | 06-01-2005 01:08:27 |
| ayuda al copiar dos tablas.... | ronimaxh | Firebird e Interbase | 4 | 16-04-2004 17:34:39 |
|