如果换成传参 strSQL := 'select * from a where f1=;p1'却可以执行,WHY???(98+delphi 6 +ms sqlserver)
我还没有遇见这样的问题呀。老兄你 应该自己先看看你的SQL语句是否有错呀! 首先,Value1必须是字符类型的数据; 还有,就是有关单引号问题,一定要注意:单引号内的两个单引号代表一个单引号。 所以你的SQL语句是: strSQL:= 'select * from a where f1='''+Value1+'''';看出了问题所在了吗?Have a good day.
1:保证Adoconnection 链接正确。 2:Sql.Text := 'select * from a where f1 =''%s'''; Sql.Text := Format(Sql.Text ,[value]);
strSQL := 'select * from a where f1=;p1'却可以执行,WHY???(98+delphi 6 +ms sqlserver)
首先,Value1必须是字符类型的数据;
还有,就是有关单引号问题,一定要注意:单引号内的两个单引号代表一个单引号。
所以你的SQL语句是:
strSQL:= 'select * from a where f1='''+Value1+'''';看出了问题所在了吗?Have a good day.
2:Sql.Text := 'select * from a where f1 =''%s''';
Sql.Text := Format(Sql.Text ,[value]);
用bde连数据库时,所拼的sql中可以出现双引号,亦可出现单引号
而在ado连数据库时,所拼的sql只能用单引号!
引擎不同真是害死人呀!!!
我的只要有日期型就出错,这是不是bug
2、其余的就可以放到Execute里面了,我做过的没问题。
3、要注意多线程比较麻烦,而且同步问题要考虑,最好还是按照我开始所说的异步提交比较好一点
2、其余的就可以放到Execute里面了,我做过的没问题。
3、要注意多线程比较麻烦,而且同步问题要考虑,最好还是按照我开始所说的异步提交比较好一点