给这段代码加注释
procedure Tlogin_Form.BitBtn1Click(Sender: TObject);
begin
with login.query1 do
begin
close;
SQL.clear;
SQL.add('select * from login');
SQL.add('where 用户名=:Username');
SQL.add(' add =:passwd');
ParamByName('Username').asstring:=Username.text;
ParamByName('passwd').asstring:=passwd.text;
Prepare;
open;
end;
if login.query1.recordcount=0 then
ModalResult:=mrCancel
else if login.query1['用户类型']='系统管理员' then
begin
G_username:=login.query['用户名'];
ModalResult:=mrOk;
end
else
begin
G_username:=login.query['用户名'];
ModalResult:=mrIgnore;
end;
end;
procedure Tlogin_Form.BitBtn1Click(Sender: TObject);
begin
with login.query1 do
begin
close;
SQL.clear;
SQL.add('select * from login');
SQL.add('where 用户名=:Username');
SQL.add(' add =:passwd');
ParamByName('Username').asstring:=Username.text;
ParamByName('passwd').asstring:=passwd.text;
Prepare;
open;
end;
if login.query1.recordcount=0 then
ModalResult:=mrCancel
else if login.query1['用户类型']='系统管理员' then
begin
G_username:=login.query['用户名'];
ModalResult:=mrOk;
end
else
begin
G_username:=login.query['用户名'];
ModalResult:=mrIgnore;
end;
end;
procedure Tlogin_Form.BitBtn1Click(Sender: TObject);
begin
// 从login表中查找用户名为Username.text,密码为passwd.text的用户
with login.query1 do
begin
close;
SQL.clear;
SQL.add('select * from login');
SQL.add('where 用户名=:Username');
SQL.add(' add =:passwd');
ParamByName('Username').asstring:=Username.text;
ParamByName('passwd').asstring:=passwd.text;
Prepare;
open;
end;//如果没有这个用户,按下cancal按钮并且退出
if login.query1.recordcount=0 then ModalResult:=mrCancel
//如果这个用户的用户类型是'系统管理员'
else if login.query1['用户类型']='系统管理员' then
begin
G_username:=login.query['用户名'];
ModalResult:=mrOk;
end//该用户不是系统管理员
else
begin
G_username:=login.query['用户名'];
ModalResult:=mrIgnore;
end;
end;
这几句代码我还是不太懂,请加注释
with login.query1 do
SQL.add('where 用户名=:Username');
SQL.add(' add =:passwd');
ParamByName('Username').asstring:=Username.text;
ParamByName('passwd').asstring:=passwd.text;
G_username:=login.query['用户名'];的G_username从哪里来的
G_username:=login.query['用户名'];
G_username Delphi提示说这个是未说明的标识符
把它定义为变量也出错,请指教!
//应该是这样把
G_username:=login.query1['用户名'];
G_username:=login.query1['用户名'];
这个好象是变量G_username应定义为什么类型的
var
login_Form: Tlogin_Form;
G_username:string;
这是数据庫出错信息
DBISAM Engine Error # 11949 SQL error - SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,or DROP keyword expected,instead found 'where'
数据庫用:dbisam
请指点!
G_username:=login.query1.FieldByName('用户名').Value;
第二个问题,也就是你声明了这个变量之后,错误原因是你的sql不对,没有select * from.在SQL.add('where 用户名=:Username');前加上SQL.add('select * from ');
to: idilent()这段程序是我从书中看到的,G_username这个我已声明为一个全局变量G_username:string;,前加上SQL.add('select * from login');
这个好象有呀!我的代码就在上面你可看看。
var
Form1: TForm1;
G_username:string;登录窗体代码上确定按扭的代码
procedure Tlogin_Form.BitBtn1Click(Sender: TObject);
begin
with DM.Users_Query do
begin
close;
SQL.clear;
SQL.add('select * from login');
SQL.add('where 用户名=:Username');
SQL.add(' add 密码=:passwd');
ParamByName('Username').asstring:=PW_UserName_Edit.Text;
ParamByName('passwd').asstring:=pw_password_Edit.Text;
Prepare;
open;
end;
if DM.Users_Query.recordcount=0 then
ModalResult:=mrCancel
else if DM.Users_Query['用户类型']='系统管理员' then
begin
//G_username := DM.Users_Query.FieldByName('用户名').AsString;
G_username:=DM.Users_Query.FieldByName('用户名').Value;
ModalResult:=mrOk;
end
else
begin
G_username:=DM.Users_Query.FieldByName('用户名').Value;
ModalResult:=mrIgnore;
end;
end;工程文件
begin Application.CreateForm(TForm1, Form1);
Application.CreateForm(TDM, DM);
login_Form:= Tlogin_Form.Create(Application);
login_Form.ShowModal;
if login_Form.ModalResult<>2 then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(Tlogin_Form, login_Form);
Form1.Replace.Enabled:=(login_Form.ModalResult=1);
Application.CreateForm(Tsetpasswd_form, setpasswd_form);
Application.CreateForm(TUsermanage_Form, Usermanage_Form);
Application.Run;
end;
end.
SQL.add('where 用户名=:Username');
SQL.add(' add 密码=:passwd');
ParamByName('Username').asstring:=PW_UserName_Edit.Text;
ParamByName('passwd').asstring:=pw_password_Edit.Text;改
SQL.add('where 用户名="Username"');
SQL.add(' add 密码="passwd"');
ParamByName('Username').asstring:=PW_UserName_Edit.Text;
ParamByName('passwd').asstring:=pw_password_Edit.Text;改后那上面的问题已解决,但是换成提示
Users_Query:parameter'UserName'nof found
请指教
SQL.add('where 用户名=''+Username+''');
SQL.add(' add 密码=''+passwd+''');
ParamByName('Username').asstring:=PW_UserName_Edit.Text;
ParamByName('passwd').asstring:=pw_password_Edit.Text;