Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   aplicacion con dbexpress (https://www.clubdelphi.com/foros/showthread.php?t=60887)

pablonill 17-10-2008 04:18:53

aplicacion con dbexpress
 
Hola, gracias antes que nada, mi consulta es la siguiente, que necesito llevar para poder trasladar mi aplicacion con dbexpress a otro equipo para que funcione, trabajo con firebird, muchas gracias.

mightydragonlor 20-10-2008 18:45:00

hola, ps la verdad es que estoy desarrollando una aplicacion de prueba con dbExpress, aunque aún no he hecho la pruba en otros equipos tengo entendido qur debes copiar la libreria dbxint30.dll que se encuencra en el direcotorio $(BDS)\Bin, y porsupuesto tener instalado en Firebird Client en el PC.

pablonill 21-10-2008 02:29:44

Bueno, fue un dolor de cabeza pero esta solucionado, paso a explicar como lo solucione y espero que le pueda servir a alguien.

Detalle del sistema para tener en cuenta.

- Delphi 2009
- DBExpress + ClientDataSet
- Firebird 2.11
- Windows XP

Bueno principalmente necesitamos lo siguiente.

- dbxint.dll
- midas.dll
- FBClient.dll
- GDS32.dll

y lo siguiente que se encuentra generalmente en C:\Documents and Settings\All Users\Documentos\RAD Studio\dbExpress
son dos archivos:

- dbxconnections.ini
- dbxdrivers.ini

Los archivos antes nombrados copienlo en el directorio de la aplicacion, no se olviden de instalar firebird cliente o servidor segun corresponda.

Suerte y espero haberles sido de ayuda.

Muchas gracias a toda la gente que hace posible este foro, y gracias a mightydragonlor por tu gran ayuda.

Delfino 21-10-2008 12:13:11

Puedes incrustar la midas.dll en tu aplicacion añadiendo la unidad Midaslib a la seccion uses del Project o del MainForm,
Si tienes q usar tanto fbclient.dll como gds32.dll significa q usas un driver para Interbase, si usas directamente el driver para Firebird solo se necesita el primero..
Saludos ;)

hibero 22-10-2008 21:36:33

¿ Consigues conectar con firebird 2.x con delphi 2009 sin problemas con el driver de interbase ?. Es que a mi desde que pongo un campo memo me falla la aplication con un error, que segun he leido en el foro es por dbexpress 4 que no soporta bien firebird. He hecho la misma con firebird 1.5 y lo mismo

salu2

pablonill 22-10-2008 22:09:25

Me conecto y realizo actualizaciones sin problema, utilizo clientdataset y la verdad que el unico problema que tube es que no pude agregar un campo blob con imagen, pero de ahi en mas ningun inconveniente. Si podes dar mas detalles de tu inconveniente te podemos ayudar.

Ana María 23-10-2008 19:00:31

Por favor
 
Hola, de antemano muchas gracias por su atención. Quisiera PabloNill
que me contaras con qué Driver de dbExpress te conectas?.

Estoy haciendo pruebas con BDS 2006, Firebird 2.1, y una versión de prueba del driver desarrollado por DevArt.

gracias

pablonill 23-10-2008 22:21:34

Hola, te cuento que estoy usando delphi 2009, y estoy usando el driver que trae por defecto, creo que es el de code gear. La verdad que la aplicacion que desarrolle la estan usando a full y no tiene ningun inconveniente.

totote 27-10-2008 17:41:57

Hola Pablinill, te queria consultar si no agregaste algo más de código para poder conectarte a la base de datos, paso a comentarte el problema que tengo:

Estoy trabajando en una aplicación y utilizo Delphi 2007 + dbExpress + Firebird 2.0
cuando en el evento onCreate de DataModule, le agrego este código:

Código Delphi [-]
Conexion.Close;
Conexion.ConnectionName:= 'ROT';
Conexion.LoadParamsFromIniFile(GetCurrentDir + '\cnx.ini');
Conexion.Open;

Donde "Conexion" es un componente TSQLConnection de dbExpress, "ROT" es el nombre de mi conexión en el archivo "dbxconnections.ini" y "cnx.ini" es el archivo "dbxconnections.ini" solamente que lo renombre, en mi pc funciona perfecto el problema es cuando tengo que transportar la aplicación, cabe acalarar que al transportarla lo hago con los archivos dbxint30.dll, FBCLIENT.dll, GDS32.dll, midas.dll, msvcp60.dll, Msvcr71.dll, msvcrt.dll, cnx.ini y dbxdrivers.ini y la base de datos se encuentra en un subdirectorio llamado DB, resulta que en algunos casos o en algunas computadoras genera un error el sistema donde no me especifica cual es el motivo y solamente aparece el famoso cartel de windows "protaller.exe ha efectuado una operacion no válida y debera cerrarse.... Detalles Enviar No eviar", en otros casos muestra el error de dbExpress que no encuentra la base de datos y en otros el sistema funciona correctamente, en todas las pc lo instalo de la misma forma, primero instalo firebird, luego registro midas.dll y luego abro el sistema, no se lo que estoy haciendo mal ya que en algunas funciona y en otras no.

Espero que puedas ayudarme o comentarme si haces algo más al transportar tus aplicaciones.

Saludos.

Ana María 28-10-2008 22:21:17

Hola totote, Yo tengo BDS 2006, win Xp, dbExpress, ClientDataset y Firebird 2.1, he hecho algunas pruebas y me funciona todo muy bien.

El problema que tienes podría tratarse de que haya aplicaciones previas en algunas máquinas que podrían estar usando alguna versión distinta de dbExpress o Firebird.

