当前位置:主页>仓库管理软件> 列表

急急急!请高手帮着看看程序有什么问题? 找速达财务软件免费版

销售管理软件版1楼: 我刚刚接触delphi,刚才遇到了个问题,请大家帮忙解决一下,谢谢!
代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
idvalue:integer;
autoid: integer;
positionid: integer;
positiona: integer;
positionb: integer;
state1: integer;
explain1:integer;
explain: string;

begin
IBTransaction1.Active:=true;
if not IBTransaction1.InTransaction then
IBTransaction1.StartTransaction;
for i:=0 to 5 do
begin
idvalue:=random(100);
autoid:=idvalue;
positionid:=idvalue;
positiona:=idvalue;
positionb:=idvalue;
state1:=idvalue;
explain1:=idvalue;
explain:=intTostr(explain1);
IBSQL1.Close;
IBSQL1.SQL.Add(''insert into FIRSTAID (autoid,positionid,positiona,positionb,state,explain) values(''+intTostr(autoid)+'',''+intTostr(positionid)+'',''+intTostr(positiona)+'',''+intTostr(positionb)+'',''+intTostr(state1)+'',''+ explain+'')'');

IBSQL1.ExecQuery;
end;
try
if IBTransaction1.InTransaction then
IBTransaction1.Commit;
Except
IBTransaction1.Rollback;
end;
end;
出现sql的问题!
我觉得语句并没有问题啊?是事务的原因么?因为我在使用事务前一切正常!
请大家多帮忙。很急!

2楼: 插入的值如果是数值的话,直接变成字符型的,
插入的值如果是字符型的话,要加上QuotedStr(字符型的值) 如速达财务软件免费版

3楼: 跟踪一下看是在什么地方出错了啊,应该不是事务的问题。

4楼: 是Sql语句错误;
应该是:''insert into FIRSTAID (autoid,positionid,positiona,positionb,state,explain) values(''''''+intTostr(autoid)+'''''',''''''+intTostr(positionid)+'''''',''''''+intTostr(positiona)+'''''',''''''+intTostr(positionb)+'''''',''''''+intTostr(state1)+'''''',''''''+ explain+'''''')''

5楼: 教你一招,很好用,格式化你的代码。
var
strSql: WideString;
begin
strSql :=''INSERT INTO FIRSTAID ''
+''(autoid,positionid,positiona,positionb,state,explain)''
+''VALUES (''''''''
+intTostr(autoid)+'''''',''''''
+intTostr(positionid)+'''''',''''''
+intTostr(positiona)+'''''',''''''
+intTostr(positionb)+'''''',''''''
+intTostr(state)+'''''',''''''
+explain+'''''')'';
看起来不目了然,很清楚,我就是这样干的。

6楼: 多人接受答案了。