在sql中查询数据时,一般都会带有where子句,现在我想知道的是如何在where子句中使用星中的构件值来做为查询参数?
比如某一窗口放有ADO查询构件连接的职工记录数据库,还有一行编辑框,我如何编写sql命令实现这样当我在编辑框中输入职工姓名后,能查找出来对应的数据来。如果不用参数,直接使用构件值不知道行不行。我现在是这么写的
select * from 职工表 where 病人姓名=‘窗口1.行编辑框.属性:(当前编辑内容)’,却总是不成功.为何?我把单引号换成双引号也不行的.在星中该如何应用sql呢
你写的当然不行了.
1、使用ADO查询构件,在参数设置中设置参数甲为brxm,其中ADO查询构件的SQL查询语句为select * from 职工表 where 病人姓名=:brxm
2、得到窗口1.行编辑框.属性:(当前编辑内容)设置传值给ADO查询构件的参数值,
3、执行ADO查询构件的查询方法。
这种设计,你必须输入全名才能查到,如果使用模糊查询,具体设计参看论坛相关帖子。
[此贴子已经被作者于2005-8-22 21:06:57编辑过]
那为什么实例中的例子中又可以直接引用属性值呢?请看数据库实例中的"SQL语言动态重置"这个例子,它里面引用的参数是直接来自于行编辑框的,这又是为什么呢
因为一个在事件设置中设置,一个在属性中设置!如果你在“SQL命令”属性中,直接输写SQL命令,那么按照水手说的去做;如果你是在事件中设置,请参看“SQL语言动态重置”实例的“查询”按钮的鼠标单击事件。
那是不是在事件中设置SQL命令时可以直接使用构件属性值?另外,如何利用SQL语句给一字段赋值呢?比如有一药品表,其中的金额是由数量*单价得来的,如果用SQL来写该如何写呢?
使用ADO命令构件,SQL命令:UPDATE 药品表 SET 金额=数量*单价