Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-07-2003
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Delphi y MySQL

tengo instalada la version 3.23.57 de MySQL y Delphi7, alguien podria darme los pasos para crear una BD y usarla con dbExpress de Delphi? me da el error de q no encuentra limysql.dll
Responder Con Cita
  #2  
Antiguo 30-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Quizá este artículo del doctor Bob te pueda ayudar :

http://www.thedelphimagazine.com/Samples/1540/1540.htm

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 30-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola

En concreto te interesa esta parte :

Cita:
Once you’ve installed MySQL 3.23.52, the first thing you need to do in Delphi is test your connection from dbExpress. The TSQLConnection component has a default MySQLConnection value for the Connection property. However, we must still change a number of properties before it works right. After you’ve selected MySQLConnection, the LibraryName gets set to dbexpmys.dll, which is the dbExpress MySQL driver for MySQL version 3.22.x. Since we’re using a higher version number 3.23.x we must explicitly change that property value from dbexpmys.dll to dbexpmysql.dll otherwise it won’t work (symptoms if you continue to use the ‘old’ DLL with version 3.23.x include the fact that you will not see table names, can only access the first 10 fields of records, and get frequent access violations).

Apart from the LibraryName, we must also take a look at the VendorLib which gets set to LIBMYSQL.dll. Unfortunately, after you install MySQL, this DLL is not added to the search path. It can be found in c:\MySQL\bin, and you can either add c:\MySQL\bin to the search path, or copy the MySQL.dll somewhere in the path, like the WinNT\System32 directory. A third alternative consists of using a hardcoded c:\mysql\bin\ LIBMYSQL.dll property value. Finally, you may want to edit the Connection properties to specify the correct database to connect to (see Figure 2).
Es decir debes modificar las propiedades del TSQLConnection, para indicar en LibraryName dbexpmysql.dll, y VendorLib a C:\MySQL\Bin\Libmysql.dll

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 31-07-2003
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
lo del LibraryName viene correcto en Delphi7, lo del vendorlib no encuentro libmysql.dll en ningun lugar del disco duro aunque tengo instalado MySQL 3.23.57, lo estroy buscando por internet pero por el momento no lo he encontrado, por si acaso es un archivo pequeño (hasta 3 mb) me gustaria si lo mandases por email (delfino03@caramail.com) gracias de antemano..
Responder Con Cita
  #5  
Antiguo 31-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Nunca he usado MySQL, solamente te he comentado lo que está en ese artículo de Bow Swart.

Está librería en concreto la deberias encontrar en c:\MySQL\bin. Lo que dice el artículo es que tienes que poner esa carpeta en el Path de Windows, o bien poner el path en la propiedad VendorLib del TSQLConnection.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #6  
Antiguo 31-07-2003
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
ya he solucionado lo de estas librerias, ahora el problema q tengo es cuando me pide el usuario y el password y lo q le doy me dice "invalid password/username", acostumbrado a interbase q tiene unos por defecto q se pueden no se con MySQL como funciona, a ver si alguien acostumbrado con ello q me lo diga, asias..
Responder Con Cita
  #7  
Antiguo 01-08-2003
Avatar de @-Soft
@-Soft @-Soft is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 200
Poder: 22
@-Soft Va por buen camino
hola

porque no bajas el mysql front, que es un entorno administrativo visual de mysql y es gratis.

para accesar escribe el nombre del usuario por defecto que es el root y el password lo dejas en blanco, luego creas tu usuario y le cambias el password al root.

no es bueno trabajar con el root porque es el usuario administrativo y se puede dañar cosas, lo recomendable es crear un usuario propio.

para trabajar con mysql y delphi lo recomendable es que utilices las librerias ZeosDB que son bastante buenas o utiliza el MyODBC.

espero haberte ayudado algo.

Saludo
__________________
Ivan Lora

http://www.arrobasoft.da.ru

Valientes son aquellas personas que triunfan donde otros fracasan.
Bienaventurado los que nada esperan porque jamas seran defraudados.
Responder Con Cita
  #8  
Antiguo 01-08-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola

¿ Has probado lo que dice el artículo ?. O sea, prueba con usuario root y contraseña en blanco. (este problema, al igual que el problema con libmysql.dll lo va a encontrar igual en dbExpress que con Zeos, etc. ...)

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 01-08-2003 a las 10:06:09.
Responder Con Cita
  #9  
