Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-11-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Mostrar todas las bases de datos

Hola a todos!
Uso Delphi 2005 y MySQL server 5.0. Quiero poner un combo box en mi aplicacion y que al darle click a un botón me muestre todas las bases de datos de MySQL que tengo en mi computadora. Como lo puedo hacer?
Gracias de antemano, Dios les bendiga.
Responder Con Cita
  #2  
Antiguo 12-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La consulta

Código SQL [-]
show databases

en MySql, te devuelve un dataset con una sóla columna, Database, que lista todas las bases en el servidor. Puedes entonces, conectar la componente que uses para realizar consultas a un dbLookupComboBox mediante sus propiedades ListSource, ListField y KeyField.

// Saludos
Responder Con Cita
  #3  
Antiguo 13-11-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Cita:
Originalmente escrito por roman
Puedes entonces, conectar la componente que uses para realizar consultas a un dbLookupComboBox mediante sus propiedades ListSource, ListField y KeyField.
Necesito un poco mas de explicacion en este punto... Voy a escribir lo que hice: En un form puse un DBLoockUpComboBox, un SQLConnection, un DataSource y un SQLQuery. En la propiedad SQL del SQLQuery puse
Código SQL [-]
show databases
Trato de conectar el SQLConnection y me marca un error, dice lo siguiente:
Cita:
dbexpress Error: [0x000C] Invalid Username/Password
Database Server Error: Cliente does not support authentication protocol requested by server; consider upgrading MySQL client.
Me dice algo de actualizar MySQL, pero tengo la version 5, es la mas reciente, creo.
En la propiedad params del SQLConnection tengo lo siguiente:
Cita:
HostName: localhost
Database: DBNAME
User_Name: root
Pasword: "Tengo mi pasword de MySQL"
Lo demas lo dejo como esta... no modifico Database porque no quiero conectarme a una base de datos en específico, pero si le pongo una de mis bases de datos, el resultado es el mismo, me marca el mismo error.
Primero me marcaba el error de que no podia encontrar la libreria "libmysql", entonces la puse en el folder donde tengo mi programa y se corrigio ese problema, pero me salio este otro que les menciono... que tengo que hacer?
Responder Con Cita
  #4  
Antiguo 13-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pero vamos por partes. El problema que tienes es de autenticación y hay que resolverlo antes de intentar lanzar ninguna consulta.

Ya anteriormente hemos tratado ese error. El problema es que la librería cliente, libmysql.dll, que usas, supongo que es de una versión anterior a la 4.1 que, según recuerdo, es cuando MySql cambio el formato de contraseñas.

Tienes que actualizar la librería cliente o bien- lo que yo hago para evitarme problemas -utilizar el formato antiguo. Esto lo haces en la consola con:

Código SQL [-]
use mysql;
update user set password=old_password('tupassword')
where user='tuusuario';
flush privileges;

Agrego

Lo que te dice de actualizar MySql, se refiere al cliente, porque el servidor es el que sí lo tienes actualizado.

// Saludos

Última edición por roman fecha: 13-11-2006 a las 22:34:13.
Responder Con Cita
  #5  
Antiguo 14-11-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Tienes razon Roman, vamos por partes... Ya hice lo que me recomendaste, configuré para usar el formato antiguo...
Ahora mis preguntas, son dos (por lo pronto):
  1. Voy por buen camino con los componentes que mencioné? (LoockUpComboBox, SQLConnection, SQLQuery y DataSource)
  2. Como configuro el SQLQuery?
El SQLConnection ya quedó bien configurado, ya se conecta. En los parametros de conexion le puse a Database "mysql", para que entre a la base de datos principal, desde ahi me puede arrojar todas las bases de datos que tengo en mi sistema.
En la propiedad SQL del SQLQuery puse la linea de codigo que me mencionaste al principio:
Código SQL [-]
show databases
y ahora me muestra el siguiente error cuando activo el Query:
Cita:
dbExpress Error: [0x0003]: Invalid Field Type.
Responder Con Cita
  #6  
Antiguo 15-11-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Hice unas pruebas y sigo con el mismo problema, me sigue marcando el error que mecniono en el mensaje anterior...
Me conecto a una de mis bases de datos y pongo una consulta muy sencilla en my SQLQuery
Código SQL [-]
select * from tabla
Cual es mi error? no se usar los dbExpress, que puedo hacer?
Responder Con Cita
  #7  
