s:='select distinct cid as a1 from compartmentprepay where ((cpstate=0) or (cpstate=-1))‘
with frmdm.queryPublic do
begin
close;
sql.clear;
sql.Add(s);
ExecSQL;
end;
if frmdm.queryPublic.FieldValues['a1'] then
begin
dosth
end;当我执行这句话时,系统提示‘queryPublic:‘a1’not find’,请问这是什么原因啊?
with frmdm.queryPublic do
begin
close;
sql.clear;
sql.Add(s);
ExecSQL;
end;
if frmdm.queryPublic.FieldValues['a1'] then
begin
dosth
end;当我执行这句话时,系统提示‘queryPublic:‘a1’not find’,请问这是什么原因啊?
解决方案 »
- 用installshield2010做的安装包,如何在安装完后,自动打开网站?
- 第二次用delphi写软件,累了半年,顶者有分
- 关于tclienthandlethread的问题,线程的问题,送分50
- 求 dbgrid转excel的通过了的代码!!!我用的delphi7
- 如何注册mscomm控件
- 用delphi如何实现网络实时 状况监控?
- 如何解决DevExpress QuantumGrid4.11的中文输入问题?
- 怎样得到一太 计算机 的唯一标识
- 问题一波接一波,消息机制下怎样才能让窗体只创建一次,销毁一次。
- 谁用cxgrid做过批量操作的代码?
- ····散分!·····
- 请教一个问题,我用Image覆盖Form时,Image四个角为椭圆形,可是运行程序后Form的四个角有明显的Form 背景,如何去掉??
begin
close;
sql.clear;
sql.Add(s);
Open;ExecSQL:是不需要返回数据集的命令,主要执行的是‘UPDATE ,DALETE’的语句
// ExecSQL;
open;
try
Open;
except
ExecSQL;
end;
if frmdm.queryPublic.FieldValues['a1'] then
begin
dosth
end;
还是有问题,系统提示:‘Invaild variant type conversion’,请问这什么原因,我很菜的不理解哦。
回复人: liuqifeiyu(liuqi) ( ) 信誉:100
回复人: hhzqf1980(hh) ( ) 信誉:77
你的cid 是什么类型,不支持转化为boolean
可以直接写(举个例子)
if frmdm.queryPublic.FieldByName['a1'].asinteger=1 then
begin
dosth;
end;
if frmdm.queryPublic.RecordCount>0 then
begin
dosth
end;
show出的‘frmdm.queryPublic.RecordCount’等于零,可是它仍然执行if语句,这个是逻辑错误吗?
begin
dosth;
end;
另外
关于第二个问题建议你使用断点调试,不要用对话框显示!
查询有二种方式的。一种是有数据集返回的,如“select * from XX“会返回一批记录的另一种方式直接运行。没有返回结果的。一般是用更新或删除的。
像你这样子用的话,是后者来的。它是不会返回结果,有时还会出错
应该用OPEN就对了。
好象不同的数据库as后面的别名使用还不一样。
if frmdm.queryPublic.FieldValues['a1'] then
begin
dosth
end;你这句要表达什么意思呢?
这个是一个variant类型的值,而if要求是一个boolean类型的值,你可以用frmdm.queryPublic.FieldValues['a1'] =?作出判断(?要与那个字段值的类型一样)
我建议你先去SQL 查询分析器中测试过在来问!