![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Hola,
Me encuentro con el problema de que cuando voy copiando todos los registros de una tabla FoxPro hacia una tabla Access con la misma estructura a través de un bucle registro por registro, al cabo de un rato me da el siguiente error: "Data provider or other service returned an E_Fail Status". Y como cosa a destacar, decir que pasa cuando llevo copiados 25000 registros, ni uno más ni uno menos. Me ayudais? Gracias. |
|
#2
|
||||
|
||||
|
¿Puedes poner qué componentes estás utilizando? ¿cómo te conectas a cada BD? ¿versión de Delphi? Si el código de copia no es muy rande tal vez tb ayudaría.
¿Has mirado ayuda o probado el TBachMove a ver si se genera el mismo error? Podría sevir para descartar algun origen desde donde se produce el error.
__________________
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
|
|||
|
|||
|
Utilizo un TTable en el que està la tabla access donde guardo los registros, y un TADOQuery donde hago la consulta de la tabla FoxPro y de la que obtengo los registros. El código es el siguiente:
procedure TFAssistent.VolcarTiclin(); begin ADOQueryAux.Close; ADOQueryAux.SQL.Clear; ADOQueryAux.SQL.Add('SELECT canped, codart, fectic, preven'); ADOQueryAux.SQL.Add('FROM ticlin'); ADOQueryAux.Open; while not ADOQueryAux.Eof do begin TAccessDades.Insert; TAccessDades.FieldByName('canped').AsString := ADOQueryAux.Recordset.Fields.Item[0].Value; TAccessDades.FieldByName('codart').AsString := ADOQueryAux.Recordset.Fields.Item[1].Value; TAccessDades.FieldByName('fectic').AsString := ADOQueryAux.Recordset.Fields.Item[2].Value; TAccessDades.FieldByName('preven').AsString := ADOQueryAux.Recordset.Fields.Item[3].Value; TAccessDades.Post; ADOQueryAux.Recordset.MoveNext; end; end; //_________________________________________________________________________ |
|
#4
|
||||
|
||||
|
Algunas cosas que puedes probar:
* Revisa la versión que tienes instalada de las MDAC. Sé que en algunos casos algunos errores de éste tipo se solventan instalando las últimas versiones. * Revisa la propiedad CursorLocation y CursorType de la conexión de ADO, Prueba con las diferentes opciones.
__________________
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
|
||||
|
||||
|
Independientemente de localizar el fallo, yo quitaría:
TAccessDades.Post; del bucle y solamente lo pondría al salir del mismo. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#6
|
|||
|
|||
|
Siento decíros que nada de lo que me habéis dicho ha funcionado.
Por cierto, tengo Win2000, Delphi 7 y Access2000. He probado incluso de aumentar hasta 512 - 768 mb's el archivo de intercambio de windows, pero nada de nada. |
|
#7
|
||||
|
||||
|
A proposito... Si el runtime de foxpro esta instalado porque no usas las funciones de Fox? Puedes hacer es crear una automatizacion OLE (creo que es "VisualFoxPro.Application") y con DoCMD corres comandos de FoxPro. Es muho mas optimo asi...
__________________
El malabarista. |
|
#8
|
||||
|
||||
|
Si mal no recuerdo el problema es el proveedor OLEDB de foxpro. NO sirve el de la version 6 de foxpro. Bajate el ultimo proveedor OLEDB de foxpro...
__________________
El malabarista. |
![]() |
|
|
|