再問Oracle存儲圖片問題﹗請幫幫我。(120分)

  • 主题发起人 主题发起人 dadabox
  • 开始时间 开始时间
D

dadabox

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大俠﹕
1.我要存儲圖片在Oracle中。我用long raw類型可以存儲圖片﹐但一個表中只能存儲一個
long raw攔位﹐並且我試著存了bmp文件進去﹐發現小一點的圖片存儲完整(26K)左右﹐而
大一點的(40K以上的)就存儲不完整了﹐只有一部分。請問應該怎么處理。-->60分
2.我要在一個表中存儲多個圖片欄位﹐用long raw不行﹐我用blob類型﹐但將Table或query
的active設為True時﹐就發生invalid files type錯誤﹐請問要怎么解決才好。我的Delphi
是5.0的企業版﹐Oracle是8.1.5.0.0版﹐大俠們能告訴是哪儿出了錯誤嗎﹖-->60分
小弟分已沒了﹐實在抱歉﹐不能多點。
庫結構:
create table orapic(
filename varchar2(100),
pic long raw));
create table orablobpic(
filename varchar2(100),
pic blob));
在SQL PLUS中用select查詢orapic沒問題﹐但查詢orablobpic表就提示
SP2-0678: 資料欄或屬性類型無法經由 SQL*Plus 顯示
insert:
procedure TForm1.Button1Click(Sender: TObject);
var MyStream: TMemoryStream;
begin
try
MyStream:=TMemoryStream.Create;
MyStream.LoadFromFile(FileName);
MyStream.Position:=0;
Database1.StartTransaction;
try
With Query1do
begin
close;
SQL.Clear;
SQL.Add('Insert into orapic values(:filename,:newimage)');
ParamByName('filename').AsString:=FileName;
ParamByName('newimage').LoadFromStream(FS,ftOraBlob);
ExecSQL;
end;
DataBase1.Commit;
except
On E:EDBEngineErrordo
ShowMessage('有問題﹗');
end;
finally
MyStream.Free;
end;
end;
查看我是用DBImage控件。也可以用Image顯示。
procedure TForm1.Button3Click(Sender: TObject);
var pic1:TMemoryStream;
begin
pic1:=TMemoryStream.Create;
TBlobField(Query1.FieldByName('image')).SaveToStream(Pic1);
Pic1.SaveToFile('d:/aa.bmp');
Image1.Picture.RegisterFileFormat('bmp','bmp',TBitmap);
Image1.Picture.LoadFromFile('d:/aa.bmp');
Pic1.Free;
end;
請各位大俠幫幫忙﹐小弟的老大要得很急呢。若有實例請給小弟看看﹐若覺得這儿太慢﹐可
以發到小弟的郵箱中。zhkfy@21cn.com﹐萬分感謝﹗﹗
 
建议一个站点:http://www.oradb.net
 
這個站點我知道﹐也去過﹐但沒有我現在要的東西。
 
A table can contain multiple LOB columns but only one LONG column
 
1。修改ORACLE别名的BOLB SIZE 设为一个比较大的数如8192
 
那个站点你不想去,
这个站点你既然来了
查查以前的答案吧
建议把经常问到问题答案做到主页上,方便流览.
如在主页左边一排按钮上再加个按钮:
高频问题精选之类的东东
 
我现在也遇到了第二个问题,开表的时候出错,
oracle8.1.6 缺少表达式。
如能解决请高之,分数200,
 
多人接受答案了。
 
后退
顶部