FoxPro/Visual FoxPro - Inconvenientes con la longitud de una variable tipo caracter. Ayuda!!

   
Vista:

Inconvenientes con la longitud de una variable tipo caracter. Ayuda!!

Publicado por luiggib enlacevisual@hotmail.com (24 intervenciones) el 19/10/2011 11:53:23
Hola amigos foxeros, requiero de su ayuda para solucionar el siguiente inconveniente:
Por cuestiones de conveniencia, necesité guardar un código (una consulta con SQL) en un campo Memo de una tabla x, para luego asignarlo a una variable de tipo caracter y poder ejecutarlo. El problema surge cuando el número de caracteres de la consultas pasan de los 254, como hago para ampliar si se puede la longitud de una variable de este tipo, o q tengo q hacer para poder ejecutar la consulta guardada en el campo memo cuando pase de 254 caracteres?.

De Antemano muchisimas gracias por la ayuda q me puedan brindar

LABB
enlacevisual@hotmail.com
Colombia
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Inconvenientes con la longitud de una variable tipo caracter. Ayuda!!

Publicado por edgardvd (135 intervenciones) el 19/10/2011 16:24:18
pues prueba
select tutabla

*ejecutar el campo memo
tutabla.&tucampo

esto deberia ejecutar lo que haya en tu campo memo,aunque eh visto que algunas apliacaciones q lo que hacen es pasar el campo memo a un archivo texto y luego lo compilan como prg al vuelvo, esa opcion es mucho mejor pero la verdad nunca lo eh utilizado.
saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

Inconvenientes con la longitud de una variable tipo caracter. Ayuda!!

Publicado por Mauricio (1368 intervenciones) el 19/10/2011 17:03:49
puedes usar algo como esto, ejemplo sencillo:
Variable = campo_memo
*
TEXT TO lcsql TEXTMERGE noshow
variable
ENDTEXT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

Inconvenientes con la longitud de una variable tipo caracter. Ayuda!!

Publicado por Mauricio (1368 intervenciones) el 19/10/2011 22:12:58
Este es un ejemplo practico de Juan Manuel Cruz:
*
Siempre puedes usar la cláusula ADDITIVE del TextMerge, para que agregue a lo ya existente en la variable, y una combinatoria del PRETEXT para eliminar espacios vacíos pero que respete el corte de línea.

Y el reemplazo de valores, claro, que ahorra estar haciendo llamadas adicionales a funciones para formatear.

Ejemplo:

bf_detalle_vent = ""

*** bla bla bla...

TEXT TO bf_detalle_vent ADDITIVE TEXTMERGE NOSHOW PRETEXT 7
<<Transform( vCursor.cantidad, '999,999')>> <<PADR( vCursor.articulo)>> <<Transform( vCursor.precio_pub,'@$ 99,999.99') >>

ENDTEXT

*** bla bla bla...

TEXT TO bf_detalle_vent ADDITIVE TEXTMERGE NOSHOW PRETEXT 7
Vendedor: <<vCursor.Vendedor>>
Cobrador: <<vCursor.Cobrador>>
ENDTEXT

aca te dejo un link para que lo revises.......
http://www.lawebdelprogramador.com/foros/FoxPro_Visual_FoxPro/1271987-Duda_sobre_Text_endtext.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Inconvenientes con la longitud de una variable tipo caracter. Ayuda!!

Publicado por luiggib (24 intervenciones) el 20/10/2011 14:32:58
Si tengo esto (q no me funcionó)

cSql1 = Substr(ConsultasConsolidadas.CampoSql,1,254)
cSql2 = Substr(ConsultasConsolidadas.CampoSql,254,254)
Text To x Textmerge
cSq1 = cSql1 + cSql2
Endtext
Wait windows csql1
&cSql1

Como hago para generar la cadena completamente.

Atte

Luis Alberto bernal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Inconvenientes con la longitud de una variable tipo caracter. Ayuda!!

Publicado por xx (378 intervenciones) el 21/10/2011 18:18:09
A ver si entendi el tema tienes grabada una consulta en un campo memo de una tabla DBF y este podria eventualmente superar los 254caracteres y dicha consulta la ejecutas en un servidor SQL?, suponiendo que haya interpretado bien la pregunta pues una solucion alternativa a todo lo que te comentaron los demas seria leer linea por linea el campo memo utilizando las funciones MLINES() y MEMLINES() en un bucle y copiarlo a una cadena es decir:

*// bucle que lee linea x linea un campo memo
_str=""
FOR _gir=1 TO MEMLINES(TABLAX.CAMPOMEMO)
_str=_str+ALLTRIM(MLINES(TABLAX.CAMPOMEMO,_gir))+CHR(13)
ENDFOR
SQLEXEC( _HCSQL, _str, [XCURSOR] )

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar