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)
-   -   Instalación, configuración y uso de DBExpress (https://www.clubdelphi.com/foros/showthread.php?t=74788)

Casimiro Notevi 11-07-2011 22:50:12

Instalación, configuración y uso de DBExpress
 
Hola, mi impresión después de algunas horas trasteando con estos controladores es: ¿Puede algo aparentemente tan simple convertirse en algo tan diabólicamente enrevesado?.
Seguro que es fácil, pero en principio resulta desesperante.

He hecho tantas pruebas, cambios, modificaciones, renombrados, sustituciones, actualizaciones... que he perdido el norte.

Yo sólo quiero poder usar DBExpress desde un formulario, conectar a una base de datos con TSQLConnection y ejecutar SQLs mediante su componente TSQLDataSet, nada más, pero nada, se resiste.

DBXconnectiosn.ini y DBXdrivers.ini ¿pueden ir sólo en el directorio de mi programa?, cómo y dónde especificarlo.

¿Qué otros ficheros son necesarios para hacerlo funcionar?

¿Qué otros ficheros deben ir junto al programa para instalarlo en los equipos de los usuarios?

Como me resultaba imposible echarlo a andar entonces he usado los drivers de Chau Chee Yang y me encuentro con un texto que dice:

Using dbExpress Driver for Firebird
---Library file--------------IDE--------------
dbxfb40.dll...........codegear rad studio 2007
dbxfb4d12.dll........codegear rad studio 2009
dbxfb4d14.dll........codegear rad studio 2010
dbxfb4d15.dll........codegear rad studio XE

¿Qué se supone que significa, que si uso Delphi2007 debo "buscar" ese dbxfb40dll o que debo renombrar el fichero que trae (dbxfb4d15.dll) con el nombre correspondiente a mi caso?

¿La instalación en qué consiste?, copiar la dll en el directorio de mi programa parece que no sirve, sale un mensaje diciendo que no está o no es el path, ¿modifico el path en mi equipo y en los equipos de mis clientes?, ¿supongo que se podrá indicar al sistema de alguna forma en dónde quiero que esté la dll?.

Mi equipo tiene un dbxfb.dll ¿no sirve?, ¿lo borro?, ¿es indiferente?, ¿es el que debo usar en lugar del "chino"?.

En fin, me surgen un montón de dudas más, pero ya está bien por hoy.

Si hay algún alma caritativa que sea capaz de aclararme todo esto... que un genio de lámpara maravillosa le conceda 3 deseos.

Gracias y saludos.

Caral 12-07-2011 02:23:05

Hola
Amigo esto te pasa por meterte en camisa de once varas :D:p
Ya sabes, lo nuestro es IBX :D:D:cool:
Saludos

newtron 12-07-2011 09:00:10

¿Qué versión de delphi usas?

fjcg02 12-07-2011 09:58:21

Estos son los archivos que necesito tener para que me funcione el programa. Además, la librería de firebird y tener arrancado el servidor.
Tendrás que ver cuales son los ficheros dependiendo de la versión de dbexpress que utilices.

dbexpint.dll
midas.dll
-------------
programa.exe
BBDD.FDB
programa.ini


Un saludo
Por cierto, uso D7

Casimiro Notevi 12-07-2011 10:13:34

Cita:

Empezado por Caral (Mensaje 406047)
Hola
Amigo esto te pasa por meterte en camisa de once varas :D:p
Ya sabes, lo nuestro es IBX :D:D:cool:
Saludos

Es sólo para un caso muy particular, yo seguiré con fibplus (ibx con esteroides :D)

Cita:

Empezado por newtron (Mensaje 406073)
¿Qué versión de delphi usas?

Es con delphi 2007

Cita:

Empezado por fjcg02 (Mensaje 406079)
Estos son los archivos que necesito tener para que me funcione el programa. Además, la librería de firebird y tener arrancado el servidor.
Tendrás que ver cuales son los ficheros dependiendo de la versión de dbexpress que utilices.

dbexpint.dll
midas.dll
-------------
programa.exe
BBDD.FDB
programa.ini

Un saludo
Por cierto, uso D7

jejeje... vamos por parte:
  • dbexpint.dll no existe en mi equipo.
  • midas.dll sí existe, aunque pongo en el uses midaslib y ya no hace falta, se supone.
  • Programa.ini qué es.
¿Y nada más? pues creo que me has explicado poco, con eso es imposible echarlo a andar :D

newtron 12-07-2011 10:19:01

Cita:

Empezado por Casimiro Notevi (Mensaje 406083)
Es con delphi 2007

¿Y no te vienen por defecto esos componentes?

fjcg02 12-07-2011 10:24:10

Hola Casi,
los archivos que puse son los correspondientes a

Cita:

¿Qué otros ficheros deben ir junto al programa para instalarlo en los equipos de los usuarios?
Programa.ini es un ini de mi programa, no de configuración.

Saludos

DarKraZY 12-07-2011 10:43:44

No me hagas mucho caso pero creo que DBXconnectiosn.ini y DBXdrivers.ini los necesitas si utilizas la propiedad ConnectionName del TSQLConnection.

Utilizamos desde hace unos años DBExpress (DBX) y no necesitamos esos ini.
Tenemos pre-configurado el TSQLConnection (cuando cambias DriverName se configura automáticamente:
VendorLib, LibraryName y GetDriverFunction). Después modificamos los Params y listo.

Junto al ejecutable tiene que estar el fichero que aparezca en LibraryName (o accesible desde el path). Y también la instalación cliente de la base de datos (en nuestro caso DB2).

Espero servir de ayuda ;)

