insert语句中,Image参数怎样赋值(50分)

  • 主题发起人 主题发起人 zxl893
  • 开始时间 开始时间
procedure TQueue.Put(aStream: TStream; AutoCommit: Boolean=True);
var
SQLStr : String;
RecordNo : Integer;
begin
Assert(Assigned(aStream));

FDatabase.StartTransaction;

try
with FQuery do
begin
//将数据插入队列
SQLStr := 'INSERT INTO %s(SESSION,TRANSACTION,PRIORITY,TIMETOLIVE,DATAFIELD)'
+ ' VALUES(%d, ''%s'', %d, %d,:DATAFIELD)';
SQL.Text := Format(SQLStr, [FName, FSession, WriteNotCommit, FPriority, FTTL]);
aStream.Seek(0, soFrombeginning);
Params[0].LoadFromStream(aStream, ftBlob); //Params[0] 对应 DataField 参数
ExecSQL;

if AutoCommit then
begin
//查询当前数据的记录号, 记录号为自增加字段, 所以最大记录号
//为当前数据的记录号
SQLStr := 'SELECT MAX(RECORDNO) FROM %s WHERE SESSION=%d';
SQL.Text := Format(SQLStr, [FName, FSession]);
Open;
RecordNo := Fields[0].AsInteger;

//更新事物状态标志为已提交
SQLStr := 'UPDATE %s SET TRANSACTION=''%s'' WHERE RECORDNO=%d';
SQL.Text := Format(SQLStr, [FName, Commited, RecordNo]);
ExecSQL;
end;
end;

FDatabase.Commit;
except
FDatabase.Rollback;
raise;
end;
end;
 
接受答案了.
 

Similar threads

回复
0
查看
978
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部