我在oracle中创建了一个含blob字段的表,用来存照片,可向中保存时保存不进去。
procedure TForm1.Button2Click(Sender: TObject);
var graphic1:Tgraphic;
begin
graphic1:=graphic1.Create;
graphic1.LoadFromFile(OpenPictureDialog1.FileName);
with adoquery1 do
begin
open;
INSERT;
fieldbyname('id').AsString:=TRIM(edit1.Text);
FieldByName( 'IMAGE1').Assign(graphic1);
//TblobField(FieldByName( 'IMAGE1' )).SaveToFile(OpenPictureDialog1.FileName);
POST;
end;
graphic1.Free
end;
procedure TForm1.Button2Click(Sender: TObject);
var graphic1:Tgraphic;
begin
graphic1:=graphic1.Create;
graphic1.LoadFromFile(OpenPictureDialog1.FileName);
with adoquery1 do
begin
open;
INSERT;
fieldbyname('id').AsString:=TRIM(edit1.Text);
FieldByName( 'IMAGE1').Assign(graphic1);
//TblobField(FieldByName( 'IMAGE1' )).SaveToFile(OpenPictureDialog1.FileName);
POST;
end;
graphic1.Free
end;
解决方案 »
- 为什么动态创建的数据集不能CLONE
- 请教一个算法的实现
- 请问怎么在ShellListView中屏蔽双击时应用程序的自动执行?
- 请问高手,关于代理的问题(100分)
- 请问怎样进行多个条件的查询?
- 请大家帮个忙 去Http://www.numbertide.com(去了的,报个名,就接分)
- 从1234中取出第一个数的函数是什么?因为我要判断1234和g234第一个数是1还是g.thank!
- 一个关于STRINGGRID的问题¥¥¥¥¥¥¥¥急急急急
- DBGRID中数据录入一问题
- BCB(:)) 请问如何打包access2000数据库的ADO环境?十万火急!
- 如何进行大量的数据替换??
- idtcp组件问题
TBlobField(FieldByName( 'IMAGE1')).LoadFromFile(OpenPictureDialog1.FileName);
/begin
self.ADODataSet1.Close;
self.ADODataSet1.CommandText:='select * from t_blob';
self.ADODataSet1.Open;
self.ADODataSet1.Append;
TBlobField(self.ADODataSet1.FieldByName( 'cBlob' )).LoadFromFile( 'D:\41207.JPG' );
self.ADODataSet1.Post;
end;
为什么?
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from photo1');
open;
append;
if OpenPictureDialog1.FileName <> '' then
fieldbyname('shbzh').AsString:=TRIM(edit1.Text);
TblobField(FieldByName( 'IMAGE1' )).LoadFromFile(OpenPictureDialog2.FileName);
post;
这样可以,但只能存入*.bmp文件,不能存入*.jpg文件。为什么?image1是long row型
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from photo1');
open;
append;
if OpenPictureDialog1.FileName <> '' then
fieldbyname('shbzh').AsString:=TRIM(edit1.Text);
TblobField(FieldByName( 'IMAGE1' )).LoadFromFile(OpenPictureDialog2.FileName);
post;
这样可以,但只能存入*.bmp文件,不能存入*.jpg文件。为什么?image1是long row型
我现在就是这样做的,可我想直接存入jpg文件,bmp文件太大,占用空间大不说,存入时间也长。如果数量多的话怎么受得了啊。
ms: TMemoryStream;
begin
WaitForm.pdShowProgress(cSMPhoto);
ms := TMemoryStream.Create;
dbimgPhoto.Picture.Graphic.SaveToStream(ms);
ms.Position := 0;
with TADOQuery.Create(nil) do
try
Connection := AdodsOp.GetADOConn;
1: begin //µÚÒ»´ÎɨÃè
SQL.Add('INSERT INTO VW_DA_RYZPB0(GRID00,RYZPGS,RYZP00,JBR000,JBRQ00) ');
SQL.Add('VALUES(:GRID00,:RYZPGS,:RYZP00,:JBR000,:JBRQ00)');
end;
Parameters.ParamByName('GRID00').Value := Trim(edtGRID00.Text);
Parameters.ParamByName('RYZPGS').Value := edtRYZPGS.Text;
Parameters.ParamByName('RYZP00').LoadFromStream(ms, ftDBaseOle);
Parameters.ParamByName('JBR000').Value := Trim(gUserInfo.vUserName);
Parameters.ParamByName('JBRQ00').Value := gSysInfo.PO_SYSDATE;
ExecSQL;
finally
Free;
ms.Free;
WaitForm.pdCloseProgress;
end;