FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error el actualizar datos en tablas DBF
Buenas a todos necesito ayuda con un error.
Explico: Estoy con Delphi 7 y me conecto a una BD de FoxPro(*.DBF) por medio de los componentes ADO que trae Delphi, el ADO lo conecto por medio de un ODBC de windows.Ya tengo otros programas que se cuelgan muy bien de esas BD y extraigo informacion para hacer reportes a la medida de mis clientes, en esta ocasion y por primera vez necesito actualizar registros en la BD. La informacion actualizada la tengo un una BD de Acces y de alli busco el registro en la tabla DBF para actualizar algunos campos. El codigo que uso para hacerlo es el siguiente:
El error que me sale me dice de manera general: "Statement too long" y es al darle el POST a la tabla. De hecho no siquiera me deja poner el 1 del campo TblProdDBFccontrol01. Alguien ha modificado tablas DBF con Delphi? Gracias... Última edición por ecfisa fecha: 21-05-2012 a las 07:09:56. Razón: Corregir problema de etiquetas en Interfaz mejorada |
#2
|
||||
|
||||
El mensaje de error lo dice claramente: "Statement too long". La única solución (creo) sería recortarla de algún modo, pero para eso habría que ver cómo es la línea en concreto. El problema es que no sé cómo conseguir ver esa línea. Supongo que TBLPRODDBF tendrá alguna propiedad como "text" o "code" o algo así y mostrarla antes del "post" a ver qué va a enviar..
|
#3
|
|||
|
|||
Bueno ya aligere un poco el codigo, lo que hice fue mejor importar a una tabla DBF los datos que necesito , pense que estando en el mismo entorno de BD no iba a tener problema y pues si lo tengo , el codigo quedo asi:
Ejecutando el codigo linea por linea simple y sencillamente es reemplazar un 2 por un 11, es decir, son numeros enteros no veo cual puede ser el problema y el mensaje de error es el mismo.. |
#4
|
||||
|
||||
No creo que el error esté en tu código, o al menos no de forma directa. El error indica que el problema es la consulta a la tabla FoxPro, que es demasiado larga. Lo que no sé es porqué. A ver si algún otro forista con más experiencia con FoxPro puede ayudar.
|
#5
|
||||
|
||||
El problema es que si el locate no encuentra ese código, no se mueve por el dataset (no hay un tblact.Next) y estás en un bucle que mira si ha llegado al final, es decir, bucle infinito.
Si encuentra el registro, será muy raro que sea el último para que EOF sea True. En plata, quita el bucle while y deja solo el locate. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
|||
|
|||
Señores ya pude encontrar el problema , al parecer el locate no funciono y puse un Query pero aun asi me ponia el error , lo que pasa es que el "Selec * from " me regresaba todos los campos de la tabla cuando yo solo quiero actualizar un solo campo y la consulta era bastante grande. La solucion fue la siguiente:
Si se dan cuenta solo me estoy trayendo los campos que necesito, asi me funciono muy bien el Post. Gracias por su tiempo... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Actualizar datos entre tablas | AnuardMichelen | Firebird e Interbase | 11 | 24-02-2012 17:51:24 |
error al momento de actualizar datos | ledesma78 | PHP | 0 | 07-10-2008 03:19:59 |
Error al actualizar datos. | vpepen | SQL | 4 | 02-04-2007 17:16:12 |
Error en Actualizar Base de datos SQL en Red | freddiaz07 | Conexión con bases de datos | 2 | 25-09-2006 22:57:10 |
Error al actualizar las tablas | Nathan | MySQL | 3 | 01-06-2006 10:05:35 |
|