function Tmainform.CheckUser(AUsername, AUserpwd: string): integer;
var
query1 :Tquery;
begin
query1 := Tquery.Create(nil);
query1.DatabaseName := 'test';
try
begin
query1.SQL.Clear;
query1.SQL.Add('select S_Name ,S_Pwd from user');
query1.SQL.add('where S_Name =:Username');
query1.SQL.add('and where S_Pwd =:Userpwd');
query1.ParamByName('S_Name').AsString := AUserName;//这里出现的错误
query1.ParamByName('S_Pwd').AsString := AUserPwd;//这里也是
query1.Open;
if query1.RecordCount = 0 then
begin
MessageDlg('用户名错误',mtError,[mbok],0);
Result := -1;
Exit; //检查用户名;
end else begin
if query1.FieldByName('S_Pwd').AsString <> AUserPwd then
begin
MessageDlg('用户名或口令错误',mtError,[mbok],0);
Result := -1;
Exit;
end
else Result := Query1.FieldByName('class').AsInteger;
exit;
end;
Close;
Free;
end;
except
Result := -1;
MessageDlg('连接数据库出错',mtError,[mbok],0);
end;
end;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ raised exception class EDdatabaseError with message 'parameter'S_Name'
not found'.
我的user.db表里有S_Name,S_Pwd,S_Class 等字段
var
query1 :Tquery;
begin
query1 := Tquery.Create(nil);
query1.DatabaseName := 'test';
try
begin
query1.SQL.Clear;
query1.SQL.Add('select S_Name ,S_Pwd from user');
query1.SQL.add('where S_Name =:Username');
query1.SQL.add('and where S_Pwd =:Userpwd');
query1.ParamByName('S_Name').AsString := AUserName;//这里出现的错误
query1.ParamByName('S_Pwd').AsString := AUserPwd;//这里也是
query1.Open;
if query1.RecordCount = 0 then
begin
MessageDlg('用户名错误',mtError,[mbok],0);
Result := -1;
Exit; //检查用户名;
end else begin
if query1.FieldByName('S_Pwd').AsString <> AUserPwd then
begin
MessageDlg('用户名或口令错误',mtError,[mbok],0);
Result := -1;
Exit;
end
else Result := Query1.FieldByName('class').AsInteger;
exit;
end;
Close;
Free;
end;
except
Result := -1;
MessageDlg('连接数据库出错',mtError,[mbok],0);
end;
end;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ raised exception class EDdatabaseError with message 'parameter'S_Name'
not found'.
我的user.db表里有S_Name,S_Pwd,S_Class 等字段
解决方案 »
- 如何通过点击BUTTON按钮来运行一个EXE文件
- 能不能用临界区实现一个read-write lock
- 关于多线程发送短信的问题????SOS,SOS,SOS
- string doublestring char pchar 如何才能转换呢?可能太基础。但就是不会。
- 请教学习~!有关像网络收藏家、网文快捕之类收藏网页的软件将保页等信息保存在一个文件里的相关技术~!
- 简单问题:如何同时给多个变量赋相同初值?
- 4路USB摄像头视频录像系统功能特点
- 大侠请赐教!!!!!!!
- 老鱼,偶点可用兑换,怎么网页还是报错?偶没登录
- 请教高手:怎样把flash(*.swf)动画文件的第一帧存为bmp文件。急!急!急!
- 判断问题
- 我想按一个F10,让它跳出指定的窗体,
query1.SQL.add('where S_Name =:Username');
query1.SQL.add('and where S_Pwd =:Userpwd');
query1.ParamByName('Username').AsString := AUserName;//这里出现的错误
query1.ParamByName('Userpwd').AsString := AUserPwd;//这里也是
query1.SQL.Add('select S_Name ,S_Pwd from user ');//尾部加空格
query1.SQL.add('where S_Name =:Username');
query1.SQL.add('and S_Pwd =:Userpwd');//不要用两个where
query1.ParamByName('Username').AsString := AUserName;//这里出现的错误
query1.ParamByName('Userpwd').AsString := AUserPwd;//这里也是
按照你写的程序应该是
query1.ParamByName('username').AsString := AUserName;
也就是说parambyname('')中的值应该是query1.SQL.add('where S_Name =:Username');中:后的部分