é, li sua mensagem e percebi que deveria usar clob mesmo para o
objeto memo, pois é texto, mas me diga uma coisa, passei o parametro
(declarado e passado) com AsString. Esta correto? Tipo, funcionou,
mas é a maneira mais correta de se fazer? Obrigado desde já João.
--- Em delphi-br@yahoogrupos.com.br, Joao Morais <[EMAIL PROTECTED]> escreveu
>
> rei_do_delphi wrote:
> > gente, será que nunca ninguém passou por isso para poder me
ajudar?
>
> Tentou clob ao invés de blob?
>
> --
> Joao Morais
>
>
> > --- Em delphi-br@yahoogrupos.com.br, "rei_do_delphi"
> > <brunomaximomogi@> escreveu
> >> Alguém aí ja utilizou campo blob com objeto memo? salvando o
> >> conteúdo do objeto memo em campo blob?
> >>
> >> estou usando ORacle 10g XE e tenho uma tabela com campo blob:
> >>
> >> CREATE TABLE "MAXIMO"."TB_DVD"
> >> ( "CODDVD" NUMBER NOT NULL ENABLE,
> >> "CODBARRAS" VARCHAR2(13 BYTE) DEFAULT NULL,
> >> "TITULO" VARCHAR2(50 BYTE) NOT NULL ENABLE,
> >> "ANO_LANCTO" NUMBER(4,0) DEFAULT NULL,
> >> "SIST_COR" VARCHAR2(5 BYTE) DEFAULT NULL,
> >> "REGIAO" NUMBER(1,0) DEFAULT 4,
> >> "TITULO_ORIG" VARCHAR2(50 BYTE) DEFAULT 'DESCONHECIDO' NOT
> >> NULL ENABLE,
> >> "DOC" CHAR(1 BYTE) DEFAULT 'F',
> >> "DIRETOR" NUMBER DEFAULT null,
> >> "TIPO" NUMBER DEFAULT null,
> >> "SINOPSE" BLOB,
> >> CONSTRAINT "PK_DVD" PRIMARY KEY ("CODDVD"))
> >>
> >> tenho uma procedure, que deveria adicionar gravar os dados
nessa
> >> tabela, e grava tudo certo, mas quando chega no campo blob,
fica em
> >> nulo:
> >>
> >> create or replace
> >> PROCEDURE "PRO_ADD_DVD2" ( P_CODBARRAS IN
VARCHAR2,P_TITULO
> >> IN VARCHAR2,
> >> P_TITULO_ORIG IN VARCHAR2,P_ANOLANCTO IN NUMBER, P_SISTCOR
IN
> >> VARCHAR2,
> >> P_DIRETOR IN NUMBER,P_GENERO IN NUMBER,P_REGIAO IN VARCHAR2,
> >> P_DOC IN VARCHAR2,P_SINOPSE IN BLOB,P_RET OUT VARCHAR2)
> >> AS
> >> V_CODBARRAS VARCHAR2(13) :=P_CODBARRAS;
> >> V_TITULO VARCHAR2(50) :=P_TITULO;
> >> V_TITULO_ORIG VARCHAR2(50) :=P_TITULO_ORIG;
> >> V_ANOLANCTO NUMBER :=P_ANOLANCTO;
> >> V_SISTCOR VARCHAR2(5):=P_SISTCOR;
> >> V_DIRETOR NUMBER :=P_DIRETOR;
> >> V_REGIAO NUMBER :=P_REGIAO;
> >> V_DOC VARCHAR(2) :=P_DOC;
> >> V_GENERO NUMBER:=P_GENERO;
> >> V_SINOPSE blob:=P_SINOPSE;
> >>
> >> V_CODDVD NUMBER;
> >>
> >> cursor cur_tempart is
> >> select codartista from tb_temp_dvd_art;
> >> BEGIN
> >> IF V_TITULO IS NOT NULL THEN
> >> P_RET:=2;--2 PARA TITULO EM VAZIO
> >> NULL;
> >> END IF;
> >> IF V_TITULO_ORIG IS NOT NULL THEN
> >> P_RET:=3;--3 PARA TITULO_ORIG EM VAZIO
> >> NULL;
> >> END IF;
> >> INSERT INTO TB_DVD(
> >> CODBARRAS,TITULO,TITULO_ORIG,ANO_LANCTO,SIST_COR,
> >> DIRETOR,REGIAO,TIPO,SINOPSE,DOC)
> >> VALUES(
> >>
> >> V_CODBARRAS,V_TITULO,V_TITULO_ORIG,V_ANOLANCTO,V_SISTCOR,
> >> V_DIRETOR,V_REGIAO,V_GENERO,P_SINOPSE,V_DOC);
> >> IF Sql%RowCount=1 then
> >> p_ret:='1';
> >> else
> >> p_ret:='0';
> >> end if;
> >>
> >> select max(coddvd) into v_coddvd from tb_dvd;
> >> for i in cur_tempart loop
> >> INSERT INTO TB_DVD_ARTISTA (CODDVD,CODARTISTA) VALUES
> >> (V_CODDVD,i.codartista);
> >> end loop;
> >> DELETE FROM TB_TEMP_DVD_ART;
> >>
> >> END;
> >>
> >> aí tenho também o código do delphi que utilizei para passar o
> >> parâmetro do campo memo para o blob:
> >>
> >> Params.CreateParam(ftMemo,'P_SINOPSE',ptInput);
> >>
> >> vStored.Params.ParamByName('P_SINOPSE').AsMemo:=
> >> MemSinopse.Text;
> >>
> >> como deveria fazer?
> >>
> >> estou utilizando componente OraStoredProc da ODAC. Alguém pode
me
> >> ajudar?
> >>
> >
> >
> >
> >
>