Solucion a SPT con cadena de mas de 255 Caracteres.

05/07/2004 - 09:39 por Antonio Montagut | Informe spam
Esta es la solución que yo utilizo prescindiendo de TEXT...ENDTEXT.

Ejemplo:

PUBLIC XSQL AS MEMO
XSQL=''

FOPENBD()

XSQL='SELECT DCLIE.CODIGO ,DCLIE.NOMBRE , DCLIE.DOMICILIO,
DCLIE.POBLACION, DCLIE.CP, DCLIE.PROVINCIA, '+ ;
'DCLIE.PNIF, DCLIE.NIF, DCLIE.TELEFONO, DCLIE.TELEFONO2, DCLIE.FAX,
DCLIE.WEB, DCLIE.EMAIL, DCLIE.CCLAVE, '+ ;
'DCLAV.NOMBRE AS CNOMBRE, DCLIE.CVENDEDOR ,DVEND.NOMBRE AS VNOMBRE,
DCLIE.BANCO, DCLIE.AGENCIA, '+ ;
'DCLIE.CCC1, DCLIE.CCC2, DCLIE.CCC3, DCLIE.CCC4, DCLIE.IBAN1, DCLIE.IBAN2,
DCLIE.IBAN3, DCLIE.IBAN4, '+;
'DCLIE.IBAN5, DCLIE.IBAN6, DCLIE.TIPOIVA, DCLIE.TIPORE, DCLIE.TIPORET '+;
'FROM DCLIE, DCLAV, DVEND '+;
'WHERE DCLIE.CODIGO>=?TVCOD1 AND DCLIE.CODIGO<=?TVCOD2 AND '+;
'DCLIE.CP>=?TVPOS1 AND DCLIE.CP<=?TVPOS2 AND '+;
'DCLIE.CCLAVE>=?TVCLA1 AND DCLIE.CCLAVE<=?TVCLA2 AND '+;
'DCLIE.CVENDEDOR>=?TVVEN1 AND DCLIE.CVENDEDOR<=?TVVEN2 AND '+;
'DCLIE.CCLAVEÜLAV.CODIGO AND DCLIE.CVENDEDOR=DVEND.CODIGO AND '+;
'DCLIE.KE=?BEMPR AND DCLAV.KE=?BEMPR AND DVEND.KE=?BEMPR ORDER BY
DCLIE.CODIGO '

SQLPREPARE(NH, ""+XSQL, "TCUR")
IF SQLEXEC(NH)>0
SWTALLY=RECCOUNT()
COPY TO ""+VTEMP+"\XTL"
ENDIF

IF SWTALLY<1
MESSAGEBOX("No se han Localizado DATOS",48,"Atencion")
ENDIF

FCLOSEBD()

El truco consiste en declarar la variable XSQL como publica y de tipo MEMO.
Espero les sirva. Un saludo.

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa
 

Leer las respuestas

#1 Esparta Palma
05/07/2004 - 17:51 | Informe spam
Vaya, muy buen tip, pero ante esto, me surgen varias dudas.

1.- Que pasará con versiones anteriores a VFP7 donde no puedes declarar
una variable como pública?
2.- Que ventana establece el dejarlo así ante un bloque TEXT .. ENDTEXT,
en lo personal no cambio
por nada del mundo la legibilidad.

Bueno, creo que es todo, aparentemente tenía otras dudas, pero ... se me
murió la neurona :-)

Esta es la solución que yo utilizo prescindiendo de TEXT...ENDTEXT.

Ejemplo:

PUBLIC XSQL AS MEMO
XSQL=''

FOPENBD()

XSQL='SELECT DCLIE.CODIGO ,DCLIE.NOMBRE , DCLIE.DOMICILIO,
DCLIE.POBLACION, DCLIE.CP, DCLIE.PROVINCIA, '+ ;
'DCLIE.PNIF, DCLIE.NIF, DCLIE.TELEFONO, DCLIE.TELEFONO2, DCLIE.FAX,
DCLIE.WEB, DCLIE.EMAIL, DCLIE.CCLAVE, '+ ;
'DCLAV.NOMBRE AS CNOMBRE, DCLIE.CVENDEDOR ,DVEND.NOMBRE AS VNOMBRE,
DCLIE.BANCO, DCLIE.AGENCIA, '+ ;
'DCLIE.CCC1, DCLIE.CCC2, DCLIE.CCC3, DCLIE.CCC4, DCLIE.IBAN1, DCLIE.IBAN2,
DCLIE.IBAN3, DCLIE.IBAN4, '+;
'DCLIE.IBAN5, DCLIE.IBAN6, DCLIE.TIPOIVA, DCLIE.TIPORE, DCLIE.TIPORET '+;
'FROM DCLIE, DCLAV, DVEND '+;
'WHERE DCLIE.CODIGO>=?TVCOD1 AND DCLIE.CODIGO<=?TVCOD2 AND '+;
'DCLIE.CP>=?TVPOS1 AND DCLIE.CP<=?TVPOS2 AND '+;
'DCLIE.CCLAVE>=?TVCLA1 AND DCLIE.CCLAVE<=?TVCLA2 AND '+;
'DCLIE.CVENDEDOR>=?TVVEN1 AND DCLIE.CVENDEDOR<=?TVVEN2 AND '+;
'DCLIE.CCLAVEÜLAV.CODIGO AND DCLIE.CVENDEDOR=DVEND.CODIGO AND '+;
'DCLIE.KE=?BEMPR AND DCLAV.KE=?BEMPR AND DVEND.KE=?BEMPR ORDER BY
DCLIE.CODIGO '

SQLPREPARE(NH, ""+XSQL, "TCUR")
IF SQLEXEC(NH)>0
SWTALLY=RECCOUNT()
COPY TO ""+VTEMP+"\XTL"
ENDIF

IF SWTALLY<1
MESSAGEBOX("No se han Localizado DATOS",48,"Atencion")
ENDIF

FCLOSEBD()

El truco consiste en declarar la variable XSQL como publica y de tipo MEMO.
Espero les sirva. Un saludo.



ž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º
Espartaco Palma Martínez
SysOp PortalFox.com
email:mexicoSINSPAM[Arroba]portalfox.com

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa

Preguntas similares