Antiguo 01-08-2003
Avatar de @-Soft
@-Soft @-Soft is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 200
Poder: 22
@-Soft Va por buen camino
hola

Cita:
¿ Has probado lo que dice el artículo ?. O sea, prueba con usuario root y contraseña en blanco. (este problema, al igual que el problema con libmysql.dll lo va a encontrar igual en dbExpress que con Zeos, etc. ...)
es cierto lo que dice guillotmarc, pero las librerias Zeos tienen el archivo libmysql.dl
l y libpq.dll que son necesarios para operar mysql con delphi.

he oido decir que dbexpress no es muy recomendable para trabajar con mysql, yo no puedo agregar nada pues nunca he trabajado con dbExpress.

yo tengo una aplicacion hecha con mysql y me funciona muy bien. solo tienes que colocar la direccion IP del equipo y el usuario/password y listo conectado.

Saludo
__________________
Ivan Lora

http://www.arrobasoft.da.ru

Valientes son aquellas personas que triunfan donde otros fracasan.
Bienaventurado los que nada esperan porque jamas seran defraudados.
Responder Con Cita
  #10  
Antiguo 01-08-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Si, en este Foro dbExpress + MySQL tiene cierta mala reputación. Aunque por lo que he léido la mayoría de los problemas que aparecen son achacables al propio MySQL en lugar de a dbExpress.

Por ejemplo el tema de la librería libmysql.dll. Esta librería es el cliente de MySQL, entonces lo lógico es que la ubiquen en un lugar accesible a las aplicaciones clientes. Lo normal sería que se ubicase en el directorio de Sistema, o en el caso de que la pongan en una carpeta de MySQL, deberían añadir esa carpeta a la variable de entorno Path.

Lo que no me parece ni normal ni aconsejable es que sean tus componentes de acceso a datos los que proporcionen esa libreria. ¿ Que ocurre cuando cambias de versión ?, si en esa versión cambian la libreria de acceso para proporcionar soporte a nuevos tipos o lo que sea, entonces como la aplicación accede al Servidor mediante una libreria anticuada podemos encontrarnos multiples problemas. Lo mejor es utilizar la librería propia instalada por MySQL, aunque MySQL nos obliga a hacerla accesible manualmente.

El único problema real que conozco que haya sucedido con dbExpress y MySQL fué cuando salió la versión de MySQL con soporte de transacciones, puesto que el driver dbExpress estaba hecho para las versiones anteriores, y fallaba. Aunque esto es algo lógico y el driver dbExpress ya está actualizado (aunque claro, nadie sabe que puede pasar si intentas utilizarlo por ejemplo con las betas de MySQL 4).

Otra cosa es que uno no se sienta a gusto con dbExpress. Realmente tienen una filosofía muy distinta a componentes más tradicionales como BDE, ADO, etc. ... Lo normal es que para practicamente cualquier cosa tengamos que conectar el query dbExpress a un ClientDataSet. A mi me gusta ese enfoque, pero esto ya es un tema de gustos personales.

Lo mejor que puede hacer Delfino es probar varios componentes de acceso, y sacar sus propias conclusiones.

Un saludo.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 01-08-2003 a las 18:58:46.
Responder Con Cita
  #11  
Antiguo 01-08-2003
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Por cierto para trabajar a gusto con dbExpress existe el control TSimpleDataSet en Delphi7 (TSqlClientDataSet en Delphi6) q da posibilidad de bidireccionalidad y buffering a la BD..
Responder Con Cita
  #12  
Antiguo 01-08-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

En efecto, si solo quieres mostrar los datos en una grid, esos controles sirven perfectamente. Pero si también quieres modificar los datos, te recomiendo que uses 1 TSQLQuery + 1 TDataSetProvider + 1 TClientDataSet.

De esta forma en las propiedades de los campos persistentes del TSQLQuery puedes indicar cual es el campo de clave primaria (activando su flag pfInKey). Lo que te permite usar el modo de actualización upWhereKeyOnly o upWhereChanged del Provider, imprescindible si los datos que se modifican provienen de una consulta con una union de campos.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:49:00.


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
Copyright 1996-2007 Club Delphi