FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour MySQL+ADO no se comporta igual sobre windows y linux
Posts: 113
Joined: Wed Jan 10, 2007 08:43 PM
MySQL+ADO no se comporta igual sobre windows y linux
Posted: Tue Apr 15, 2008 08:46 PM
A ver todo lo que viene a continuaci贸n es para que vean lo que me estaba sucediendo y como lo resolv铆, la idea es ayudar a quien est茅 igual que como estaba yo.

Esta rutina que expongo si la ejecuto sobre mi mysql (localhost corre en windows xp) funciona perfectamente.

Por el contrario si cambio el localhost por otro servidor se cae al realizar un simple select * from tabla, ya que si hago un truncate tabla no produce error alguno y funciona ok....
Aclaro que la ip 192.168.0.221 es de un servidor (linux) y no mi m谩quina...y esto se produce en dos servidores mysql de dos clientes distintos....

C贸digo de la Funci贸n que utilizo:

FUNCTION Conexion()
   LOCAL oCon
   oCon:=CreateObject("adodb.connection")
   oCon:ConnectionString:="DRIVER={MySQL ODBC 3.51 Driver}; SERVER=192.168.0.221; DATABASE=sysworks; UID=usuario;PWD=clave"
   oCon:ConnectionTimeout:=3600
   oCon:Open()
RETURN oCon

FUNCTION Consulta2(cConsulta, oCon)
   LOCAL oDatos, aDatos:=Array(3), oErrorAdo
   oDatos:=TOleAuto():New("adodb.recordset")
   oDatos:CursorLocation  := adUseClient //adUseServer
   oDatos:LockType := adLockOptimistic
   oDatos:CursorType:=adOpenDynamic
   oDatos:Source:=cConsulta
   oDatos:ActiveConnection:=oCon
   TRY
      oDatos:Open()
      aDatos[1]:=.T.
      aDatos[3]:=oDatos
   CATCH oError
      FOR EACH oErrorAdo IN oCon:Errors
         MsgInfo( "Descripci贸n:"+oErrorAdo:Description+CRLF+;
                      "Error Nativo:"+Str(oErrorAdo:NativeError)+CRLF+;
                      "N煤mero Error:"+Str(oErrorAdo:Number)+CRLF+;
                      "Origen:"+oErrorAdo:Source+CRLF+;
                      "Estado SQL:"+oErrorAdo:SQLState;
                    )
      NEXT
      aDatos[1]:=.F.
   END
   aDatos[2]:=oCon
RETURN aDatos


Ahora la llamada a la funci贸n que no da error:

aDatos:=Consulta2( "TRUNCATE libcomp", Conexion())
aDatos[2]:Close()


Y llamando a la misma funci贸n cambiando la orden se cae:
aDatos:=Consulta2("SELECT * FROM LIBCOMP", Conexion())


Ahora si hago esto mismo en localhost pasa sin problemas....qu茅 podr谩 ser?
He intentado colocando el string de conexi贸n directamente sobre open()
He intentado colocando oDatos:ActiveConnection(oCon)
He intentado con este string de conexi贸n:
oCon:ConnectionString:="Driver={MySQL ODBC 3.51 Driver};Server=192.168.1.221;Port=3306;Database=sysworks;User=usuario;Password=clave;Option=3;"


Anexo la imagen (phpmyadmin) para que vean que la base de datos y la tabla est谩n correctas:



Imagen que indica que el truncate tabla pas贸 y est谩 lista la aplicaci贸n para traspasar las dbf's a las tablas respectivas:


Imagen con el error al realizar el select


Bueno, resulta que mysql en windows no opera igual que en linux, ya que al colocar SELECT * FROM LIBCOMP opera sin problemas en mysql sobre windows, pero SELECT * FROM LIBCOMP se cae en mysql sobre linux. 驴Porqu茅?...debido a que LIBCOMP no lo interpreta igual en windows que en linux....LIBCOMP tiene que ir en MIN脷SCULAS EN LINUX, cosa que igual opera sin problemas en windows.
Recomendaci贸n: coloquen todos los comandos 铆ntegramente en min煤sculas.

Imagen de la aplicaci贸n ahora corriendo sin problemas contra un mysql sobre un linux:


Ac谩 otra imagen m谩s:


Ac谩 la misma aplicaci贸n corriendo sobre mysql en windows (localhost de mi notebook)


Miren que prob茅 de todo....tres instalaciones distintas de xharbour, recrear n veces fw...ufff, espero les sirva
Saludos y con dolor de cabeza por este problemilla......jajajajaja
AHORA ME RIO
David Lagos S.
Coquimbo-Chile
www.wificafe.cl
webmaster@wificafe.cl
Posts: 467
Joined: Fri Dec 09, 2005 12:41 AM
Re: MySQL+ADO no se comporta igual sobre windows y linux
Posted: Wed Apr 16, 2008 03:58 PM

Mi estimado
Gracias por el dato, es un dato mut importante para los que estamos en conexion con el MySql .. Windows y Linux...
Te debemos un dolor de cabeza menosss !!!

Lubin

Continue the discussion