我想利用delphi向数据库内插入数据,代码大致如下:
[align=center][align=left]for i:=0 to adj_number-1 do
begin
str1:=adjpath[i];
SQLstr:='insert into flow(roadsegment,vehicletype,vehicleclass,vehicleflow) select '+''''+str1+''''+',vehicletype,vehicleclass,count(*) as result from exit2010110520101 where chinesepath like '+QuotedStr('%'+str1+'%')+' group by vehicletype,vehicleclass';
ADOquery1.Close;
ADOquery1.SQL.clear;
ADOquery1.SQL.Add(SQLstr);
ADOquery1.ExecSQL;
end;[/align][/align]
其中,adjpath[i]中存放的是‘韦曲→曲江’、‘空工→白鹿塬’、…等一些字符串。
请问,为什么adjpath[i]中的字符串不能插入flow表中呢?
[align=center][align=left]for i:=0 to adj_number-1 do
begin
str1:=adjpath[i];
SQLstr:='insert into flow(roadsegment,vehicletype,vehicleclass,vehicleflow) select '+''''+str1+''''+',vehicletype,vehicleclass,count(*) as result from exit2010110520101 where chinesepath like '+QuotedStr('%'+str1+'%')+' group by vehicletype,vehicleclass';
ADOquery1.Close;
ADOquery1.SQL.clear;
ADOquery1.SQL.Add(SQLstr);
ADOquery1.ExecSQL;
end;[/align][/align]
其中,adjpath[i]中存放的是‘韦曲→曲江’、‘空工→白鹿塬’、…等一些字符串。
请问,为什么adjpath[i]中的字符串不能插入flow表中呢?
ADOquery1.Close;
ADOquery1.SQL.clear;
ADOquery1.SQL.Add(SQLstr);
ADOquery1.ExecSQL;
end;
楼主可以ADOquery1.SQL.Add(SQLstr);这句设置断点,选中sqlstr,然后ctrl+f7取出sql语句到数据库执行下,看报什么错误
insert into flow(roadsegment,vehicletype,vehicleclass,vehicleflow)
select ‘甘泉-南泥湾’,vehicletype,vehicleclass,count(*) as result from exit2010110520101 where chinesepath like '%甘泉-南泥湾%' group by vehicletype,vehicleclass
在delphi下就怎么试都不成功
至于调试,加个断点f8
QuotedStr('%'+str1+'%')这个是用来查找chinesepath中含有str1的那些记录
例如‘黄陵-阿党-洛川-富县-甘泉-南泥湾-延安南’中就含有‘甘泉-南泥湾’
:='insert into flow(roadsegment,vehicletype,vehicleclass,vehicleflow) select '+''''+str1+''''+',vehicletype,vehicleclass,count(*) as result from exit2010110520101 where chinesepath like ''%'+str1+'%'' group by vehicletype,vehicleclass';