FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour XBrowse + MySql (SOLUCIONADO)
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
XBrowse + MySql (SOLUCIONADO)
Posted: Fri Mar 02, 2012 08:51 PM
Amigos del foro.
Tengo un xbrowse del cual quiero actualizar algunos registros segun una condicion dada. Estoy empezando con MySql+TMySql. Llevo dos dias perdidos "googleando" y haciendo pruebas.

Esta es la parte del codigo que necesito resolver:

Esta sentencia trabaja bien, no tengo problemas
oServer:Query( "UPDATE catalogo SET auxi = 'N' WHERE SubString(codicont,1,4) = '1101' ORDER BY codicont" )

Perooo, necesito automatizar. Algo asi:

aCuentas:={"1101","1102","1103"}

aList := HB_ATokens( Alltrim(cCuentas), "/" )

FOR n := 1 to len( aList )
cCta:= aList[n]

oServer:Query( "UPDATE catalogo SET auxi = 'N' WHERE SubString(codicont,1,4) = cCta ORDER BY codicont" )
//LO ANTERIOR DA EL ERROR DE QUE NO EXISTE LA COLUMNA cCta. Estoy de acuerdo, MySql asi lo toma.
//Entonces, ¿ como puedo ejecutar la sentencia utilizando una variable?

if oServer:lError
msginfo(oServer:Error)
endif
NEXT

Agradezco de antemano.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: XBrowse + MySql
Posted: Fri Mar 02, 2012 09:15 PM
Talvez asi:
Code (fw): Select all Collapse
aCuentas:={"1101","1102","1103"}

aList := HB_ATokens( Alltrim(cCuentas), "/" )

FOR n := 1 to len( aList )
   cCta:= aList[n]
  
   oServer:Query( "UPDATE catalogo SET auxi = 'N' WHERE SubString(codicont,1,4) = '" + cCta  + "' ORDER BY codicont" ) 

   if oServer:lError
      msginfo(oServer:Error)
   endif
NEXT n
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBrowse + MySql
Posted: Fri Mar 02, 2012 10:34 PM

Willi,
Funcionó perfecto. Quedo muy agradecido.
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 205
Joined: Fri Oct 07, 2005 05:07 PM
Re: XBrowse + MySql (SOLUCIONADO)
Posted: Fri Mar 02, 2012 11:35 PM
Buenas
Solo para uma observacion, en el comando que envias, creo que ' ORDER BY codicont' esta demas.

salu2
Saludos/regards

RenOmaS



skype: americo.balboa
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBrowse + MySql
Posted: Sat Mar 03, 2012 03:00 AM
RenOmaS, tienes razon.

Willi y RenOmaS:
Y como quien pregunta saber quiere, precisamente en la misma sentencia tengo una inquietud similar a la anterior:
oServer:Query( "UPDATE catalogo SET auxi = 'N' WHERE SubString(codicont,1,4) = '" + cCta + "' ORDER BY codicont" )
Como se puede ver, coloco literalmente el segundo parametro de SubString(codicont,1,4).
local nLen:=LEN(NIV1)
¿Como se hace para poder pasarlo como una variable? Ej: SubString(codicont,1,nLen).
Porque asi no hace nada ni tanpoco asi: SubString(codicont,1,Len(NIV1)).

Lo que pasa es que tengo un #DEFINE NIV1 SPACE(4) cuya constante la utilizo en muchas partes del sistema que estoy tratando de pasar de DBF a MySql.

Por otra parte, podrian ayudarme a localizar un manual de MySql con buenos ejemplos? ya que los que he bajado de la red no incluyen estos tipos de necesidades, y casi todos son copia uno del otro.

Agradezco cualquier aporte que puedan brindar.

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: XBrowse + MySql
Posted: Sat Mar 03, 2012 03:13 AM
Al vuelo,,, debe funcionar (Mr. RenOmas, salu2,,,, la clausula "' ORDER BY " en el UPDATE esta contemplada...)

Code (fw): Select all Collapse
aCuentas:={"1101","1102","1103"}

aList := HB_ATokens( Alltrim(cCuentas), "/" )

FOR n := 1 to len( aList )
   cCta:= aList[n]
  
   oServer:Query( "UPDATE catalogo SET auxi = 'N' WHERE SubString(codicont,1," + STR(LEN(NIV1)) + ") = '" + cCta  + "' ORDER BY codicont" ) 

   if oServer:lError
      msginfo(oServer:Error)
   endif
NEXT n
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBrowse + MySql
Posted: Sat Mar 03, 2012 03:22 AM

Willi... sencillamente perfecto!
Gracias nuevamente.

Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion