é, 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?
> >>
> > 
> > 
> > 
> >
>


Responder a