一个简单的问题~~求救~(0分)

  • 主题发起人 主题发起人 dabing
  • 开始时间 开始时间
D

dabing

Unregistered / Unconfirmed
GUEST, unregistred user!
sb:='';
for qs:= 0 to form4.ListBox2.Items.count-1 do
begin
sb:= sb+form4.ListBox2.Items[qs];
if qs<form4.ListBox2.Items.count-1 then sb:=sb+',' ;
end;

q_sql:='select equipment.name from equipment where equipment.name in ['+sb+'] ';

这样写运行时有错误:general sql error 缺少表达方式!
是sql 与举错了吗?怎么改的?
 
字符串的问题吧,改下面这句:

sb:= sb+form4.ListBox2.Items[qs];

为:

sb:= sb + '''' + form4.ListBox2.Items[qs] + '''';
 
同意楼上同志的意见!不过我经常写成
sb:= sb + char(#39) + form4.listbox2.items[qs]+ char(#39);
其实都一样!
 
还是不对呀~~一样的错误呀~我的sql语句中的sb那样写对吗??
 
你用的什么数据库?
 
你等一下,我Oracle服务器还没开.
另外,是谁叫你找我的?
 
LeeChange你好:
这个和oracle有很的关系吗??是不是我的sql中的sb的写法有错误?
 
o的语法我也不熟,所以要试一下,
你还没回答我的问题呢?
 
是qq上的一个人~他说让我到大富翁上来找你问问的,他的明子我也不知道
 
将[]换成()就行了.
 
我试试看的~~
 
q_sql:='select equipment.name from equipment where equipment.name in ('+sb+') ';

不是变成变量吗??
 
sb:='';
for qs:= 0 to form4.ListBox2.Items.count-1 do
begin
sb:= sb+''''+form4.ListBox2.Items[qs]+'''';
if qs<form4.ListBox2.Items.count-1 then sb:=sb+',' ;
end;

q_sql:='select equipment.name from equipment where equipment.name in ('+sb+') ';
 
哦,不行的~~提示是不存在sb这个参数
 
用的什么连接?BDE or ADO?
拿你的完整代码来.
 
我通过bde连接的!!其他都是对的,如果不用序列直接用一个变量的话,可以执行的
就是这这个sb的原因的
 
非常感谢LeeChange,的指点~~这成功了~~谢谢了LeeChange~~
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
788
import
I
I
回复
0
查看
529
import
I
I
回复
0
查看
700
import
I
后退
顶部