CLIENTDATASET1.CLOSE;
CommandText :='begin transaction'#13#10'UPDATE 表1 SET 字段1=1 '#13#10' UPDATE 表2 SET 字段2=1 '#13#10'if @@error=0 '#13#10'commit transaction'#13#10'else'#13#10'rollback transaction'#13#10;
CLIENTDATASET1.Execute;
CommandText :='begin transaction'#13#10'UPDATE 表1 SET 字段1=1 '#13#10' UPDATE 表2 SET 字段2=1 '#13#10'if @@error=0 '#13#10'commit transaction'#13#10'else'#13#10'rollback transaction'#13#10;
CLIENTDATASET1.Execute;
======
换行符
不用参数行吗,就直接用SQL语句。
===========================
可以,把你的数据转换成长长的如0x2343..十六进制串吧。
insert into [tablename] ([fieldlist...,]image/*图片字段*/) values([valuelist...,],0x424D36E0...)
CommandText :='begin transaction'#13#10'UPDATE 表1 SET 字段1=1 '#13#10' UPDATE 表2 SET 字段2=1 '#13#10'if @@error=0 '#13#10'commit transaction'#13#10'else'#13#10'rollback transaction'#13#10;
CLIENTDATASET1.Execute;
支持这位大侠
function MemoryToHexString(const MemoryStream:TMemoryStream):String;
const
HexString:array[0..15] of Char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
var
HexStream:TMemoryStream;
P:PByte;
I: int64;
begin
Result := '0x00';
if MemoryStream=Nil then
Exit;
HexStream:=TMemoryStream.Create;
try
HexStream.Write('0x',2);
if MemoryStream.Size=0 then
Exit;
MemoryStream.Position :=0;
I := 0;
p := MemoryStream.Memory;
repeat
HexStream.Write(HexString[p^ div 16],1);
HexStream.Write(HexString[P^ mod 16],1);
Inc(P);
I := I+1;
until I>=MemoryStream.Size;
SetString(Result,PChar(HexStream.Memory),HexStream.Size);//未测试
finally
HexStream.Free;
end;
end;function FileToHexString(const FileName:String):String;var
memStream:TMemoryStream;begin
Result := '0x00';
memStream:=TMemoryStream.Create;
try
memStream.LoadFromFile(FileName);
if memStream.Size<=0 then
Exit;
result := MemoryToHexString(memStream);
finally
memStream.Free;
end;
end;