mysql查询找不到字段,查询数据库总出现提示字段不存在问题(数据库已连接)

icon_topic_latest.png

由 wangyuhu2002 » 星期日, 2005年11月6日 09:08

本人小菜,最近写一程序,可做到登陆模块时,出现一问题,搞了半天都不知道原因,希望大家帮我看看,login块的源代码如下:

unit login;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, ExtCtrls;

type

Tfrm_login = class(TForm)

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Edit2: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Bevel1: TBevel;

procedure BitBtn2Click(Sender: TObject);

procedure FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure BitBtn1Click(Sender: TObject);

private

ifclose:integer;

{ Private declarations }

public

{ Public declarations }

end;

var

frm_login: Tfrm_login;

implementation

uses qy;

{$R *.dfm}

procedure Tfrm_login.BitBtn2Click(Sender: TObject);

begin

ifclose:=1;

application.Terminate;

end;

procedure Tfrm_login.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

case Key of

VK_RETURN: Perform(WM_NEXTDLGCTL, 0, 0);

VK_UP: Perform(WM_NEXTDLGCTL, 1, 0);

VK_DOWN: Perform(WM_NEXTDLGCTL, 0, 0);

end;

end;

procedure Tfrm_login.FormClose(Sender: TObject; var Action: TCloseAction);

begin

if ifclose = 0 then action := caNone;

end;

procedure Tfrm_login.BitBtn1Click(Sender: TObject);

var

pass: string;

begin

ifclose := 1;

if delphi.com/topic_517063_7643.htm">Trim (edit1.Text)='' then

begin

showmessage('未输入用户,请重新输入');

edit1.SetFocus;

exit;

end;

begin

with dm_qy.Query1 do

begin

close;

sql.clear;

sql.add('select * from userinfo where id=''' + edit1.Text + '''');

if pos('''', edit1.Text) > 0 then

begin

close;

showmessage('用户有误,请重新输入!');

edit1.SetFocus;

exit;

end;

open;

if eof then

begin

close;

showmessage('用户有误,请重新输入!');

edit1.SetFocus;

exit;

end

else

begin

pass := fieldByName('pass').asstring;

if pass <> edit2.Text then

begin

showmessage('口令有误,请重新输入!');

edit2.SetFocus;

exit;

end;

end;

pass := fieldByName('flag').asstring;

if pass <> '是' then

begin

showmessage('该学生已被禁用!');

edit1.SetFocus;

exit;

end;

ModalResult := mrOK;

end;

end;

end;

end.

使用sql server数据库,通过odbc连接,程序运行后,在用户名处没有问题,你填入一个错误的它也能报错,只有填对了才能输密码,充分说明数据库已连上,搞不懂的就是输入密码后总是提示数据库field pass找不到,可数据库里有pass field呀,是不是不能用fieldbyname?我试了直接用sql.add方法给query1加入查找pass可以,可为什么用fieldbyname就不行呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值