我在查询一个数据表时出下下面的情况,大家帮我看看。(20分)

  • 主题发起人 主题发起人 crazyboys
  • 开始时间 开始时间
C

crazyboys

Unregistered / Unconfirmed
GUEST, unregistred user!
首先我打开一个表,表里有5个字段,正常显示。
我要一个button按钮里重新设置了查询条件,查表时只查其中2个字段,错误提示:其它的字段找不到。
怎么改。
var
sSelect: string;
begin
sSelect:='Select Aid,Username,Password From main_table Where Aid < 3';
Form1.ADOQuery1.SQL.Clear;
if Form1.ADOQuery1.Active=true then
begin
Form1.ADOQuery1.Active:=False;
end;
Form1.ADOQuery1.SQL.Add(sSelect);
Form1.ADOQuery1.ExecSQL;
Form1.ADOQuery1.Active:=True;
close;
end;
 
Aid为什么类型的?
 
form1.adoquery1.execsql改为form1.adoquery1.open,

form1.adoquery1.active:=true;应该去掉
因为它的作用和form1.adoquery1.open的作用好像是一样的吧
你最后的close又是什么意思呀?
 
简单一点:(Aid < 3判断有什么意义?)我做个根据姓名查密码吧!
var
sSelect: string;
begin
sSelect:='Select Password From main_table Where Username=:cy1';
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sSelect);
ADOQuery1.parameters.parambyname('cy1').value :='春意';
ADOQuery1.Prepare;
ADOQuery1.open;
if Adoquery1.FieldValues['Password']=edit1.text then
showmessage('OK');
end;
 
select 用open
insert update delete 用execsql
 
你这是写的什么意思啊!?...
 Form1.ADOQuery1.ExecSQL; //这个一般用在不需要返回数据集的地方
Form1.ADOQuery1.Active:=True;//这人的作用和open没什么区别
close;//是不是把程序给关闭?

var
sSelect: string;
begin
sSelect:='Select Aid,Username,Password From main_table Where Aid < 3';
//确保上面这一句是正确的,可以在查询分析器或者delphi的Database Desktop中进行验证

if Form1.ADOQuery1.Active=true then
begin
Form1.ADOQuery1.Active:=False;
end; //上面这一堆可以用一句写form1.adoquery1.close;
Form1.ADOQuery1.SQL.Clear; //这一句不应放在前面,应当放在数据库被关闭后
Form1.ADOQuery1.SQL.Add(sSelect);
// Form1.ADOQuery1.ExecSQL; 改成
form1.adoquery1.open;

// Form1.ADOQuery1.Active:=True;这一句就不用要了
// close;如果不想关闭程序就不要用它,最多用exit退出过程
end;
 
把ADOQuery1删除掉,从新放一个
试试是不是好了
自己想想为什么
 
问80年代:
 我重新放了个ADOQuery,真的就可以了,为什么?能给我解释一下吗?
我把每个列的名字取了中文的别名。
 
非常感谢各位的帮忙。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
442
import
I
后退
顶部