[ot?] cadena de texto SQL demasiado larga desde excel (URGENTE)

10/05/2004 - 16:22 por Mara | Informe spam
he puesto ot devido a que no se si es este el grupo al que he de dirigirme,
pero es el mas apropiado que he encontrado

mi problema es que necesito ejecutar un store_procedure en un sql-server
desde una applicacion VBA en excel, y cuando la cadena de texto (sentencia
SQL) pasa de 255 caracteres pues da fallo

esquematicamente mi programa es:


SQL_MIS = SQLOpen("DSN=nombre_de_la_conexion_ODBC")

queryString = " bla bla bla ... "

text_SQLoutput = SQLExecQuery(SQL_MIS, queryString)

If Not IsNumeric(text_SQLoutput) Then MsgBox ("Fallo: " + queryString)

MsgBox (Len(queryString))


y la cadena de textoSQL (bla bla bla...) viene a ser:


queryString = " dbo.EntityNEW 'new customer','','','','New
Customer','Aldioinert','ARGENTINA','que
impo','l','l','e','1','1','w','Discount stores','End User','Food
retail','Food retail refrigeration','non.applicable','','End
Users','¿?','A12345','2004-05-06','17:48:32' "

queryString = " dbo.EntityNEW 'new customer','','','','New
Customer','Aldioinert','ARGENTINA','que
impor','l','l','e','1','1','w','Discount stores','End User','Food
retail','Food retail refrigeration','non.applicable','','End
Users','¿?','A12345','2004-05-06','17:48:32' "


la primera funciona, la segunda falla , diferencias??


queryString = " dbo.EntityNEW 'new customer','','','','New
Customer','Aldioinert','ARGENTINA','que impo'... -> 255 caracteres
queryString = " dbo.EntityNEW 'new customer','','','','New
Customer','Aldioinert','ARGENTINA','que impor'... -> 256 caracteres




es esto una limitacion del servidor-SQL, del link
ODBC o ...???

hay forma de salvarla???


gracias por las molestias

Preguntas similare

Leer las respuestas

#1 Mara
10/05/2004 - 16:25 | Informe spam
olvide especificar:

Wxp

SQL-server 8.00.760 (SQL-server_2000)

driver ODBC: Microsoft SQL Server ODBC Driver Version 03.81.9042
Respuesta Responder a este mensaje
#2 manel gonzalez
10/05/2004 - 16:54 | Informe spam
Lamentablemente yo me encontre con el mismo problema y la única solución que
encontre fué definir en el procedimiento almacenado 4 variables de 255
caracteres y concatenarlas ya en SQL server..

