Ver la Versión Completa : Nombre de tabla muy largo en MySql
seoane
28-02-2008, 21:30:58
Tengo una aplicación que accede a unas tablas de MySql a través una conexión odbc y un TTable, ya se que no es la mejor manera de hacerlo pero es una aplicación que "herede" de esta manera. El problema es que cuando una tabla tiene un nombre muy largo, por ejemplo "Nombre_De_Tabla_Muy_Largo", me da un error al intentar acceder a ella, y el error que me indica delphi es que no puede acceder a la tabla "Nombre_De_Tabla_Muy_L". Y si por ejemplo le cambio el nombre a la tabla por "Nombre_De_Tabla_Muy_L" si puedo trabajar con ella sin problemas, pero no puedo cambiar los nombres de las tablas porque también las utilizan otros programas para generar informes.
Lo mas curioso de todo es que la aplicación si funcionaba bien antes de que yo metiese la mano :D ... y lo único que hice fue actualizar la versión de MySql y compilar el código fuente en delphi 7 (antes estaba en delphi 3). También cambie algunas cosillas pero nada relacionado con la base de datos.
En resumen, ¿alguien conoce alguna limitación en la longitud de los nombres de MySql? ¿puede ser la versión de MySQl, del conector Odbc o de delphi? ¿a alguien le ha pasado algo parecido?
poliburro
28-02-2008, 22:23:28
Haz, la prueba con el conector ODBC y con un TAdoTable.
Si funciona bien, significará que es problema del BDE.
suerte
seoane
28-02-2008, 23:06:39
Haz, la prueba con el conector ODBC y con un TAdoTable.
Haré esa prueba poliburro. :)
Mientras, si alguien tiene mas ideas que las diga. Estoy completamente perdido en este asunto :(
poliburro
29-02-2008, 00:22:55
Mientras, si alguien tiene mas ideas que las diga. Estoy completamente perdido en este asunto :(
Te comentaba sobre ADO pues a mi no me ha dado ese problema, supongo que debe ser el BDE. Ahora bien. cuándo creas el ODBC, mysql te da opciones de configruación adicionales. Has probado con alguna de ellas? (hay una que permite omitor el caracter # en el nombe de la tabla)
keyboy
29-02-2008, 05:33:43
¿alguien conoce alguna limitación en la longitud de los nombres de MySql? ¿puede ser la versión de MySQl, del conector Odbc o de delphi? ¿a alguien le ha pasado algo parecido?
Yo creo que es esto. Hice algunas pruebas con el driver 3.51 (http://dev.mysql.com/downloads/connector/odbc/3.51.html) y observé el problema que describes. Cambié al driver 5.1 (http://dev.mysql.com/downloads/connector/odbc/5.1.html) y se resolvió.
Si aún así no funciona, puedes intentar crear una vista sobre la tabla en cuestión, y ponerle un nombre cortito a esa vista. La vista será actualizable así que puedes conectar el Table a ella y los cambios se reflejarán en la tabla original.
Bye
seoane
29-02-2008, 11:49:29
keyboy te debo una cerveza :D Cambie la versión a la 5.1 y el problema se resolvió.
Muchas gracias a los dos, me he sacado un gran peso de encima
poliburro
29-02-2008, 18:59:24
Yo creo que es esto. Hice algunas pruebas con el driver 3.51 (http://dev.mysql.com/downloads/connector/odbc/3.51.html) y observé el problema que describes. Cambié al driver 5.1 (http://dev.mysql.com/downloads/connector/odbc/5.1.html) y se resolvió.
El único pero del driver es que aún no está listo para producción. :(
keyboy
29-02-2008, 19:06:55
Ya me extrañaba que la página http://dev.mysql.com/downloads/connector/odbc/ redireccionara a la del driver 3.51 :(
Llama la atención de todas formas, que le funcionara antes de cambiar de versiones de MySQL.
En todo caso, a final de cuentas, lo más adecuado será el cambio de componentes, tal como mencionaste antes.
Bye
seoane
29-02-2008, 23:30:38
Me avergüenza decir que voy a usar la versión 5.1 aunque todavía no sea estable, pero la verdad es que me están presionando para que la aplicación funcione :(
Cuando las cosas estén mas calmadas propondré un cambio en los componentes ;)
Otra vez muchas gracias.
vBulletin v3.6.8, Derechos ©2000-2013, Jelsoft Enterprises Ltd.