回 帖 发 新 帖 刷新版面

主题:[原创]求助:奇怪错误??大家进来看看。

ADOQuery3.SQL.Clear;
ADOQuery3.Close;
v:=StrToDate(Edit18.Text);

 ADOQuery3.SQL.Add('select 仪器编号,分类号,领用单位号,仪器名称,型号,购置日期,领用单位,规格,厂家,出厂号,出厂日期,单价,经费科目,国别,使用方向,现状,领用人  from infor where 购置日期=v');
ADOQuery3.open;

说明:此时查询Edit18.Text的内容是:时间形式的,如:2006/12/12/,数据库中的购置日期和出厂日期的类型是:datetime,v定义为:Variant类型。

编译时没有错误,可是查询是却出现:
Project  Project1.exe  raised  exception  class  EOLeException  with  message   '列名'v' 无效。'. Process  stopped. Use  Step  or  Run  to continue.

这里v不可能是表中的某一列啊,为什么会出现这样的错误提示呢?
请高手们帮忙,先谢谢了啊!!

回复列表 (共3个回复)

沙发

因为v是个变量,应该改为 ADOQuery3.SQL.Add('select 仪器编号,分类号,领用单位号,仪器名称,型号,购置日期,领用单位,规格,厂家,出厂号,出厂日期,单价,经费科目,国别,使用方向,现状,领用人  from infor where 购置日期'+''''+v+''''

板凳

你可能是参数v传送方法的错误,我看你用上面的方法是不能传递v的,在sql server那边sql里面的v 并不是Edit18.Text的内容,而是认为它是一个列名:列名'v' 无效。
俺也是新手。

3 楼

我同意xinnix的看法,你的sql语句里的v不是StrToDate(Edit18.Text)值,而是表示'StrToDate(Edit18.Text)'的字符串

我来回复

您尚未登录,请登录后再回复。点此登录或注册