Sentencia SQL de mas de 255 carácteres

14/12/2004 - 22:48 por Carlos Joaniquet Tamburini | Informe spam
Hola, para hacer una consulta por SPT utilizo TEX ...ENDTEXT según vi
que recomendaba un compañero del foro, y lo hago de la siguiente manera:

TEXT TO comandoMySQL1 TEXTMERGE NOSHOW PRETEXT 7
SELECT *
FROM GPDAT.M01
LEFT OUTER JOIN GPDAT.M04
ON M01.M04COD = M04.M04COD
LEFT OUTER JOIN GPDAT.M02
ON M01.M02COD = M02.M02COD
.
.etc
.

LEFT OUTER JOIN GPDAT.M03
ON M01.M03COD = M03.M03COD
WHERE M01.M01ASU = <<numeroFicha>>
ENDTEXT

IF SQLEXEC(nConexion,comandoMySQL1,'cursorCabecera') = 1.. etc

El problema es que cuando comandMySQL1 le asigno una cadena larga me da
error. Como podría hacer para que la cadena no tenga límite?
Gracias.

Preguntas similare

Leer las respuestas

#1 Omar Silvestro
15/12/2004 - 01:36 | Informe spam
Carlos :
Te envío una sugerencia, en mi caso la utilicé en una conexión a SQL
SERVER. Se trata de poner la consulta en un archivo de tipo texto, en el
ejemplo el archivo se llama precio.sql

La tabla conexion_bd la utilizo para guardar los datos de la conexion:
usuario, password, servidor y base de datos. Además posee un campo memo
llamado consulta. En este caso el archivo precio.sql tiene una consulta
que supera ampliamente los 256 caracteres y funciona.

SELECT conexion_bd
APPEND MEMO consulta FROM precio.sql OVERWRITE
y = SQLEXEC(v_conexion,consulta,'precios')

Omar Silvestro
Córdoba Argentina



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

PortalFox - NNTP Forum Gatewa
Respuesta Responder a este mensaje
#2 Jaime CArdona
15/12/2004 - 01:40 | Informe spam
Hola que tal deberia intentarlo pero haciendo el text en una sola linea a
mi si me ha funcionado,
saludos y suerte

TEXT TO comandoMySQL1 TEXTMERGE NOSHOW PRETEXT 7
SELECT * FROM GPDAT.M01 LEFT OUTER JOIN .etc.


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

PortalFox - NNTP Forum Gatewa
Respuesta Responder a este mensaje
#3 Ana María Bisbé York
15/12/2004 - 16:52 | Informe spam
Hola Carlos:

Te dejo un respuesta de Luis Ma. Guayán a un tocayo tuyo, Carlos Yohn.

Luis María Guayán

Carlos, en estos casos y una mejor legibilidad puedes usar:

TEXT TO m.Frase TEXTMERGE NOSHOW
select distinct ccsv_hojaruta_art.xnumped_id
from ccsv_hojaruta_art
left join pl_pedcli_opc on pl_pedcli_opc.xnumdoc_id > ccsv_hojaruta_art.xnumped_id
where ccsv_hojaruta_art.xnumhoja_id = <<allt(str(m.hoja))>>
and pl_pedcli_opc.xccsv_tipoped <> "SD"
order by xnumped_id
ENDTEXT

? SQLEXEC(m.conexion, m.frase, m.cursor)




¡ Feliz navidad !

Saludos,

Ana
www.amby.net

"Carlos Joaniquet Tamburini" escribió en el
mensaje news:
Hola, para hacer una consulta por SPT utilizo TEX ...ENDTEXT según vi
que recomendaba un compañero del foro, y lo hago de la siguiente manera:

TEXT TO comandoMySQL1 TEXTMERGE NOSHOW PRETEXT 7
SELECT *
FROM GPDAT.M01
LEFT OUTER JOIN GPDAT.M04
ON M01.M04COD = M04.M04COD
LEFT OUTER JOIN GPDAT.M02
ON M01.M02COD = M02.M02COD
.
.etc
.

LEFT OUTER JOIN GPDAT.M03
ON M01.M03COD = M03.M03COD
WHERE M01.M01ASU = <<numeroFicha>>
ENDTEXT

IF SQLEXEC(nConexion,comandoMySQL1,'cursorCabecera') = 1.. etc

El problema es que cuando comandMySQL1 le asigno una cadena larga me da
error. Como podría hacer para que la cadena no tenga límite?
Gracias.


Respuesta Responder a este mensaje
#4 allan
15/12/2004 - 19:56 | Informe spam
Carlos, cual es el error?

Saludos, Allan Pivaral, Guatemala CA
El Tue, 14 Dec 2004 22:48:02 +0100, Carlos Joaniquet Tamburini escribió:

Hola, para hacer una consulta por SPT utilizo TEX ...ENDTEXT según vi
que recomendaba un compañero del foro, y lo hago de la siguiente manera:

TEXT TO comandoMySQL1 TEXTMERGE NOSHOW PRETEXT 7
SELECT *
FROM GPDAT.M01
LEFT OUTER JOIN GPDAT.M04
ON M01.M04COD = M04.M04COD
LEFT OUTER JOIN GPDAT.M02
ON M01.M02COD = M02.M02COD
.
.etc
.

LEFT OUTER JOIN GPDAT.M03
ON M01.M03COD = M03.M03COD
WHERE M01.M01ASU = <<numeroFicha>>
ENDTEXT

IF SQLEXEC(nConexion,comandoMySQL1,'cursorCabecera') = 1.. etc

El problema es que cuando comandMySQL1 le asigno una cadena larga me da
error. Como podría hacer para que la cadena no tenga límite? Gracias.
Respuesta Responder a este mensaje
#5 Carlos Joaniquet Tamburini
15/12/2004 - 21:07 | Informe spam
Muchísimas gracias por las respuestas. No me expliqué bien: el único
problema es que si la cadena excede de 255 carácteres, la variable de texto
"comadoMySQL1" no lo puede soportar por el límite físico de las variables a
255 carácteres (creo que es ese), por lo que necesitaría un tipo de variable
que no tenga límite. Creo que Omar ha dado en el clavo, pero me interesaría
mas que la instrucción SQL estubiera dentro del código.
Muchas gracias de nuevo por vuestra atención.


"Carlos Joaniquet Tamburini" escribió en el
mensaje news:
Hola, para hacer una consulta por SPT utilizo TEX ...ENDTEXT según vi
que recomendaba un compañero del foro, y lo hago de la siguiente manera:

TEXT TO comandoMySQL1 TEXTMERGE NOSHOW PRETEXT 7
SELECT *
FROM GPDAT.M01
LEFT OUTER JOIN GPDAT.M04
ON M01.M04COD = M04.M04COD
LEFT OUTER JOIN GPDAT.M02
ON M01.M02COD = M02.M02COD
.
.etc
.

LEFT OUTER JOIN GPDAT.M03
ON M01.M03COD = M03.M03COD
WHERE M01.M01ASU = <<numeroFicha>>
ENDTEXT

IF SQLEXEC(nConexion,comandoMySQL1,'cursorCabecera') = 1.. etc

El problema es que cuando comandMySQL1 le asigno una cadena larga me da
error. Como podría hacer para que la cadena no tenga límite?
Gracias.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida