一个sql语句,如下:当变量为string时值正确,当变量为integer时,就取不到值了,为什么?(20分)

  • 主题发起人 主题发起人 crazyboys
  • 开始时间 开始时间
C

crazyboys

Unregistered / Unconfirmed
GUEST, unregistred user!
sInsert:='Insert Into main_table(ClientNo,Route,RelayType,RDate,ALines,IncomCCS,OutcomCCS,IncomPC,OutcomPC,Overflow,RelayBusy,Distance)';
sInsert:=sInsert+'Values(:ClientNo,:Route,:RelayType,:RDateTime,:ALines,:IncomCCS,:OutcomCCS,:IncomPC,:OutcomPC,:Overflow,:RelayBusy,:Distance';
sInsert:=sInsert+');';

try
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(sInsert);
with parameters do
begin
parambyname('ClientNo').Value:=ClientNo;
parambyname('Route').Value:=Route;
parambyname('RelayType').Value:=RelayType;
parambyname('RDateTime').Value:=RDateTime;
parambyname('ALines').Value:=ALines;
parambyname('IncomCCS').Value:=IncomCCS;
parambyname('OutcomCCS').Value:=OutcomCCS;
parambyname('IncomPC').Value:=IncomPC;
parambyname('OutcomPC').Value:=OutcomPC;
parambyname('Overflow').Value:=Overflow;
parambyname('RelayBusy').Value:=RelayBusy;
parambyname('Distance').Value:=Distance;
end;
ExecSQL;
 
你单步跟踪吧
 
adoquery中参数的值需要和对应字段的类型一致的,而不象bde 的query中
有行如 pameters.asinteger的方式
 
那000102这样的字符串怎么把它变成102这样的数字,我用StrToInt('000102')不能得到正确的结果。
 
To CrazyBoyS

StrToInt('000102')能得到正确的结果

Example:

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i:=StrToInt('000102');
i:=i+1;
showmessage(inttostr(i));
//结果显示103
end;


 
多人接受答案了。
 
后退
顶部