如何将参数传递给ADOQuery对象?

编程入门 行业动态 更新时间:2024-10-15 14:17:07
本文介绍了如何将参数传递给ADOQuery对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我在Delphi 7和Oracle中使用ADOQuery。我将参数传递到ADOQuery时收到错误。我使用了以下行。请帮助我找出错误。

ADOQuery.Sql.text:='select * from temp_table'+ '其中column1在(select column from table2 where id =:id)和id =:id'; ADOQuery.Parameters.ParamByValue('id')。value ='abc'; ADOQuery.open;

当我打开查询我会收到以下错误:

参数对象定义不正确。提供不一致或不完整的信息。

解决方案

我们有同样的问题,我们结束了类TParameters如下:

声明:

TMyParameter =类(TParameter) private 函数GetAsValue:variant; 过程SetAsValue(const值:variant); public 属性值:变体读取GetAsValue写入SetAsValue; 结束

实施:

code> procedure TMyParameter.SetAsValue(const Value:variant); var iPar:Integer; 开始为iPar:= 0到Collection.Count - 1 do if(Name = TParameter(Collection.Items [iPar])。Name)then TParameter(Collection.Items [iPar])。 结束 函数TMyParameter.GetAsValue:variant; begin 结果:= inherited Value; 结束

如何使用:

TMyParameter(ADOQuery.Parameters.ParamByName('id'))。AsValue:='abc';

我希望它有帮助。

I am using ADOQuery in Delphi 7 and Oracle. I am getting error while passing parameters to ADOQuery. I have used following line. Please help me to identify error.

ADOQuery.Sql.text:= 'select * from temp_table '+ 'where column1 in (select column from table2 where id=:id) and id=:id'; ADOQuery.Parameters.ParamByValue('id').value= 'abc'; ADOQuery.open;

when I open the query i will get following error:

Parameter object is improperly defined. Inconsistent or incomplete information is provided.

解决方案

We have the same problem, we ended "masking" the class TParameters like this:

Declaration:

TMyParameter = class(TParameter) private function GetAsValue: variant; Procedure SetAsValue(const Value: variant); public property Value: variant read GetAsValue write SetAsValue; end;

Implementation:

procedure TMyParameter.SetAsValue(const Value: variant); var iPar: Integer; begin for iPar:= 0 to Collection.Count - 1 do if (Name = TParameter(Collection.Items[iPar]).Name) then TParameter(Collection.Items[iPar]).Value:= Value; end; function TMyParameter.GetAsValue: variant; begin Result:= inherited Value; end;

And how to use:

TMyParameter(ADOQuery.Parameters.ParamByName('id')).AsValue:= 'abc';

I hope it helps.

更多推荐

如何将参数传递给ADOQuery对象?

本文发布于:2023-11-25 20:46:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1631286.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何将   对象   参数   ADOQuery

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!