整个编程,我只用ADODataSet控件!没有用其他任何控件!代码如下:procedure CreateDBConnection() begin ADODataSet1.Close; strSQL:='SELECT * FROM TB_Test WHERE FileID= '+sFileID ; ADODataSet1.Edit; ADODataSet1.CommandText:=strSQL; ADODataSet1.Open; end;procedure t2() begin CreateDBConnection; ADODataSet1.Append; ADODataSet1.Edit; Memstream.Position:=0; TBlobField(ADODataSet1.FieldByName('FileBody')).LoadFromStream(Memstream); ADODataSet1.Post; ADODataSet1.Close; end;
adodataset1.edit; adodataset1.FieldByName('Field1').AsString := 'The Value'; adodataset1.post;
试试这样……procedure t2() begin CreateDBConnection; ADODataSet1.Append; ADODataSet1.Edit; Memstream.Position:=0; TBlobField(ADODataSet1.FieldByName('FileBody')).LoadFromStream(Memstream); if (ADODataSet1.State =dsedit) or (ADODataSet1.State =dsinsert) then begin ADODataSet1.Post; end; ADODataSet1.Close; end;
procedure CreateDBConnection() begin ADODataSet1.Close; strSQL:='SELECT * FROM TB_Test WHERE FileID= '+sFileID ;ADODataSet1.Edit; //这句什么意思? 为什么要加到这?ADODataSet1.CommandText:=strSQL; ADODataSet1.Open; end;procedure t2() begin CreateDBConnection; ADODataSet1.Append; ADODataSet1.Edit; //还有这一个, Append后就已经是新增状态了,为什么还要Edit? Memstream.Position:=0; TBlobField(ADODataSet1.FieldByName('FileBody')).LoadFromStream(Memstream); ADODataSet1.Post; ADODataSet1.Close; end;
2:没有指定数据库
ADODataset.Commandtext:='update.....
begin
ADODataSet1.Close;
strSQL:='SELECT * FROM TB_Test WHERE FileID= '+sFileID ;
ADODataSet1.Edit;
ADODataSet1.CommandText:=strSQL;
ADODataSet1.Open;
end;procedure t2()
begin
CreateDBConnection;
ADODataSet1.Append;
ADODataSet1.Edit;
Memstream.Position:=0;
TBlobField(ADODataSet1.FieldByName('FileBody')).LoadFromStream(Memstream);
ADODataSet1.Post;
ADODataSet1.Close;
end;
adodataset1.FieldByName('Field1').AsString := 'The Value';
adodataset1.post;
begin
CreateDBConnection;
ADODataSet1.Append;
ADODataSet1.Edit;
Memstream.Position:=0;
TBlobField(ADODataSet1.FieldByName('FileBody')).LoadFromStream(Memstream);
if (ADODataSet1.State =dsedit) or (ADODataSet1.State =dsinsert) then
begin
ADODataSet1.Post; end;
ADODataSet1.Close;
end;
begin
ADODataSet1.Close;
strSQL:='SELECT * FROM TB_Test WHERE FileID= '+sFileID ;ADODataSet1.Edit; //这句什么意思? 为什么要加到这?ADODataSet1.CommandText:=strSQL;
ADODataSet1.Open;
end;procedure t2()
begin
CreateDBConnection;
ADODataSet1.Append; ADODataSet1.Edit; //还有这一个, Append后就已经是新增状态了,为什么还要Edit? Memstream.Position:=0;
TBlobField(ADODataSet1.FieldByName('FileBody')).LoadFromStream(Memstream);
ADODataSet1.Post;
ADODataSet1.Close;
end;
adodataset1.insert;
或 adodataset1.edit;
begin
ADODataSet1.Close;
strSQL:='SELECT * FROM TB_Test WHERE FileID= '+sFileID ;
ADODataSet1.CommandText:=strSQL;
ADODataSet1.Open;
end;procedure t2()
begin
CreateDBConnection;
ADODataSet1.Edit;
Memstream.Position:=0;
TBlobField(ADODataSet1.FieldByName('FileBody')).LoadFromStream(Memstream);
ADODataSet1.Post;
end;
你的Memstream是怎么取得内容的,每次取值是否都Memstream.Clear。
procedure CreateDBConnection()
begin
ADODataSet1.Close;
strSQL:='SELECT * FROM TB_Test WHERE FileID= '+sFileID ;
ADODataSet1.Edit; //删除此行
ADODataSet1.CommandText:=strSQL;
ADODataSet1.Open; //改为:ADODataset1.acive:=true;
end;procedure t2()
begin
CreateDBConnection;
ADODataSet1.Append;//删除此行
ADODataSet1.Edit;
Memstream.Position:=0;
TBlobField(ADODataSet1.FieldByName('FileBody')).LoadFromStream(Memstream);
ADODataSet1.Post;
ADODataSet1.Close;
end;