![]() |
Crear Base de Datos con DbExpress
Hola a todos, es mi primer mensaje, pero espero que podais ayudarme,
trabajo con dbexpress y firebird 1.5, estoy creando una aplicación con un mantenimiento de empresas, y al crear una nueva empresa, necesito crear una base de datos del estilo GESTION-NºEMPRESA.FDB, lo he intentado con SQLConnection pero me devuelve el error "cannot prepare Create Database\Schema". Me he quedado atascado, no se como crear la base de datos utilizando puramente dbexpress. he buscado en los foros y no he encontrado una respuesta a algo similar. Gracias a todos por la ayuda que me podais prestar. |
Estimado JosePGA necesitaria el codigo que utilizas para crear la bdd para ver que esta fallando.
Saludos |
No utilizo DBeXpress... pero entiendo que el problema se da porque este motor está tratando de preparar el query antes de ejecutarlo, como si se tratase de una consulta. El error, por lo que puedo imaginar, no lo genera el propio DBX, sino ib/fb.
Es probable que haya un componente que no tenga este comportamiento, que haya una propiedad que lo condicione o bien que haya una forma distinta de invocar su ejecución (en otros motores puede ser ExecSQL, por ejemplo). En fin, la idea es lanzar directamente la instrucción al motor, sin intentar prepararla. Hasta luego. ;) |
Ejemplo de código
Gracias por vuestros comentarios, aqui os adjunto un ejemplo de como lo he intentado hacer ( tambien lo he realizado con parametros, pero me da el mismo mensaje de error ):
procedure CrearBaseDatos; Var SQLstmt : String; Begin SQLstmt := 'CREATE DATABASE ' + Chr( 39 ) + 'C:\BASE.FBD' + Chr( 39 ); SQLstmt := SQLstmt + ' PAGE_SIZE 8192'; SQLstmt := SQLstmt + ' USER ' + Chr( 39 ) + 'CODUSUARIO' + Chr( 39 ); SQLstmt := SQLstmt + ' PASSWORD ' + Chr( 39 ) + 'CLAVE' + Chr( 39 ); SQLstmt := SQLstmt + ' DEFAULT CHARACTER SET ISO8859_1'; SQLConexionGeneral.ExecuteDirect( SQLstmt ); End; El problema es que no se como evitar que prepare el script, y no se como lo gestionan otros programadores que trabajan con dbexpress. gracias por adelantado a vuestra colaboración |
Crear Base de Datos, alguien me puede ayudar ?
Cita:
sigo atascado con el tema, nadie se ha encontrado con ese problema ? |
Dbexpress no es capaz de preparar el comando, es una falencia del driver pero puedes usar lo siguiente.
Saludos |
Gracias por la ayuda
Hola, gracias a todos por la ayuda, aunque al final lo he solucionado de otra forma, que es la siguiente:
como no podia atarme a que solo fuera firebird/interbase, he creado una base de datos base, es decir, al crear una empresa la copio con el nombre mas el codigo de la empresa, aunque tambien me ha dado dolores de cabeza, pues al intentar copia me daba error de que no podia encontrar el archivo origen cuando este estaba en una ruta de red, me he repasado los hilos del foro pertinente, y no encontraba la solución, al final me he dado cuenta de que la ruta que se debe indicar es una ruta de red de windows diferente a la que se indica en las bases de datos, ejemplo: Base de datos: Servidor:\Aplicacion\NombreArchivo.FBD Ruta para copias: \\Servidor\Disco C(C)\Aplicacion\NombreArchivo.FBD Espero que os sirva de ayuda Un saludo a todos |
La franja horaria es GMT +2. Ahora son las 12:38:59. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi