Campo text

30/12/2003 - 15:48 por Jorge Martinez | Informe spam
Necesito llamar a un store procedure pasándole como parámetro el contenido
de un campo de una tabla de mi base de datos (SQL 7.0) del tipo text, estoy
dando vueltas sobre esto y no le encuentro la forma, alguien me puede dar
una mano, gracias.



Saludos

Felices Fiestas y un prospero Año Nuevo

Preguntas similare

Leer las respuestas

#6 ulises
30/12/2003 - 17:34 | Informe spam
Asumiendo que el campo texto almacena solo caracteres
hasta un máximo 8000 caracteres puedes asignar a una
variable tipo char el campo, algo como :

declare @campo varchar(8000)
select @campo = campo from tablatexto where clave = 1
exec lista @campo

si el campo texto almacena campos binarios no sabría como
hacerlo.

Saludos,
Ulises


Ok, y como asigno el contenido de mi campo en la base de


datos a la
variable @campo ?

Disculpas si es obvio y no lo veo..


"ulises" escribió en el


mensaje
news:09b501c3cee9$9fe2f960$
El tipo text también puede ser usado como parámetro en un
store procedure en SQL2K y SQL7, puedes probar con :

create procedure lista ( @campo text )
as
select @campo

exec lista 'esto es un campo texto'


esto es un campo texto

(1 row(s) affected)

en todo caso indica como lo estas ejecutando y que mensaje
te envia.

Saludos,
Ulises

Necesito llamar a un store procedure pasándole como


parámetro el contenido
de un campo de una tabla de mi base de datos (SQL 7.0)


del tipo text, estoy
dando vueltas sobre esto y no le encuentro la forma,


alguien me puede dar
una mano, gracias.



Saludos

Felices Fiestas y un prospero Año Nuevo


.





.

Respuesta Responder a este mensaje
#7 Jorge Martinez
30/12/2003 - 17:44 | Informe spam
Ahí está el problema, en mi campo text yo tengo más de 8000 caracteres y por
eso no puedo trabajar con una variable del tipo varchar, sino ya lo hubiera
tenido resuelto, el inconveniente se presenta efectivamente al tratar con
dato del tipo text...

"ulises" escribió en el mensaje
news:00fa01c3cef2$bc9bf210$
Asumiendo que el campo texto almacena solo caracteres
hasta un máximo 8000 caracteres puedes asignar a una
variable tipo char el campo, algo como :

declare @campo varchar(8000)
select @campo = campo from tablatexto where clave = 1
exec lista @campo

si el campo texto almacena campos binarios no sabría como
hacerlo.

Saludos,
Ulises


Ok, y como asigno el contenido de mi campo en la base de


datos a la
variable @campo ?

Disculpas si es obvio y no lo veo..


"ulises" escribió en el


mensaje
news:09b501c3cee9$9fe2f960$
El tipo text también puede ser usado como parámetro en un
store procedure en SQL2K y SQL7, puedes probar con :

create procedure lista ( @campo text )
as
select @campo

exec lista 'esto es un campo texto'


esto es un campo texto

(1 row(s) affected)

en todo caso indica como lo estas ejecutando y que mensaje
te envia.

Saludos,
Ulises

Necesito llamar a un store procedure pasándole como


parámetro el contenido
de un campo de una tabla de mi base de datos (SQL 7.0)


del tipo text, estoy
dando vueltas sobre esto y no le encuentro la forma,


alguien me puede dar
una mano, gracias.



Saludos

Felices Fiestas y un prospero Año Nuevo


.





.

Respuesta Responder a este mensaje
#8 Jorge Martinez
30/12/2003 - 18:16 | Informe spam
Entonce como se te ocurre que pueda solucionar esto:
"EXEC @hr = sp_OASetProperty @MailID, 'Body', @Body"

Es parte de un store procedure (abajo está entero) que me genera un objeto
mail cdonts, la variable @body es del tipo text,
yo tengo que asignar esta propiedad y solo puedo (que conozca) asignarla
mediante una variable, agradeceré tu ayuda si sabés de alguna alternativa.
















CREATE PROCEDURE [dbo].[EnviarMailCdonts] @From varchar(100),
@To varchar(100),
@Subject varchar(100),
@Body text,
@CC varchar(100) = null,
@BCC varchar(100) = null
AS
Declare @MailID int
Declare @hr int

DECLARE @message int
DECLARE @config int
DECLARE @src varchar(255), @desc varchar(255)

EXEC @hr = sp_OACreate 'CDO.Message', @message OUT -- create the message
object
EXEC @hr = sp_OACreate 'CDO.Configuration', @config OUT -- create the
configuration object

EXEC @hr = sp_OASetProperty @config, 'Fields(cdoSendUsingMethod)',
'cdoSendUsingPort' -- Send the message using the network
EXEC @hr = sp_OASetProperty @config, 'Fields(cdoSMTPServer)', 'ntserver' --
SMTP Server
EXEC @hr = sp_OASetProperty @config, 'Fields(cdoSMTPServerPort)', 25 --
Server SMTP Port
EXEC @hr = sp_OASetProperty @config, 'Fields(cdoSMTPAuthenticate)',
'cdoAnonymous' -- Anonymous SMTP Authenticate
EXEC sp_OAMethod @config, 'Fields.Update'


EXEC @hr = sp_OACreate 'CDONTS.NewMail', @MailID OUT
EXEC @hr = sp_OASetProperty @MailID, 'From',@From
EXEC @hr = sp_OASetProperty @MailID, 'Body', @Body
EXEC @hr = sp_OASetProperty @MailID, 'BCC',@BCC
EXEC @hr = sp_OASetProperty @MailID, 'CC', @CC
EXEC @hr = sp_OASetProperty @MailID, 'MailFormat', 0
EXEC @hr = sp_OASetProperty @MailID, 'BodyFormat', 0
EXEC @hr = sp_OASetProperty @MailID, 'AttachFile' ,'c:\up.bat'
EXEC @hr = sp_OASetProperty @MailID, 'Subject', @Subject
EXEC @hr = sp_OASetProperty @MailID, 'To', @To
EXEC @hr = sp_OAMethod @MailID, 'Send', NULL
EXEC @hr = sp_OADestroy @MailID
GO