Saludos!

Casimiro Notevi 12-07-2011 10:50:28

Con el sistema "limpio", tal y como viene la instalación y los componentes dbexpress, si pongo un tsqlconnection en un form... no tengo nada:


Casimiro Notevi 12-07-2011 10:54:14

Cita:

Empezado por DarKraZY (Mensaje 406091)
No me hagas mucho caso pero creo que DBXconnectiosn.ini y DBXdrivers.ini los necesitas si utilizas la propiedad ConnectionName del TSQLConnection.

Pero el conectionname lo coge del dbxconnections.ini ¿no?

Cita:

Empezado por DarKraZY
Utilizamos desde hace unos años DBExpress (DBX) y no necesitamos esos ini.
Tenemos pre-configurado el TSQLConnection (cuando cambias DriverName se configura automáticamente:
VendorLib, LibraryName y GetDriverFunction). Después modificamos los Params y listo.

Pero esos datos los coge de esos .ini

Cita:

Empezado por DarKraZY
Junto al ejecutable tiene que estar el fichero que aparezca en LibraryName (o accesible desde el path). Y también la instalación cliente de la base de datos (en nuestro caso DB2).
Espero servir de ayuda ;)
Saludos!

En mi caso dice que no lo encuentra o que no está en el path.


Si es lo que decía al principio del todo, que en teoría es muy simple, pero no sé por qué motivo me parece estar en una película de esas angustiosas y extrañas que sólo hacen dar vueltas sobre lo mismo y nunca sales del laberinto :D

DarKraZY 12-07-2011 11:24:22

Cita:

Empezado por Casimiro Notevi (Mensaje 406092)
Con el sistema "limpio", tal y como viene la instalación y los componentes dbexpress, si pongo un tsqlconnection en un form... no tengo nada:


Yo tengo en
Código:

C:\Documents and Settings\All Users\Documentos\RAD Studio\dbExpress
los dos ficheros dbxconnections.ini y dbxdrivers.ini

¿Has buscado en c:?

PD: Ya verás como al final es una "tontería" :(

Casimiro Notevi 12-07-2011 11:24:38

¡¡¡Lo conseguí!!!, ¡¡¡qué fácil!!! :)

He usado el dbxdrivers.ini y el dbxconnections.ini (que alguien me explique cómo no necesitarlos).
Luego he copiado dbxfb.dll en \windows\system32\

Y nada más.

Pregunta:
¿Qué hacer para tener dbxfb.dll en el directorio del programa y que no lo busque fuera?

Otra cosa, aunque sólo necesito el TSQLConnection, pero por curiosidad, ¿cómo se usan los otros componentes (tsqldataset y tsqlquery)?, es que sale un error diciendo que son "unidireccionales", por lo que no se puede poner un dbgrid y moverse por los registros. (Asociados a un datasource, evidentemente).

DarKraZY 12-07-2011 11:40:05

Quizás esto te pueda servir http://www.danysoft.com/free/bdedbe3.pdf

Básicamente se enlazan un TSQLQuery, TDataSetProvider y TClientDataSet. El TClientDataSet es que enlazarás al TDataSource.

Y lo de los ini... como ya te comenté: sin usar ConnectionName ;)

Casimiro Notevi 12-07-2011 11:53:14

Gracias, ya veo la luz al final del túnel :)

¡¡¡Gracias a todos!!!

Delfino 12-07-2011 12:26:44

El pdf de ian marteens la Cara Oculta de Delphi6 tiene una seccion muy extensa sobre DBExpress y aunque es para Delphi6 pero es valido para todas las versiones y aclara todos los detalles del mismo y bastantes trucos entre ellos como poder prescindir de estos dos archivos ini.

Casimiro Notevi 12-07-2011 12:59:09

Excelente, no lo sabía porque en su día me salté ese capítulo que no me interesaba por aquella época.
Gracias.

Casimiro Notevi 13-07-2011 09:44:53

Hola, de momento funciona, aunque me gustaría tener dbxfb.dll en el directorio del programa y no lo encuentra a no ser que esté en windows\system32
¿Qué se debe hacer para que lo busque en el directorio del programa?

newtron 13-07-2011 09:50:55

Hola de nuevo.

Igual suelto una tontería porque yo no uso ni dbexpress ni firebird pero sin hacer nada en particular he puesto un TSQLConnection en un form, lo he configurado y me he conectado a una base de datos firebird.

Casimiro Notevi 13-07-2011 09:59:39

Yo, si fuera tú, iría rápido a comprar lotería :D

Bromas aparte, realmente el problema es que no quiero tener ficheros desperdigados y descontrolados por cualquier sitio, quiero tenerlo todo en el directorio de mi programa, para no llevarme "sustos" por cosas que instalen/desinstalen en el sistema, otras versiones, configuraciones, etc. así me curo en salud :)

Supongo que tienes dbxfb.dll en tu system32 o algún directorio del path, si lo pones en el directorio donde has grabado el programita de prueba que has hecho entonces supongo que no te funcionará.
Además del dbxconnections.ini y el dbxdrivers.ini

Pero si lo haces así y funciona entonces dime cómo lo has hecho y no olvides lo de la lotería :)

EDITO: y compra otro boleto para mí :D

newtron 13-07-2011 10:17:54

Cita:

Empezado por Casimiro Notevi (Mensaje 406225)
Supongo que tienes dbxfb.dll en tu system32 o algún directorio del path,

Pues no, ni en system32 ni en ningún lado. :confused:

¿Estaremos hablando de lo mismo o de distintas cosas?


La franja horaria es GMT +2. Ahora son las 01:48:46.

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