几个SQL问题(50分)

  • 主题发起人 主题发起人 yun.li
  • 开始时间 开始时间
Y

yun.li

Unregistered / Unconfirmed
GUEST, unregistred user!
1. 请问在SQL语句中空值怎么应用?
Add('select * from login where userid=''null'' '); ???
Add('select * from login where userid='''' '); ???
该怎么写??

2. 对于多条语句比如说要用到Select,Update,Delete等多条语句,
是否对每一条SQL语句都必须按如下方式书写,有没有比较简洁的方式:
with ADOQuery1 do
begin
Close;
with SQL do
begin
Clear;
Add('select * from login where userid=1 ');
end;
end; //with...do

 
1.用 is null判断,如:
select * from login where userid is null;

2.可以写在一个SQL文件中,语句间可用分号隔开,然后:
with ADOQuery1 do begin
SQL.LoadFromFile('yourfile.sql');
Excute;
end;
 
对于空值可以用 fields[0].isNull 来看是否为空,这是个布尔值.

另外SQL只能一句一句老老实实的用!
 
非常感谢,不过我是在用Update时遇到这个问题的?
Add('Update login set userid ''null'' '); ???
 
可以用
Update login
set userid = null

Update login
set userid = ''

 
1. 空值在Delphi中有两种:nil,Null. 其中 nil是保留字,Null是一个函数。而在SQL中
Null是保留字,Nil不存在, 故建议:
Add('select * from login where userid is null or userid=""');
注:必须用 userid is null 不能用 userid=null.
2. 如果是Select 语句则必须先Close;其他的则可以
with ADOQuery1 do
begin
SQL.Text := 'select * from login where userid=1 ';
Excute;
end; //with...do
 
谢谢各位不吝赐教,在下受益非浅。祝愿我们一起进步!!!
 
为什么会不能运行???
with ADOQuery1 do
begin
Close;
with SQL do
begin
Clear;
Add('update login set userid =''A'' where username=(select top 1 username from login ) ');
end;
end; //with...do


 
老兄 恕我直言 下次遇到问题 自己多试几次 查查资料
‘不能运行‘ 可你没说有什么信息 让别人怎么回答 我只能猜了
1。确信ADOQuery1的数据库属性设置正确与否。
2。建议修SQL语句为改为
Add('update login set userid =''A'' where username in (select top 1 username from login ) ');
....

3. 如果还不行的话可能就是数据表的问题 换一个试试吧
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部