XBrowse + MySql (SOLUCIONADO)

XBrowse + MySql (SOLUCIONADO)

Postby FranciscoA » Fri Mar 02, 2012 8: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.
Last edited by FranciscoA on Sat Mar 03, 2012 3:30 am, edited 3 times in total.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBrowse + MySql

Postby Willi Quintana » Fri Mar 02, 2012 9:15 pm

Talvez asi:
Code: Select all  Expand view  RUN

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

 
User avatar
Willi Quintana
 
Posts: 1020
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: XBrowse + MySql

Postby FranciscoA » Fri Mar 02, 2012 10:34 pm

Willi,
Funcionó perfecto. Quedo muy agradecido.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBrowse + MySql (SOLUCIONADO)

Postby RenOmaS » 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
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Re: XBrowse + MySql

Postby FranciscoA » Sat Mar 03, 2012 3: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
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBrowse + MySql

Postby Willi Quintana » Sat Mar 03, 2012 3:13 am

Al vuelo,,, debe funcionar (Mr. RenOmas, salu2,,,, la clausula "' ORDER BY " en el UPDATE esta contemplada...)

Code: Select all  Expand view  RUN

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


 
User avatar
Willi Quintana
 
Posts: 1020
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: XBrowse + MySql

Postby FranciscoA » Sat Mar 03, 2012 3:22 am

Willi... sencillamente perfecto!
Gracias nuevamente.

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.


Return to FiveWin para Harbour/xHarbour

Who is online

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