驴Para atacar una base de datos MySql con ADO, alguien usa un provider OLEDB o solamente se est谩 realizando la conexi贸n a trav茅s de ODBC?
Muchas gracias.
Manuel
驴Para atacar una base de datos MySql con ADO, alguien usa un provider OLEDB o solamente se est谩 realizando la conexi贸n a trav茅s de ODBC?
Muchas gracias.
Manuel,
Cuando hice algunos testes con ADO y MySQL (hace mucho tiempo) yo los hice con MyOLEDB, de MySQL. Date una vuelta por el sitio de MySQL o mira aca: http://sourceforge.net/projects/myoledb/
Saludos,
Manuel
Yo utilizo el Cliente ODBC 3.5.1, ya medio antiguo y me he encontrado con la sorpresa que existe una version mas nueva, del 15 de abril de este a帽o, que es la 5.1.4 (aun no la pruebo,la estoy descargando)
Bueno el tema es que la uso sin problemas.
Espero te sirva.
Desde Chile
Adolfo
Kleyber,
Funciona perfectamente.
Muito obrigado.
Adolfo,
Cuando en mis aplicaciones uso una BD utilizo normalmente Oracle. Pero estoy dise帽ando un programa de prueba, para que de manera facil, pueda trabajar, indistintamente, con cualquiera de las BD conocidas (MySql, Oracle, Postgre, SqlServer, etc).
Voy a estudiar tu ADOBASE porque seguro que de su c贸digo, aprender茅 bastantes cosas.
Muchas gracias.
oApp:oCon:ConnectionString := "Provider=MySQLProv;Location=localhost;Data Source=sapwin;User Id=root;Password=mipass;"Armando,
Primero decirte que la BD con la que trabajo es Oracle que me parece, junto con Postgres, la mas fiable. Con MySql tan solo estoy haciendo mi primeros pinitos para usarla en internet. Me imagino que en este foro hay colegas con muchisima mas experiencia que yo con MySql.
Seg煤n me aconsej贸 Kleyber en este mismo tema, baj茅 el provider de MySql, lo instal茅 y funciona perfectamente. Utilizo la misma cadena de conexi贸n que con Oracle, para poder cambiar de una BD a otra, sin cambiar el resto del c贸digo.
1) 驴Has instalado el provider OLEDB?.
2) En caso afirmativo, yo realizo la conexi贸n de la siguiente forma:
cProv := "MySqlProv.3.9" // este es el provider
cHost := "prueba" // esta es la BD.
cUser := "root" // usuario
cPass := "*" // clave usuario
oCon := CreateObject('ADODB.Connection')
oCon:ConnectionString := "Provider=" + cProv + ";" + ;
"Data Source= " + cHost + ";" + ;
"User ID=" + cUser + ";" + ;
"Password=" + cPass + ";"
TRY
oCon:Open()
lSeguir := .t.
CATCH oError
AdoError(oCon, oError) // funcion personal
lSeguir := .f.
END
cHost := "prueba" // esta es la BD.Armando wrote:Manuel:
Gracias por la respuesta, pr谩cticamente tenemos lo mismo, solo que me queda una duda en parte de tu c贸digo, la duda es que no veo la direcci贸n del host (cHost := "localhost"), en su lugar veo el nombre de la database
cHost := "prueba" // esta es la BD.
en oracle no es necesario ???
Saludos
Gracias Manuel
Armando,
Se me olvido decirte que con Mysql estoy trabajando en local. Me imagino que para trabajar con un servidor ser谩 necesario indicar el host.
Manuel:
Llevas raz贸n con MySql en forma local es tan simple como:
server=localhost
pero en forma remota debemos poner la IP del servidor, por ejemplo:
server=147.187.347.157
Pero ya entran las complicaciones, que pasa si no cuentas con IP fija ?,
esa es otra historia !.
Saludos
Armando,
Para estes casos puedes usar el NO-IP (www.no-ip.com) or DDNS (http://www.dyndns.com/services/dns/dyndns/) donde puedes asignar un host fijo, mismo que tu IP sea din谩mico. Quizas esto te ayude.
Saludos,
Kleyber:
Gracias por la respuesta, efectivamente as铆 lo hago pero con MySql y ODBC, sin embargo con MyOleDb no logro tener 茅xito.
Se hace la conexi贸n, al parecer bien, pero al intentar abrir la DataBase me dice que no la encuentra.
Saludos
Armando,
驴Porque no tratas de probar con FdataLink()? Si despues de poner los datos, y pulsar PROBAR CONEXION, la realiza con 茅xito, le das a ACEPTAR y te devuelve la cadena de conexi贸n. La funci贸n original es de Biel.
FUNCTION FDATALINK ( )
LOCAL oDataLink := CreateObject("Datalinks")
LOCAL oCon := oDataLink:PromptNew()
IF !EMPTY(oCon)
valert (oCon:ConnectionString)
RETURN oCon:ConnectionString
ELSE
RETURN ' '
ENDI
RETURN nil