你的库中的字段类型是什么?你用的数据库是什么?用如sql server like就加上%如查张三,张四,可以用like '张%' 还有你的name是什么是变量吧还有如果你的name为字符串变量如name为张你想查t_name中包括张的 sql_str:='... where t_name like'+#39+name+'%'+#39其余的你可以仿照写
你这样试试: with ... do begin Close; SQL.Clear; SQL.Add(SQL_Str); SQL.SaveFile('SQLText.txt'); Open; end;然后你打开SQLText.Txt文件在查询分析器里试一试,对不对,错不错你会知道,那儿有错,那儿没有错你也会知道; ----------------------------------- www.nxit.net/bbs 欢迎您
在sqlplus中测试一下不就好了吗??
应该是 like ''%' + name + '%''吧,最好你的语句分开写
应该是 like ''%' + name + '%''吧,最好你的语句分开写 哇噻!!! 一个这答案要回答十八次呀,佩服。
其他类似,
试一下吧。
在delphi里面好像引号不能直接这样写吧??
我都是这样写的'.. like '+''''+变量+''''...
应为
t_name like :name
name为 '%'+name+'%'
如果是查不到记录的话,那就是LIKE的问题。
你还可以用个label.其中使它的值为 ' 就可以了,最后可以在字符串中直接调用(亦可以用一个字符串变量调用),把label的属性设为不可见。
with ... do
begin
Close;
SQL.Clear;
SQL.Add(SQL_Str);
SQL.SaveFile('SQLText.txt');
Open;
end;然后你打开SQLText.Txt文件在查询分析器里试一试,对不对,错不错你会知道,那儿有错,那儿没有错你也会知道;
-----------------------------------
www.nxit.net/bbs 欢迎您
哇噻!!! 一个这答案要回答十八次呀,佩服。
...+QuotedStr(name)+...
即可。免得你写的引号不对。
是不是应为string类型的长度不够啊
SQL.Add(...);
SQL.Add(...);
SQL.Add(...);
.
.
.
select field1,field2,field3 from ....没错的话
那变成
select field1,field1,field2,field3 from ...//注意用两个field1,这时如果存在错误你才考虑string类型的长度不够的问题吧!
1.善用SQL Explorer:我们可以先将写好的语句在SQL Explorer的Enter Sql里面执行一便,如果能得到正确的查询结果则注意以下变量类型和Delphi中第一个单引号表示转义字符则很容易写正确
2.即使出错了,也可以利用Delphi的Tools Tips技术,在调试的时候将鼠标放到存储Sql语句的变量旁边就能看到此时经过编译器处理过的字符串的值,此时再对照在Sql Explorer里面的正确语句稍微修改就行了
1。select语句太长,分几句写
2.数据表中的字段是否有你要授索的字段