我自己设计的登陆窗体有一个下拉窗口来选择数据哭名称
2个edit用来输入用户和密码
一个button来进行登陆事件,我的登陆代码都在
procedure TF_login.Button1Click(Sender: TObject);中
我的思路是开始断开数据库的连接.然后用过滤器提取edit的text与数据库表中
信息核对,核对通过即登陆成功
现在就是还是高不清楚那个数据库的地址怎么设,代码这么写
connectionstring的值是一大串代码,我也不是很清楚怎么拼接(呵呵)
就是这样的:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=mmx;Data Source=mmx;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=MMX;Use Encryption for Data=False;Tag with column collation when possible=False
还是看看我的这个源码吧
很简单的:
procedure TF_login.Button1Click(Sender: TObject);
var
passwd,passwrd:string;
begin
with DataModule1 do
beginadoconnection1.loginprompt:=false;
ADOConnection1.connected:=false;
//设置服务器地址,这代码怎么写啊?
ADOConnection1.connected:=true; //连接到数据库
T_user.Filter:='ID='''+i_name.text+''''; //提取用户信息
T_user.Filtered:=true;
T_user.open;
if T_user.recordcount=1 then //判断用户是否存在
begin
passwd:=i_passwd.Text; //获取输入密码
if length(passwd)>5 then
begin
passwd:=copy(passwd+passwd,1,10);
end;
passwrd:=T_user['PASSWD']; //获取数据库的密码
if (passwrd=passwd) then
//F_main.login:=true // 这里有个问题,请问登陆常量login这个在那里定义啊?
else
Application.MessageBox('请重新输入密码','密码错误',MB_OK);
end
else
Application.MessageBox('请确认用户名','无此用户',MB_OK);
T_user.close;
end;
//if F_main.login then F_login.close;//同上问题end;procedure TF_login.Button2Click(Sender: TObject);
begin
close;
end;end.看这样我的功能能实现吗>还有什么地方有错?
麻烦了
明天要交了
2个edit用来输入用户和密码
一个button来进行登陆事件,我的登陆代码都在
procedure TF_login.Button1Click(Sender: TObject);中
我的思路是开始断开数据库的连接.然后用过滤器提取edit的text与数据库表中
信息核对,核对通过即登陆成功
现在就是还是高不清楚那个数据库的地址怎么设,代码这么写
connectionstring的值是一大串代码,我也不是很清楚怎么拼接(呵呵)
就是这样的:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=mmx;Data Source=mmx;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=MMX;Use Encryption for Data=False;Tag with column collation when possible=False
还是看看我的这个源码吧
很简单的:
procedure TF_login.Button1Click(Sender: TObject);
var
passwd,passwrd:string;
begin
with DataModule1 do
beginadoconnection1.loginprompt:=false;
ADOConnection1.connected:=false;
//设置服务器地址,这代码怎么写啊?
ADOConnection1.connected:=true; //连接到数据库
T_user.Filter:='ID='''+i_name.text+''''; //提取用户信息
T_user.Filtered:=true;
T_user.open;
if T_user.recordcount=1 then //判断用户是否存在
begin
passwd:=i_passwd.Text; //获取输入密码
if length(passwd)>5 then
begin
passwd:=copy(passwd+passwd,1,10);
end;
passwrd:=T_user['PASSWD']; //获取数据库的密码
if (passwrd=passwd) then
//F_main.login:=true // 这里有个问题,请问登陆常量login这个在那里定义啊?
else
Application.MessageBox('请重新输入密码','密码错误',MB_OK);
end
else
Application.MessageBox('请确认用户名','无此用户',MB_OK);
T_user.close;
end;
//if F_main.login then F_login.close;//同上问题end;procedure TF_login.Button2Click(Sender: TObject);
begin
close;
end;end.看这样我的功能能实现吗>还有什么地方有错?
麻烦了
明天要交了
login若是常量的话 就不可以修改了
我觉得你还是连接好了数据库以后 用一个adoquery吧
选取你的数据库中用户名称为输入的用户名称 看看有没有返回值的 有就是存在了查询该用户的密码是什么 不存在直接提示不存在该用户 最后在判断密码是否正确 决定进入或者退出就可以了
login若是常量的话 就不可以修改了
我觉得你还是连接好了数据库以后 用一个adoquery吧
选取你的数据库中用户名称为输入的用户名称 看看有没有返回值的 有就是存在了查询该用户的密码是什么 不存在直接提示不存在该用户 最后在判断密码是否正确 决定进入或者退出就可以了
var
myUserID,mySQLServerIP,myPassword:String;
Reg:TRegistry;
begin
Reg:=Tregistry.Create; //创建Tregistry对象的实例
Reg.Rootkey := HKEY_CURRENT_USER ; //设置根键名称
Reg.OpenKey('\Software\Microsoft\Managerr_Achive',True);
try
myUserID:=Reg.ReadString('UserID');
mySQLServerIP:=Reg.ReadString('SqlServerIP');
myPassword:=Reg.ReadString('SqlServerPwd');
myPassWord:=Decrypt(myPassword,0);
except
Application.MessageBox('本机尚未注册 SQL SERVER 服务器!!请先执行<SQL服务器定义.EXE> 注册SQL SERVER服务器!! ','提示',MB_OK+MB_IconInformation);
Application.Terminate;
end;
Reg.CloseKey;
Reg.Free; //关闭注册表
try
with AdoConnection1 do
begin
LoginPrompt:=False;
Connected:=False; ConnectionString:='Provider=SQLOLEDB.1;Password='+myPassword+';'+
'Persist Security Info=True;'+
'User ID='+myUserID+';'+
'Initial Catalog=Cuctomer_Manager;'+
'Data Source='+mySQLServerIP+';'+
'Use Procedure for Prepare=1;'+
'Auto Translate=True;'+
'Packet Size=8192;'+
'Use Encryption for Data=False;'+
'Tag with column collation when possible=False';
Connected:=True;
end;
except
Application.MessageBox(pchar('无法登录 SQL SERVER 服务器 !! 有可能是下列原因'+#13+#13+'1、数据库服务器未开 --> 通知系统管理员开机'+#13+'2、本机未定义SQL SERVER服务器 --> 通知系统管理员定义本机 '),'提示',MB_OK+MB_IconInformation);
AdoConnection1.Close;
Application.Terminate;
end;
end;-------------
因为我的程序常到连接到不同的SQL服务器,所以还单独做了一个定义SQL器地址的程序,那个程序的唯一目的就是把SQL服务器的地址、登录名和密码写到注册表中
那个login是变量
这里的变量值改变来触发主窗体的事件