Creo que es una limitacion de ODBC :-(

De todas maneras a mi también me interesa... Si alguien puede arrojar alguna
luz al caso


"Mara" escribió en el mensaje
news:e%
olvide especificar:

Wxp

SQL-server 8.00.760 (SQL-server_2000)

driver ODBC: Microsoft SQL Server ODBC Driver Version 03.81.9042


Respuesta Responder a este mensaje
#3 manuel garcía
10/05/2004 - 18:22 | Informe spam
Mara, en la select que haces al final, convierte la variable a TEXT
COVERT(nombre_variable,TEXT) y se resuelve. Si es un argumento no porque no
se puede declarar un argumento tipo TEXT

Un saludo,

"Mara" escribió en el mensaje
news:%
he puesto ot devido a que no se si es este el grupo al que he de


dirigirme,
pero es el mas apropiado que he encontrado

mi problema es que necesito ejecutar un store_procedure en un sql-server
desde una applicacion VBA en excel, y cuando la cadena de texto (sentencia
SQL) pasa de 255 caracteres pues da fallo

esquematicamente mi programa es:


SQL_MIS = SQLOpen("DSN=nombre_de_la_conexion_ODBC")

queryString = " bla bla bla ... "

text_SQLoutput = SQLExecQuery(SQL_MIS, queryString)

If Not IsNumeric(text_SQLoutput) Then MsgBox ("Fallo: " + queryString)

MsgBox (Len(queryString))


y la cadena de textoSQL (bla bla bla...) viene a ser:


queryString = " dbo.EntityNEW 'new customer','','','','New
Customer','Aldioinert','ARGENTINA','que
impo','l','l','e','1','1','w','Discount stores','End User','Food
retail','Food retail refrigeration','non.applicable','','End
Users','¿?','A12345','2004-05-06','17:48:32' "

queryString = " dbo.EntityNEW 'new customer','','','','New
Customer','Aldioinert','ARGENTINA','que
impor','l','l','e','1','1','w','Discount stores','End User','Food
retail','Food retail refrigeration','non.applicable','','End
Users','¿?','A12345','2004-05-06','17:48:32' "


la primera funciona, la segunda falla , diferencias??


queryString = " dbo.EntityNEW 'new customer','','','','New
Customer','Aldioinert','ARGENTINA','que impo'... -> 255 caracteres
queryString = " dbo.EntityNEW 'new customer','','','','New
Customer','Aldioinert','ARGENTINA','que impor'... -> 256 caracteres




es esto una limitacion del servidor-SQL, del link
ODBC o ...???

hay forma de salvarla???


gracias por las molestias


Respuesta Responder a este mensaje
#4 Mara
10/05/2004 - 18:44 | Informe spam
hola manuel:

no te entiendo, de que select me hablas

lo que le paso (y es lo unico que paso) al server es el nombre del procedure
y todos los parametros que necesita, no hago ningun select

y el problema es que la llamada no llega al server (error: 2042)

"manuel garcía" wrote in message
news:%
Mara, en la select que haces al final, convierte la variable a TEXT
COVERT(nombre_variable,TEXT) y se resuelve. Si es un argumento no porque


no
se puede declarar un argumento tipo TEXT

Un saludo,

"Mara" escribió en el mensaje
news:%
> he puesto ot devido a que no se si es este el grupo al que he de
dirigirme,
> pero es el mas apropiado que he encontrado
>
> mi problema es que necesito ejecutar un store_procedure en un sql-server
> desde una applicacion VBA en excel, y cuando la cadena de texto


(sentencia
> SQL) pasa de 255 caracteres pues da fallo
>
> esquematicamente mi programa es:
>
>
> SQL_MIS = SQLOpen("DSN=nombre_de_la_conexion_ODBC")
>
> queryString = " bla bla bla ... "
>
> text_SQLoutput = SQLExecQuery(SQL_MIS, queryString)
>
> If Not IsNumeric(text_SQLoutput) Then MsgBox ("Fallo: " + queryString)
>
> MsgBox (Len(queryString))
>
>
> y la cadena de textoSQL (bla bla bla...) viene a ser:
>
>
> queryString = " dbo.EntityNEW 'new customer','','','','New
> Customer','Aldioinert','ARGENTINA','que
> impo','l','l','e','1','1','w','Discount stores','End User','Food
> retail','Food retail refrigeration','non.applicable','','End
> Users','¿?','A12345','2004-05-06','17:48:32' "
>
> queryString = " dbo.EntityNEW 'new customer','','','','New
> Customer','Aldioinert','ARGENTINA','que
> impor','l','l','e','1','1','w','Discount stores','End User','Food
> retail','Food retail refrigeration','non.applicable','','End
> Users','¿?','A12345','2004-05-06','17:48:32' "
>
>
> la primera funciona, la segunda falla ,


diferencias??
>
>
> queryString = " dbo.EntityNEW 'new customer','','','','New
> Customer','Aldioinert','ARGENTINA','que impo'... -> 255 caracteres
> queryString = " dbo.EntityNEW 'new customer','','','','New
> Customer','Aldioinert','ARGENTINA','que impor'... -> 256 caracteres
>
>
>
>
> es esto una limitacion del servidor-SQL, del


link
> ODBC o ...???
>
> hay forma de salvarla???
>
>
> gracias por las molestias
>
>


Respuesta Responder a este mensaje
#5 manuel garcía
11/05/2004 - 10:30 | Informe spam
Mara, no habia leido tu mail detenidamente. prueba cambiar el argumento
"largo" de VARCHAR a TEXT

"Mara" escribió en el mensaje
news:
hola manuel:

no te entiendo, de que select me hablas

lo que le paso (y es lo unico que paso) al server es el nombre del


procedure
y todos los parametros que necesita, no hago ningun select

y el problema es que la llamada no llega al server (error: 2042)

"manuel garcía" wrote in message
news:%
> Mara, en la select que haces al final, convierte la variable a TEXT
> COVERT(nombre_variable,TEXT) y se resuelve. Si es un argumento no porque
no
> se puede declarar un argumento tipo TEXT
>
> Un saludo,
>
> "Mara" escribió en el mensaje
> news:%
> > he puesto ot devido a que no se si es este el grupo al que he de
> dirigirme,
> > pero es el mas apropiado que he encontrado
> >
> > mi problema es que necesito ejecutar un store_procedure en un


sql-server
> > desde una applicacion VBA en excel, y cuando la cadena de texto
(sentencia
> > SQL) pasa de 255 caracteres pues da fallo
> >
> > esquematicamente mi programa es:
> >
> >
> > SQL_MIS = SQLOpen("DSN=nombre_de_la_conexion_ODBC")
> >
> > queryString = " bla bla bla ... "
> >
> > text_SQLoutput = SQLExecQuery(SQL_MIS, queryString)
> >
> > If Not IsNumeric(text_SQLoutput) Then MsgBox ("Fallo: " + queryString)
> >
> > MsgBox (Len(queryString))
> >
> >
> > y la cadena de textoSQL (bla bla bla...) viene a


ser:
> >
> >
> > queryString = " dbo.EntityNEW 'new customer','','','','New
> > Customer','Aldioinert','ARGENTINA','que
> > impo','l','l','e','1','1','w','Discount stores','End User','Food
> > retail','Food retail refrigeration','non.applicable','','End
> > Users','¿?','A12345','2004-05-06','17:48:32' "
> >
> > queryString = " dbo.EntityNEW 'new customer','','','','New
> > Customer','Aldioinert','ARGENTINA','que
> > impor','l','l','e','1','1','w','Discount stores','End User','Food
> > retail','Food retail refrigeration','non.applicable','','End
> > Users','¿?','A12345','2004-05-06','17:48:32' "
> >
> >
> > la primera funciona, la segunda falla ,
diferencias??
> >
> >
> > queryString = " dbo.EntityNEW 'new customer','','','','New
> > Customer','Aldioinert','ARGENTINA','que impo'... -> 255 caracteres
> > queryString = " dbo.EntityNEW 'new customer','','','','New
> > Customer','Aldioinert','ARGENTINA','que impor'... -> 256 caracteres
> >
> >
> >
> >
> > es esto una limitacion del servidor-SQL, del
link
> > ODBC o ...???
> >
> > hay forma de salvarla???
> >
> >
> > gracias por las molestias
> >
> >
>
>


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