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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Carlos Yohn Zubiria
05/07/2004 - 18:20 | Informe spam
1.- Que pasará con versiones anteriores a VFP7 donde no puedes declarar
una variable como pública?


¿Y que problema hay en que la variable sea local o privada. El alcance solo
necesita local?
Local m.cXSQL AS memo


2.- Que ventana establece el dejarlo así ante un bloque TEXT .. ENDTEXT,
en lo personal no cambio


por nada del mundo la legibilidad.
De acuerdo Esparta, pero me parece mas 'legible' esta opción. Si la cadena
fuera menor de 256 posiciones, nunca habríamos utilizado TEXT/ENDTEXT...
luego con esta opción podemos seguir sin utilizarla.





Saludos,
A.G.P. (Aplicaciones de Gestión y Productividad)
Las Arenas - Vizcaya - España

"Esparta Palma" escribió en el
mensaje news:%
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 zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
Respuesta Responder a este mensaje
#3 Victor B.
06/07/2004 - 17:07 | Informe spam
Por cierto, FOPENDB() es una función de VFP7 o de la versión 8?
Respuesta Responder a este mensaje
#4 Esparta Palma
06/07/2004 - 19:16 | Informe spam
De ninguna de las dos versiones, seguramente es una función de él.

Por cierto, FOPENDB() es una función de VFP7 o de la versión 8?



ž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º
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
Respuesta Responder a este mensaje
#5 Antonio Montagut
07/07/2004 - 10:08 | Informe spam
Disculpad, quizá el código no esté muy claro.
FOPENBD() Es una función de la palicación que habre la base de datos
local (vistas remotas). y establece una conexión con la base de datos C/S.
FCLOSEBD() Cierra la base de datos.


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

PortalFox - NNTP Forum Gatewa
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida