有一个用ADO连接的数据库,我希望在程序中提供用户名和口令,假设我有一个ACCESS数据库,叫MYDATA,我在onlogin中应该怎么写呢????
解决方案 »
- IdPOP3控件收邮件会出现Content-Transfer-Encoding: base64
- Delphi 2005 是否已经正式发布了? Arichitect版本有几张碟子呢?
- Report Machine控件的打印问题
- 做了一个安装文件,在有delphi和视频卡的机器上安装后,一切运行正常;在没有delphi和视频卡的机器,安装后运行一点反应都没有。为什么?
- 怎么把多个相同的数据集放到我的一个临时表中?
- 哪位高手请指教!谢了.
- 请大虾赐教!!100分!!
- DAO Execute 问题
- dll的路径问题
- 求WinSocket API使用说明,要详细哟!
- 如何在一个日期变量上加上一天?
- 如何按商品种类统计出销售数量
if 想显示ADO的登陆界面 then
将ADOConnection的LoginPromt设为True
else if 想自己做登陆界面 then
begin
1.建一个用户表: UserID, UserName, Password
2.然后在程序中找到登陆人员的UserID,然后比较输入的password是否相同
end;
var
//MyList:TStringList;
str,user:string;
const
boolstr:array[boolean] of string=('密码错误!','正在登录……');
begin
{MyList:=TStringList.Create;}
try
label1.Caption:=boolstr[SQLConfigDataSource(0, ODBC_ADD_DSN,
// ~换成Handle就是手工配置
'SQL Server', //数据库类型
'DSN=MQIS'#0 + //数据源名称
'Server='+combobox1.Text+#0 + //SQL Server服务器名,从combobox1.text中选取
'Database=HRMS'#0 + //数据库名称
'Description=动态配置ODBC(人力资源信息管理系统)'#0 //描述
)]; with datamodule2.ADOConnection1 do
begin
user:=combobox2.Text;
ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;User ID='+user+';password='+edit1.Text+';'+'Data Source=MQIS;Initial Catalog=HRMS';
str:=ConnectionString;
Connected:=true;
//open;
end;
except
begin
edit1.SetFocus; //焦点提示用户重新输入密码
label1.Caption:='登录失败!';
frmlogon.Button1.Enabled:=true;
frmlogon.button2.enabled:=true;
end;
edit1.Clear; //清空密码
end;
end;
建一个用户表: UserID, UserName, Password 假设表名为talbe1 dm_fin是adoconnection
再登陆界面理这么写
function Loginshow(var username,password:string):boolean;
begin
result:=false;
Frmlogin:=TFrmlogin.Create(application);
try
result:=Frmlogin.ShowModal=mrok;
if result then
begin
username:=trim(frmlogin.edtusername.text);
password:=trim(frmlogin.edtpassword.text);
end;
except
Frmlogin.Free;
end;
end;
再主界面这么写
procedure Tfrmmain.login; //登陆
var username,password:string;
begin
if Loginshow(username,password) then
TRY
talbe1.open;
if talbe1.Locate('用户名;密码',vararrayof([username,password]),[]) then
begin
loged:=true;
dm_fin.cdscode.Open;
statusbar1.Panels[1].text:=dm_fin.cdsuser.fieldbyname('用户名').AsString;
statusbar1.Panels[3].text:=dm_fin.cdsuser.fieldbyname('部门名称').AsString;
statusbar1.Panels[5].text:='已登录';
end
else
begin
dm_fin.finconn.Close;
application.MessageBox(pchar('登录失败,请检查用户名和密码,或者重新下载基本数据。'),pchar(application.Title),mb_ok+mb_iconinformation);
end;
EXCEPT
dm_fin.finconn.Close;
application.MessageBox(pchar('未知系统错误,请检查网络连接。'),pchar(application.Title),mb_ok+mb_iconinformation);
end;
//查找是否有此用户存在并且密码是否正确
with DmMain.ADOQDl do
begin
sql.Clear;
sql.Add('select * from czyb where ');
sql.Add('czyxm='''+cbxm.Text+''' and '+'czymm='''+edmm.Text+'''');
open;
//如果不存在
if eof then
begin
//如果输入错误超过三次
if Inlogin>3 then
begin
showmessage('已经输入三次错误,退出系统!');
//退出系统
application.Terminate;
end
else
begin
showmessage('输入错误,请重新输入!');
cbxm.SetFocus;
end;
end
else
begin //保存登录时的用户编号和姓名
IsUserBh:=fieldbyname('czybm').AsString;
IsUserName:=fieldbyname('czyxm').AsString;
FrmDl.Close;
Application.CreateForm(TFrmlb, Frmlb);
frmlb.Visible:=false;
frmlb.ShowModal;
end;
end;