实在没办法,大家帮帮忙 sql 语句 -_-(50分)

  • 主题发起人 主题发起人 liangguowei
  • 开始时间 开始时间
L

liangguowei

Unregistered / Unconfirmed
GUEST, unregistred user!
在Ado中,我想在adoquery里使用:
var
i:integer;
begin
ID:=1;
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('select * from info where id=ID');
adoquery.open;

可是这个ID我该如何写呢?
如果是字符串型的话还可以用:'''+ID+'''
可是这是个integer的,怎办???
end;
 
你可这么写:
adoquery.sql.add('select * from info where id='''+inttostr(id)+'''');
 
adoquery.sql.add('select * from info where id='+floattostr(ID));
 
AdoQuery.Sql.Add('Select * From Info Where id='+IntToStr(ID));
 
用动态参数就行了
 
谢谢大家:)
对了,用动态参数是那个?
 
parambyname();
 

var
s:string;
begin
s:='lgw';
还有能说说:
''+s+''
'''+s+'''
''''+s+''''
'''''+s+'''''
中的单引号的意思吗,它们的顺序是怎样的?

end;
 
to烂泥:
adoquery好象没这个属性?
 
adoquery.sql.add('select * from info where id=:ID');
adoquery.Parameters[0].Value:=ID;
 
第一个是S两端加空字符,第二个是错误的,第三个是在S两端加一个单引号,第四个又是
错误的。
 
我认为可以这样用的:

adoquery.sql.add('select * from info where id='+chr(39)+inttostr(id)+chr(39));

再不行就用parambyname()参数引用,方法为:ParamByName('ID').asstring:=ID_A;
其中ID_A为引用字段名。在你的adoquery的sql语句中应该存在的。
 
这样不兼容 :-(。
还是用 Parameters吧。
 
如果id在数据库中是字符串你可这么写:
adoquery.sql.add('select * from info where id='''+inttostr(id)+''')
如果id在数据库中是integer你可这么写:
adoquery.sql.add('select * from info where id='+inttostr(id))
 
to hjking:
var
id:integer;
begin
ID:=1;
adoquery1.close;
adoquery1.SQL.clear;
adoquery1.sql.add('select * from t_info where id=:ID');
adoquery1.Parameters[0].Value:=ID;
adoquery1.Open;
end;
出错:list index of bounds[0]

to 追命:
你能讲详细点吗:)
这些单引号是如何匹配的?

 
adoquery1.sql.add('select * from t_info where id='+IntToStr(ID));
 
谢谢大家的帮助,还有那个Parameters怎么用的,怎么老出错:list index of bounds[0]
 
我的回答是错误的,整数应该是
adoquery.sql.add('select * from info where id='+inttostr(id)+'''');

var
s:string;
begin s:='lgw';
还有能说说: ''+s+'' =lgw 注意:''为空字符,''''为'
'''+s+''' ='+s+'
''''+s+'''' ='lgw'
'''''+s+'''''= ''lgw''
 

to hqiang:
adoquery.sql.add('select * from info where id='''+inttostr(id)+'''');
是对的。
adoquery.sql.add('select * from info where id='+inttostr(id)+'''');
好象出错.

不过我想不明白'''+string+'''='+string+'
而 '''+inttostr(id)+'''应该=多少?

还有我上机发现:
var
s:string;
begin s:='lgw';还有能说说:
''+s+'' =lgw
'''+s+''' ='+s+'
''''+s+'''' ='lgw'
'''''+s+'''''= = ''lgw'' 应为''+s+''  

 
1.parameters.paramvalue['ID'].Value:=ID
2.s:='lgw'
引号中间的字符中如果出现引号,则用两个表示一个
''+s+'' =lgw 引号中间为空字符串
'''+s+''' ='+s+' 可认为第一个引号和最后一个引号匹配,
中间的连续两个引号表示一个,“+”为字符串中的一个字符,
“s”也是字符串的一部分
''''+s+'''' ='lgw' 第一个引号跟第四个引号匹配,加号为表达式的运算符
'''''+s+'''''= = ''lgw'' 应为''+s+'' 同理,此结果难道不是''+s+''吗?

 

Similar threads

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