"Miguel Egea" escribió en el mensaje
news:%23YyZr$
No se pueden pasar campos text o ntext como parámetro (fijate que podrían
ser 2 gb de parámetro), lo que si que puedes hacer es pasar como parámetro
la clave primaria del registro en donde esté el ntext y listo,
También puede suponer un tamaño y pasar tantos strings de hasta 8kbs como
quieras usando la función substring (substr


=> Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad



http://www.microsoft.com/spain/tech...9-USER.asp
==>
"Mazinger" escribió en el mensaje
news:047d01c3cee5$a1b14d90$
¿Y como lo estas haciendo?... ¿desde donde llamas a ese
store procedure ?

>Necesito llamar a un store procedure pasándole como
parámetro el contenido
>de un campo de una tabla de mi base de datos (SQL 7.0)
del tipo text, estoy
>dando vueltas sobre esto y no le encuentro la forma,
alguien me puede dar
>una mano, gracias.
>
>
>
>Saludos
>
>Felices Fiestas y un prospero Año Nuevo
>
>
>.
>


Respuesta Responder a este mensaje
#9 Jorge Martinez
30/12/2003 - 21:36 | Informe spam
Gracias por la respuesta, debo estar a un pelito de poder lograrlo , pero de
esta forma al llamar a mi store ,éste no se da cuenta de los datos que le
estoy pasando y me pide el parámetro, "el store requiere el parámetro @body
que no se ha espeficficado..."





PD:Saludos a D. Seara de parte de un alumno del 1er curso de .NET que dió en
BS

"Adrian Garcia" escribió en el mensaje
news:
Existe en T-SQL las funciones TEXTPTR que devuelve un puntero a una


columna
del tipo IMAGE, TEXT y NTEXT. Junto a la funcion READTEXT creo que es
posible hacer lo que deseas. He aqui un ejemplo:

SET TEXTSIZE 2147483647USE pubs
DECLARE @val varbinary(16)
SELECT @val = textptr(pr_info) FROM pub_info
WHERE pub_id = '0736'
EXEC mistoredprocedure (READTEXT pub_info.pr_info @val 0 2147483647) --Me
aseguro que le estoy pasando hasta la longitud maxima posible.Este codigo
hay que probarlo, no le tengo mucha fe que digamos...SaludosAdrianNDSOft


"Jorge Martinez" wrote in message
news:e%
> Ahí está el problema, en mi campo text yo tengo más de 8000 caracteres y
por
> eso no puedo trabajar con una variable del tipo varchar, sino ya lo
hubiera
> tenido resuelto, el inconveniente se presenta efectivamente al tratar


con
> dato del tipo text...
>
> "ulises" escribió en el mensaje
> news:00fa01c3cef2$bc9bf210$
> Asumiendo que el campo texto almacena solo caracteres
> hasta un máximo 8000 caracteres puedes asignar a una
> variable tipo char el campo, algo como :
>
> declare @campo varchar(8000)
> select @campo = campo from tablatexto where clave = 1
> exec lista @campo
>
> si el campo texto almacena campos binarios no sabría como
> hacerlo.
>
> Saludos,
> Ulises
>
>
> >Ok, y como asigno el contenido de mi campo en la base de
> datos a la
> >variable @campo ?
> >
> >Disculpas si es obvio y no lo veo..
> >
> >
> >"ulises" escribió en el
> mensaje
> >news:09b501c3cee9$9fe2f960$
> >El tipo text también puede ser usado como parámetro en un
> >store procedure en SQL2K y SQL7, puedes probar con :
> >
> >create procedure lista ( @campo text )
> >as
> >select @campo
> >
> >exec lista 'esto es un campo texto'
> >
> >
> >esto es un campo texto
> >
> >(1 row(s) affected)
> >
> >en todo caso indica como lo estas ejecutando y que mensaje
> >te envia.
> >
> >Saludos,
> >Ulises
> >
> >>Necesito llamar a un store procedure pasándole como
> >parámetro el contenido
> >>de un campo de una tabla de mi base de datos (SQL 7.0)
> >del tipo text, estoy
> >>dando vueltas sobre esto y no le encuentro la forma,
> >alguien me puede dar
> >>una mano, gracias.
> >>
> >>
> >>
> >>Saludos
> >>
> >>Felices Fiestas y un prospero Año Nuevo
> >>
> >>
> >>.
> >>
> >
> >
> >.
> >
>
>


Respuesta Responder a este mensaje
#10 Adrian Garcia
31/12/2003 - 01:29 | Informe spam
Existe en T-SQL las funciones TEXTPTR que devuelve un puntero a una columna
del tipo IMAGE, TEXT y NTEXT. Junto a la funcion READTEXT creo que es
posible hacer lo que deseas. He aqui un ejemplo:

SET TEXTSIZE 2147483647USE pubs
DECLARE @val varbinary(16)
SELECT @val = textptr(pr_info) FROM pub_info
WHERE pub_id = '0736'
EXEC mistoredprocedure (READTEXT pub_info.pr_info @val 0 2147483647) --Me
aseguro que le estoy pasando hasta la longitud maxima posible.Este codigo
hay que probarlo, no le tengo mucha fe que digamos...SaludosAdrianNDSOft


"Jorge Martinez" wrote in message
news:e%
Ahí está el problema, en mi campo text yo tengo más de 8000 caracteres y


por
eso no puedo trabajar con una variable del tipo varchar, sino ya lo


hubiera
tenido resuelto, el inconveniente se presenta efectivamente al tratar con
dato del tipo text...

"ulises" escribió en el mensaje
news:00fa01c3cef2$bc9bf210$
Asumiendo que el campo texto almacena solo caracteres
hasta un máximo 8000 caracteres puedes asignar a una
variable tipo char el campo, algo como :

declare @campo varchar(8000)
select @campo = campo from tablatexto where clave = 1
exec lista @campo

si el campo texto almacena campos binarios no sabría como
hacerlo.

Saludos,
Ulises


>Ok, y como asigno el contenido de mi campo en la base de
datos a la
>variable @campo ?
>
>Disculpas si es obvio y no lo veo..
>
>
>"ulises" escribió en el
mensaje
>news:09b501c3cee9$9fe2f960$
>El tipo text también puede ser usado como parámetro en un
>store procedure en SQL2K y SQL7, puedes probar con :
>
>create procedure lista ( @campo text )
>as
>select @campo
>
>exec lista 'esto es un campo texto'
>
>
>esto es un campo texto
>
>(1 row(s) affected)
>
>en todo caso indica como lo estas ejecutando y que mensaje
>te envia.
>
>Saludos,
>Ulises
>
>>Necesito llamar a un store procedure pasándole como
>parámetro el contenido
>>de un campo de una tabla de mi base de datos (SQL 7.0)
>del tipo text, estoy
>>dando vueltas sobre esto y no le encuentro la forma,
>alguien me puede dar
>>una mano, gracias.
>>
>>
>>
>>Saludos
>>
>>Felices Fiestas y un prospero Año Nuevo
>>
>>
>>.
>>
>
>
>.
>


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