Exibindo documento Word gravado em campo Blob do Oracle
Em uma determina tabela de BD do Oracle existe um campo Blob onde são gravados documentos Word como OleVariant. no Entando na hora de pegar esses documentos de volta e exibi-los está dando erro! o codigo que estou tentando usar é o seguinte:
var Doc: OLEVariant;
Doc := ClientDataSet1.Fields[0].AsVariant; {Campo onde esta o documento word}
Word2k.Documents.Add(Doc, Doc, ´Word.Application´, True); {Adicionando o documento a um WordApplication}
Nao sei se os parametros para o Word2k.Documents.Add são assim pois nao achei nenhum help desse metodo. Quem souber como fazer isso por favor me mostre estarei esperando.
var Doc: OLEVariant;
Doc := ClientDataSet1.Fields[0].AsVariant; {Campo onde esta o documento word}
Word2k.Documents.Add(Doc, Doc, ´Word.Application´, True); {Adicionando o documento a um WordApplication}
Nao sei se os parametros para o Word2k.Documents.Add são assim pois nao achei nenhum help desse metodo. Quem souber como fazer isso por favor me mostre estarei esperando.
Maxwell_monteiro
Curtidas 0
Respostas
Martins_vicente
13/04/2004
Caro Maxwell,
Segue abaixo uma rotina para descarregar arquivos gravados em campo BLOB do banco (talvez dê para adaptar a sua necessidade :idea: ):
blob := seuDataset.CreateBlobStream(seuDataset.FieldByName(´CAMPO_BLOB´), bmRead);
try
blob.Seek(0, soFromBeginning);
with TFileStream.Create(´c:\documento.doc´, fmCreate) do
try
CopyFrom(blob, blob.Size)
finally
Free
end;
finally
blob.Free
end;
Boa sorte!
Segue abaixo uma rotina para descarregar arquivos gravados em campo BLOB do banco (talvez dê para adaptar a sua necessidade :idea: ):
blob := seuDataset.CreateBlobStream(seuDataset.FieldByName(´CAMPO_BLOB´), bmRead);
try
blob.Seek(0, soFromBeginning);
with TFileStream.Create(´c:\documento.doc´, fmCreate) do
try
CopyFrom(blob, blob.Size)
finally
Free
end;
finally
blob.Free
end;
Boa sorte!
GOSTEI 0
Martins_vicente
13/04/2004
Ahh...
Esqueci de mencionar: a variavel BLOB é do tipo TStream e não TBlobStream e para carregar o documento depois é só usar o ShellExecute!
falow!
Esqueci de mencionar: a variavel BLOB é do tipo TStream e não TBlobStream e para carregar o documento depois é só usar o ShellExecute!
falow!
GOSTEI 0
Maxwell_monteiro
13/04/2004
Tente mais essa:
para colocar o arquivo no banco:
TBlobField(seudataset.fieldbyname(´sua_chave´)).LoadFromFile(´c:\teste.doc´);
para tirar o arquivo do banco:
TBlobField(seudataset.fieldbyname(´sua_chave´)).SaveToFile(´c:\teste.doc´);
Quanto ao DOA (Direct Oracle Access): é uma ótima suite de componentes para acesso nativo ao Oracle.
Site do desenvolvedor:
http://www.allroundautomations.com
Site do distribuidor no Brasil:
http://www.dbmaster.com.br/
para colocar o arquivo no banco:
TBlobField(seudataset.fieldbyname(´sua_chave´)).LoadFromFile(´c:\teste.doc´);
para tirar o arquivo do banco:
TBlobField(seudataset.fieldbyname(´sua_chave´)).SaveToFile(´c:\teste.doc´);
Quanto ao DOA (Direct Oracle Access): é uma ótima suite de componentes para acesso nativo ao Oracle.
Site do desenvolvedor:
http://www.allroundautomations.com
Site do distribuidor no Brasil:
http://www.dbmaster.com.br/
GOSTEI 0
Flávio Castro
13/04/2004
Tente mais essa:
para colocar o arquivo no banco:
TBlobField(seudataset.fieldbyname(´sua_chave´)).LoadFromFile(´c:\teste.doc´);
para tirar o arquivo do banco:
TBlobField(seudataset.fieldbyname(´sua_chave´)).SaveToFile(´c:\teste.doc´);
Quanto ao DOA (Direct Oracle Access): é uma ótima suite de componentes para acesso nativo ao Oracle.
Site do desenvolvedor:
http://www.allroundautomations.com
Site do distribuidor no Brasil:
http://www.dbmaster.com.br/
ok.. estou com um problema parecido... em uma tabela do oracle eu gravo imagens, *.doc, *.pdf, *.htm, *.txt... em um campo do oracle Long Raw... . Para visualizar utilizo os metódos de savetofile e shellexecuta para mostrar. Agora vem o problema. Como essa tabela serve de base de dados de currículos, qual o melhor método para pesquisar esses currículos gravados, através de SQL ou através de PL/SQL??
GOSTEI 0