ADOQuery的奇怪问题!(10分)

  • 主题发起人 主题发起人 aszou
  • 开始时间 开始时间
A

aszou

Unregistered / Unconfirmed
GUEST, unregistred user!
用ADOQuery连接access2000数据库,
Close;
SQL.Clear;
SQL.ADD('SELECT * FROM USER WHERE NAME=:JYY');
parameters.ParamByName('jyy').Value :='ADFAS';
运行总显示:"应用程序定义 Parameter对象的方式不适当",不知何故,请指点。
 
parameter.params[0].AsString:='adfas';
就行了.
 
parameter.parambyname('jyy').asstring:='adfas';
我想应该行了吧!
 
同意楼上.
 
data1.q_ckdbhead.sql.add('select * from ckdiaobotou where dbdh = :dbdh');
data1.q_ckdbhead.Parameters.ParamByName('dbdh').value:=trim(edit1.Text);
 
各位,
parameter.params[0]和parameter.parambyname('jyy')
根本就没有AsString的属性,
编译都通过不了。
 
name 是关键字
 
USER 和NAME之类的都不要用,楼上说的对,我不确定user是不是关键字
 
试试这样:
SQL.ADD('SELECT * FROM `USER` WHERE `NAME`=:JYY');
parameters.ParamByName('jyy').DataType := ftString;
parameters.ParamByName('jyy').Value :='ADFAS';
 
if query1.Params[0].DataType=ftString then
if query1.Params[0].Value:='11';
else if if query1.Params[0].DataType=ftInteger then
if query1.Params[0].Value:=11;
 
ADOQuery.Parameters.Items[0].Value:='adfas';
肯定行,我的程序就是这橛用的.给分吧.
 
Close;
SQL.Clear;
SQL.ADD('SELECT * FROM USER WHERE NAME='':JYY''');
parameters.ParamByName('jyy').Value :='ADFAS'; //SELECT * FROM USER WHERE NAME='ADFAS'

 
Sql.Add('select * from channeldic where channelname=:aaa');
adoquery1.Parameters.Items[0].Value:='''新闻''';
open;
showmessage(inttostr(adoquery1.recordcount));
参数就是这样带的,但是'''新闻'''好像不是这样的,我一般都这么用
strorder:='select * from table1 where field1='+'''新闻''';
aodquery1.sql.add(strorder);
open;
付值却是是上面些的那样
 
>>SQL.ADD('SELECT * FROM USER WHERE NAME=:JYY');
user是关键字,你的sql根本不能执行成功!
 
最后不要用name user 这么敏感的字段
 
這樣看看,不用參數:
Close;
SQL.Clear;
SQL.ADD('SELECT * FROM USER WHERE NAME=''ADFAS''');
 
其实字段名和关键字没什么关系,Items[0]可以,ParamByName不可以,不知为何。
 
后退
顶部