procedure TWRYMain.PostImg(const query1:tquery;const str1:string;const DlgOpPic:TOpenPictureDialog;const imgpic:timage);
begin
if query1.FieldByName('图像子短').AsVariant <> null then //没有
begin
if not (query1.State in [dsEdit,dsInsert]) then query1.Edit;
(query1.FieldByName('图像子短') as TBlobField).LoadFromFile(DlgOpPic.FileName);
query1.Post;
end;
end;
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
begin
if query1.FieldByName('图像子短').AsVariant <> null then //没有
begin
if not (query1.State in [dsEdit,dsInsert]) then query1.Edit;
(query1.FieldByName('图像子短') as TBlobField).LoadFromFile(DlgOpPic.FileName);
query1.Post;
end;
end;
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
有的时候不改变图象字段的内容,有的时候需要改变,
在数据表Before Post 里面加入代码,对于Query,打开数据集的时候,
总要去执行Before Post过程,所以在进行程序判断的时候,需要考虑到这些方面的东西,程序中借助于PictureOpendialog,Image,等控件,像这样的情况怎样去判断呢??
Y: Integer);
begin
if image1.Picture.Graphic=nil then
showmessage('no')
else
showmessage('has')
end;
var
str:Tmemorystream;
begin
//用来保存和显示图象
{在这儿我想添加一段代码,因为数据表的状态可能为插入和编辑,但是我在这儿需要这样去判断,怎样去判断Image中是否有图象,如果有图象我就进行下面的处理,如果没有图象,这段提交图象的程序就不执行,因为图象可以为Bmp和Jpg,我的判断的程序应该怎样去写呢??}
if query1.FieldByName('img').isnull then//判断是否为空
begin
str:=Tmemorystream.Create;
str.LoadFromFile(DlgOpPic.FileName);
str.Position:=0;
Tblobfield(query1.FieldByName(str1)).loadfromstream(str);
//如果你用的是adoquery,把tblobfield改为TADOBlobField
end;
end;
关于你的bmp、jpg的区分,在二进制中是很难区分的,建议你在建立一个字段,专门记录图的类型。