HERENCIA EN TSQLQUERY
Publicado: Mié Nov 22, 2006 8:05 am
Hola , Buenos dias a Todos!
1. - Porque TSqlQuery no heredo los Metodos de TDbfDataSet ?
cCU1:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),1,4)
cCU2:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),5,4)
cCU3:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),9,4)
cCU4:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),13,4)
cCUENTA:=cCU1+cCU2+cCU3+cCU4
::oDSCATCUENTAS:SELECT()
LOCATE FOR
::oDSCATCUENTAS:FIELDGETBYNAME('CtaMay')+::oDSCATCUENTAS:FIE LDGETBYNAME('SubCta')+;
::oDSCATCUENTAS:FIELDGETBYNAME('SSbCta')+::oDSCATCUENTAS:FIE LDGETBYNAME('SSSCta')=;
cCU1+cCU2+cCU3+cCU4
IF FOUND()
cDESCR:=::oDSCATCUENTAS:FIELDGETBYNAME('Descripcion')
ELSE
Application:lbusy:=.F.
MsgStop('No encontre cuenta '+cCUENTA,'Error')
ENDIF
Ahora este codigo no me funciona ya que el Metodo Locate() es Heredado de
TDataSet y se comporta diferente que el Metodo Locate() del TDbfDataSet.
El Metodo Locate() del TDataSet Acepta la siguiente sintaxis :
LOCATE('CtaMay='+cCUENTA) , solo acepta una columna en la busqueda, no
permite varias columnas
Como resuelvo el problema de buscar varias columnas como el ejemplo de
arriba?
Tendre que usar nuevamente TOdbcDataSet ?
SIGUIENTE PREGUNTA ?
2. - La Variable aSucursales es una varibale Publica definida en el programa
principal, la cual utilizo en otro modulo, cuando compilo me sale el
siguite Warning
Compilando ProcesaCortes.prg...
ProcesaCortes.prg(163) Warning W0002 Ambiguous reference, assuming memvar:
'ASUCURSALES'
Porque si esta definida como variable publica?
ademas en las propiedades del Proyecto en Opciones/Xharbour tengo
seleccionada la opcion declaracion automatica de variables.
Gracias
1. - Porque TSqlQuery no heredo los Metodos de TDbfDataSet ?
cCU1:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),1,4)
cCU2:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),5,4)
cCU3:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),9,4)
cCU4:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),13,4)
cCUENTA:=cCU1+cCU2+cCU3+cCU4
::oDSCATCUENTAS:SELECT()
LOCATE FOR
::oDSCATCUENTAS:FIELDGETBYNAME('CtaMay')+::oDSCATCUENTAS:FIE LDGETBYNAME('SubCta')+;
::oDSCATCUENTAS:FIELDGETBYNAME('SSbCta')+::oDSCATCUENTAS:FIE LDGETBYNAME('SSSCta')=;
cCU1+cCU2+cCU3+cCU4
IF FOUND()
cDESCR:=::oDSCATCUENTAS:FIELDGETBYNAME('Descripcion')
ELSE
Application:lbusy:=.F.
MsgStop('No encontre cuenta '+cCUENTA,'Error')
ENDIF
Ahora este codigo no me funciona ya que el Metodo Locate() es Heredado de
TDataSet y se comporta diferente que el Metodo Locate() del TDbfDataSet.
El Metodo Locate() del TDataSet Acepta la siguiente sintaxis :
LOCATE('CtaMay='+cCUENTA) , solo acepta una columna en la busqueda, no
permite varias columnas
Como resuelvo el problema de buscar varias columnas como el ejemplo de
arriba?
Tendre que usar nuevamente TOdbcDataSet ?
SIGUIENTE PREGUNTA ?
2. - La Variable aSucursales es una varibale Publica definida en el programa
principal, la cual utilizo en otro modulo, cuando compilo me sale el
siguite Warning
Compilando ProcesaCortes.prg...
ProcesaCortes.prg(163) Warning W0002 Ambiguous reference, assuming memvar:
'ASUCURSALES'
Porque si esta definida como variable publica?
ademas en las propiedades del Proyecto en Opciones/Xharbour tengo
seleccionada la opcion declaracion automatica de variables.
Gracias