Mysql y ADO

Mysql y ADO

Postby Manuel Valdenebro » Thu Jul 24, 2008 4:01 am

¿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.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby Kleyber » Thu Jul 24, 2008 1:24 pm

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,
Kleyber Derick

FWH / xHb / xDevStudio / SQLLIB
User avatar
Kleyber
 
Posts: 581
Joined: Tue Oct 11, 2005 11:28 am
Location: São Luiz, Brasil

Postby Adolfo » Thu Jul 24, 2008 1:33 pm

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
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
User avatar
Adolfo
 
Posts: 860
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Postby Manuel Valdenebro » Fri Jul 25, 2008 5:29 am

Kleyber,

Funciona perfectamente.

Muito obrigado.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby Manuel Valdenebro » Fri Jul 25, 2008 5:32 am

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.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby Armando » Sun Aug 03, 2008 5:48 pm

Manuel:

He intentado probar MyOleDb con la siguiente conexión:

Code: Select all  Expand view  RUN
oApp:oCon:ConnectionString := "Provider=MySQLProv;Location=localhost;Data Source=sapwin;User Id=root;Password=mipass;"


Pero no tengo éxito, podrías compartir tu código y experiencia ?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3239
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Manuel Valdenebro » Sun Aug 03, 2008 10:04 pm

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
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby Armando » Mon Aug 04, 2008 12:24 am

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

Code: Select all  Expand view  RUN
cHost := "prueba" // esta es la BD.


en oracle no es necesario ???

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3239
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Manuel Valdenebro » Mon Aug 04, 2008 4:55 am

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

Code: Select all  Expand view  RUN
cHost := "prueba" // esta es la BD.


en oracle no es necesario ???

Saludos


En Oracle es diferente. Oracle trabaja con una sola BD y cada usuario de la BD, tiene tablas propias. En Host se pone el nombre del OracleService (puede haber varios) que se encuentra en la tabla tsname.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby Armando » Mon Aug 04, 2008 12:13 pm

Gracias Manuel
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3239
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Manuel Valdenebro » Mon Aug 04, 2008 8:23 pm

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.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby Armando » Mon Aug 04, 2008 9:56 pm

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
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3239
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Kleyber » Tue Aug 05, 2008 11:55 am

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 Derick

FWH / xHb / xDevStudio / SQLLIB
User avatar
Kleyber
 
Posts: 581
Joined: Tue Oct 11, 2005 11:28 am
Location: São Luiz, Brasil

Postby Armando » Tue Aug 05, 2008 4:47 pm

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
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3239
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Manuel Valdenebro » Tue Aug 05, 2008 9:04 pm

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
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 43 guests