Jump to content


Photo

Problema con SQLDialect


  • Please log in to reply
3 replies to this topic

#1 JRichard

JRichard

    Advanced Member

  • Miembros
  • PipPipPip
  • 67 posts

Posted 17 April 2014 - 09:41 AM

Saludos.

Traigo un problema que espero alguien me pueda ayudar a solucionar.

Actualmente me encuentro realizando una aplicación en Delphi 7 y Firebird 2.5. Dentro de mi base de datos una de las tablas tiene un campo "FECHA" tipo "DATE" y otro campo "HORA" tipo "TIME". El asunto es que cuando intento realizar cualquier operación sobre la tabla se genera una excepción. Adjunto dejo una imagen.

La excepción da a entender que es un error de base de datos "EDatabaseError" y que el tipo de dato "TIME" no es soportado por el SQL dialect 1.

Estoy haciendo uso de la tecnología DBExpress y mi SQLConnection esta configurado correctamente con SQLDialect 3 al igual que mi base de datos.

He leído posibles soluciones pero hasta el momento ninguna me ha funcionado. Hago uso de Windows 7 Ultimate x64.

1.- Borre los archivos gds32.dll de las carpetas System32 y SysWOW64, luego desinstale el Firebird. Instale el Firebird nuevamente, hice una copia del archivo fbclient.dll que se encuentra en la carpeta bin del Firebird luego lo renombre a "gds32.dll" y luego pegue en las carpetas System32 y SysWOW64.

2.- He realizado Backup/Restore 3 veces y configurado la base de datos con SQLDialect 3 y el nuevo archivo gds32.dll.

No se que me recomiendan ya no se que hacer, espero me puedan ayudar! Gracias de antemano! 

Attached Files


  • 0

#2 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2137 posts

Posted 17 April 2014 - 08:59 PM

Puedes poner el script de la DB?, Puedes poner el código  Delphi que genera este error?. ¿Utilizas campos persistentes?

Con algo más de información podríamos ayudarte.

Saludos.
  • 0

#3 cram

cram

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 832 posts
  • LocationMisiones, Argentina

Posted 19 April 2014 - 12:06 PM

¿La reconfiguras con gFix?
¿Por qué no creas al menos una tabla con uno de los campos que te da problema?, y luego pruebas con un select muy simple.
Aparte los campos deben estar definidos como DATE y TIME en forma separada, no como TIMESTAMP.
  • 0

#4 JRichard

JRichard

    Advanced Member

  • Miembros
  • PipPipPip
  • 67 posts

Posted 20 April 2014 - 05:17 AM

Saludos!

Ya resolví el problema. Era el SQLDialect que no lo estaba configurando bien al iniciar la aplicación. El SQLConnection trae por defecto una configuración predeterminada, lo estaba configurando bien, pero internamente al iniciar la aplicación mediante programación yo le pasaba 3 parámetros "user_name = SYSDBA", "password = masterkey" y "database = ruta a la base de datos". Parece ser que al pasarle algunos parámetros al SQLConnection pierde toda la configuración por defecto y se me alteraban todos los valores que configuraba por defecto en el SQLConnection lo que hacia que el SQLDialect se me colocara en 1 aunque en el SQLConnection por defecto yo le había colocado 3. La solución fue pasarle mediante programación el SQLDialect = 3 y listo asunto resuelto. Gracias por responder!  (b) 
  • 0




IP.Board spam blocked by CleanTalk.