代码如下:
begin
 with  DataModule1.ADOQuery1 do
begin
Close;
sql.Clear;
SQL.Text:='insert into 新海电厂当前值 ([电厂编号],[电厂名称],[地址],[读取时间],[当前值]) values(:p1,:p2,:p3,:p4,:p5)';
Parameters.ParamByName('p1').Value:=1;
Parameters.ParamByName('p2').Value:='新海电厂';
Parameters.ParamByName('p3').Value:= copy(getaddresslist(),4*address-3,4);
Parameters.ParamByName('p4').Value:=formatdatetime('c',now);
Parameters.ParamByName('p5').Value:=inttostr(strtoint('$' +copy(copy(ckForm.MemRec.Text,88,5),1,2)) + strtoint('$' +copy(copy(ckForm.MemRec.Text,88,5),4,2))*256);
ExecSQL;
end;getaddresslist()返回地址列表 address整形变量。[地址]是varchar型(8)function TxhForm.getaddresslist():string;//读取数据库中的地址列表
var addresslist:string; i:integer;
begin
datamodule1.ADOQuery1.close;
datamodule1.ADOQuery1.SQL.Clear;
datamodule1.ADOQuery1.SQL.text:='select 地址列表  from  电厂资料 where 电厂编号=2';
datamodule1.ADOQuery1.open;
addresslist:= datamodule1.ADOQuery1.FieldByName('地址列表').AsString;
if  addresslist='' then
addresslist:='01010201030104010501060107010801090110011101120113011401150116011701180119012001210122012301240125012601270128012901300131013201';
result:='';
for i:=1 to 32 do
begin
result:=result+inttohex(strtoint(copy(addresslist,4*i-3,2)),2)+ copy(addresslist,4*i-1,2);
end;
end;哪位大侠帮帮忙!