sql:select xingming,xuehao from banji where xingming like ('%王%') and xuehao like ('%21%')delphi:
with Query1 do
begin
close;
sql.Clear ;
sql.add('select xingming,xuehao from banji where xingming like :a1 :a2 xuehao like :a3 ');
parambyname('a1').asstring :='%'+trim(edit1.text)+'%';
parambyname('a2').asstring :=combobox1.text;
parambyname('a3').asstring :='%'+trim(edit2.text)+'%';
open ;
end;
变量 a1 是输入的姓名,a3 是输入的学号,a2 是输入的连接符 可以使and 或者 or执行时提示出错在:a2这里。xingming like :a1 是没有错的。
请问这个怎么写。谢谢。
with Query1 do
begin
close;
sql.Clear ;
sql.add('select xingming,xuehao from banji where xingming like :a1 :a2 xuehao like :a3 ');
parambyname('a1').asstring :='%'+trim(edit1.text)+'%';
parambyname('a2').asstring :=combobox1.text;
parambyname('a3').asstring :='%'+trim(edit2.text)+'%';
open ;
end;
变量 a1 是输入的姓名,a3 是输入的学号,a2 是输入的连接符 可以使and 或者 or执行时提示出错在:a2这里。xingming like :a1 是没有错的。
请问这个怎么写。谢谢。
解决方案 »
- 为何调不出学生的原来信息呢?请教各位!!!
- 项目文件从Delphi5升级到Delphi6时的问题
- 请教 各位大哥,怎么 给 数组 赋初始值 和 show 出 var 型变量的值啊?谢谢!
- 问一下:发布DELPHI6+AD0+SQLSERVER2000程序所需资源?
- 用socket控件如何传递结构体?
- 急!TNMFtp控件的问题?
- 急,求助,如何在程序中控制IE的脱机状态
- 回答后再加分,谢谢
- 急!!!
- 如何将Mapx35中的控件Mapx30.ocx打包进安装程序中?高分待送!!!!高手快进!
- java调用web service错误 unknown soapaction"http://命名空间/AddEmp"
- activex里访问webservices问题
select xingming,xuehao from banji where xingming like '%某某%' 'and' xuehao like '%xx%'
这样就错了。连接符不能用参数的形式。你这个可以用IF语句判断,或者拼接字符串的形式。
parambyname('a1').asstring :=quotedstr('%'+trim(edit1.text)+'%');
依次类推
with Query1 do begin
close;
sql.Text:='select xingming,xuehao from banji where xingming like '
+QuotedStr('%'+trim(edit1.text)+'% ')
+combobox1.text
+' xuehao like '
+QuotedStr(' %'+trim(edit2.text)+'%');
open ;
end;
不过也有缺点,当绑定的变量作为字段名称的时候是不能使用group by的。
例如:
combobox1中选择的是and那么sql语句中就是and连接,是or就是or连接对吧。
首先你的思路是错误的,delphi中不连接不能用参数。想实现你的功能,可以用if实现。
例如:
if combobox1.text=and then
begin
…………
end
else
if combobox1.text=or then
begin
……
end;
这样就可以实现你的功能了,虽说有点麻烦。
是
if combobox1.Items=0 then
begin
……
end
else
if…………
begin
^^^^^
end
else
if^^^^^^^^
我日,平常有提示,还真没注意过这些细节!