Antiguo 15-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No sé muy bien a qué se deba pero juraria que es un error del driver de dbExpress, posiblemente porque cuando salió ese driver, creo que aún no salía la versión 5 de MySql. La verdad, si bien sin mucho fundamento, te comento que a mi no me gusta dbExpress. Alguna vez intenté usarlo para MySql y me daba muchos problemas. Buscando en Internet encontré que había no pocas referencias a los problemas del driver que proporciona Borland. Alguien recomendaba usar el de CoreLab, hice unas pruebas con la versión demo que traen y me cercioré que al menos los problemas que tenía entonces, sí se solucionaban. El driver de CoreLab es de pago pero lo veo accesible. Sin embargo yo opté finalmente por usar las componentes MyDac de la misma compañía (también de pago, pero accesibles) y me han funcionado bien.

Por otro lado, si bien el proyecto ZEOS estuvo parado mucho tiempo, parece que finalmente ha comenzado a moverse nuevamente, y ya han sacado la versión beta de la 6.6.0 (la última estable fue la 6.1.5 y la 6.5.1 nunca pasó de alpha). No son malas componentes y son gratuitas.

En resumen, a no ser que tengas alguna razón en particular para usar dbExpress, podrías intentar con otras componentes que no den tanto dolor de cabeza.

// Saludos
Responder Con Cita
  #8  
Antiguo 16-11-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Me interesa la opción de MyDac, pero por lo pronto no la voy a adquirir, me voy a ir por lo gratis...
Es el segundo proyecto en el que uso bases de datos de MySQL, la vez pasada me conecté por ODBC, creando un alias para mi base de datos, pero ahora no tengo una base de datos ya establecida para conectarme, tengo que mostrar todas y despues conectarme a una, por eso es que me fui a dbexpress... dbexpress me esta haciendo batallar y, por lo que me dice Roman, es mejor cambiarme a Zeos o MyDac...
Podré hacer lo que quiero a traves de los componentes Zeos?
Responder Con Cita
  #9  
Antiguo 16-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

Acabo de instalar MySql 5.0. Nunca lo había probado así que no podía cerciorarme por mi mismo. Debo decir que (sin probarlo exhaustivamente) he podido conectar sin ningún problema usando Zeos 6.6.0 y, claro está, he probado también lo del show databases sin ningún contratiempo.

De pasada intenté hacer la conexión usando dbExpress pero la verdad es que no he podido hacerlo porque para empezar, no encuentra el servidor dado que lo instalé en un puerto distinto (para no interferir mi instalación del servidor 4.1) y no hallo la manera de especificarlo en dbExpress. Intenté añadiendo Port a Params, o Server Port o localhost:3309 pero sin éxito.

Finalmente, ya nada más por no dejar, me bajé la versión de prueba del driver de crlab para dbExpress y funcionó sin problemas.

// Saludos
Responder Con Cita
  #10  
Antiguo 16-11-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Muchas gracias por tu atención y por tu tiempo Roman...
Voy a estar probando con el Zeos y mas adelante les cuento cómo me fué.
Responder Con Cita
  #11  
Antiguo 10-12-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
El zeos de plano no lo puede instalar en Delphi 2005, así que me tuve que ir a la opcioón de los componentes ADO y ¡¡¡FUNCIONÓ!!! , ya me muestra todas las bases de datos de mi sistema en el DBLookUpComboBox.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como pasar datos de una hoja de Excel a Bases de Datos de Paradox Goyo OOP 1 06-02-2007 01:57:20
Bases de Datos .TRN CARSOFT_AR Varios 3 09-12-2005 15:35:41
Dos Bases de Datos ELINK SQL 1 13-05-2005 07:12:00
Como mostrar una lista de bases de datos en un servidor MySQL con Zeos? guillote Conexión con bases de datos 1 30-07-2004 02:25:42
Como puedo mostrar una lista de bases de datos en un servidor MySQL con Zeos? guillote MySQL 0 27-07-2004 03:32:20


La franja horaria es GMT +2. Ahora son las 02:06:31.


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