Lo que yo he hecho es compilar estáticamente el proyecto, para esto he declarado en la clausula uses del proyecto "MidasLib" y "dbExpINT" ; con esto no hay necesidad de llevar dbxint30.dll ni tampoco hay necesidad de llevar y menos de registrar midasDll, y así podrán convivir pacíficamente aplicaciones que usen versiones diferentes de estas librerías.

Observa el siguiente ejemplo:

Código Delphi [-]

//Agregando librerias
program prClientDll;

uses
  Forms, MidasLib, dbExpint,
  UMain in 'UMain.pas' {Form1},.....

// Evento BeforeConnect de un TSQLConnection cuyo nombre es conexion

procedure TPruebaServidor.ConexionBeforeConnect(Sender: TObject);
var
   FileName: string;
begin
   FileName := ChangeFileExt(GetModuleName(HInstance), '.ini');//agregar //SysUtils
   if FileExists(FileName) then
      Conexion.LoadParamsFromIniFile(FileName);
end;// filename debe tener el mismo nombre que la aplicación con extensión //.ini

Con GetModuleName obtienes el nombre de la aplicación y con HInstance te aseguras de que el evento funcione así muevas el Módulo de datos a una DLL ActiveX para hacer un servidor o lo que se te antoje ( si la aplicación es multipuesto).

Ahora si se tratara de una aplicación monopuesto sería mucho mas fácil al tratarse de un Servidor Embebed yo lo conecto con tan solo esto:

Código Delphi [-]
procedure TPruebaLocal.ConexionBeforeConnect(Sender: TObject);
begin
Conexion.Params.Values['Database']  := ExtractFilePath(Application.ExeName)+'\Prueba.fdb';
end;

El resto de parámetros de la conexión los configuro en tiempo de diseño. Y solo copio las DLLs del Fierebir Embebed (que son generalmente 4 si no necesitas algo especial) mas los archivos firebird.conf y Firebird .Msg en el directorio de la aplicación renombrando FbEmbed.dll por GDS32.dll y listo.

Esto a mí me funciona bién en varias maquinas en las que he hecho las pruebas, espero te sirvan de algo.

Saludos.

totote 29-10-2008 12:21:56

Ana maría funcionó cargar el archivo en el evento BeforeConnect del componente TSQLConnection, lo que no me funcionó fue agregar "dbExpint" en las uses del proyecto, me genera un error que no encuentra "dbExpint.dcu" alguna idea?

Gracias por la ayuda me sacaste un dolor de cabeza jeje

Ana María 29-10-2008 14:15:56

Por fortuna ese ya es un problema menor, en BDS 2006 dbExpint.dcu está en "C:\Archivos de programa\Borland\BDS\4.0\lib" que se carga por defecto en el Tools - Options - Delphi Options- Library Win32 - libray Ptah como $(BDS)\Lib.

Intenta cambiando dbexpint al uses de cualquier otra unit del proyecto.

Recuerda que tienes que compilar sin Runtime Packages quitando la selección en Project - packages - Built with Runtime Packages.

Si no logras solucionar el problema de dbExpint.dcu quita dbexpint del uses del proyecto y copia en el directorio de la aplicación dbxint30.dll o dbxint40.dll según la versión de dbExpress que use D2007(que no se cual es, en BDS2006 es dbxint30.dll) y configura en project -Options- directories/conditional- search Path el directorio de la aplicación.

Recuerda que no necesitas registrar Midas.dll, ni llevar dbxconections.ini, ni tampoco bdxDrivers.ini en ninguno de los casos.

Saludos

Kipow 21-11-2008 01:18:38

Seria buenisimo contar con el source code de esa dll. sera que alguna libreria de terceros tendra los fuentes para haces eso?

pablonill 21-11-2008 01:36:26

Hola gente, el que quiera los sources del proyecto que hice que me mande un correo asi les envio y de paso lo estudiamos y podemos ver que se le puede mejorar, muchas gracias.

correo: p a b l o n i l l @ h o t m a i l . c o m

vroa74 11-07-2013 22:10:34

buen dia
tambien me interesa los codigos del la firebird embebed + delphi
porfavor v r o a 7 4 @ g m a i l . c o m

Casimiro Notevi 11-07-2013 22:44:45

Este hilo es de hace 5 años, de todas formas, por favor, hacer las cosas que las veamos los demás, que esto son unos foros para aprender, no un intercambio de mensajes privados por email.
No olvidar nuestra guía de estilo, gracias.

vroa74 12-07-2013 02:54:25

Cita:

Empezado por Casimiro Notevi (Mensaje 463720)
Este hilo es de hace 5 años, de todas formas, por favor, hacer las cosas que las veamos los demás, que esto son unos foros para aprender, no un intercambio de mensajes privados por email.
No olvidar nuestra guía de estilo, gracias.

Pido una sincera disculpa, he navegado por la web intentando hacer una aplicacion con firebird embebed, hasta el momento todos los intentos has sido infructusos, rebise ya el ftp y no he podido encontrar lo que busco.

Casimiro Notevi 12-07-2013 10:05:22

Cita:

Empezado por vroa74 (Mensaje 463769)
Pido una sincera disculpa, he navegado por la web intentando hacer una aplicacion con firebird embebed, hasta el momento todos los intentos has sido infructusos, rebise ya el ftp y no he podido encontrar lo que busco.

Básicamente, para usar firebird "embebed" solamente has de descargarlo de la web de firebirdsql.org y copiarlo junto a tu ejecutable, nada más.
Si tienes alguna duda, ya sabes, aquí estamos.

Casimiro Notevi 12-07-2013 10:10:11

Ya he visto que has abierto un nuevo hilo ^\||/


La franja horaria es GMT +2. Ahora son las 04:56:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi