在一个三层结构中如何设置用户名和密码登录?应用服务器,客户端和后台SQL数据服务器,我想实现的是打开客户端的话,首先出现的是一个用户登录的界面,用户名和密码在SQL数据服务器当中,使用ADO连接SQL,不过客户端是不能直接用ADO连来实现登录这个过程的,只能通过客户端激发应用服务器,通过应用服务器连接SQL来实现用户登录的确认过程。可能我说的不是太清楚,请见谅。谢谢。
解决方案 »
- 我用delphi显示photoshop输出的bmp总是通不过,为什么?
- delphi浮点数的恶心问题
- 使用TCHART组件遇到的问题
- 求ResourceString字符串资源使用的例子?
- 被这家公司黑了一把
- 送:500分:自定义纸张连续打印,但用quickreport3编的程序打印完一页后,走一个空白页再打下一页,
- 如何判断radiogroup1?
- 对DELPHI的控件 面板点右键,把他的属性打开
- 查询语句可以同时设定显示的列标题名称吗?
- ---实现如下功能:按下F1键的时,向系统发出ALT+H的组合键信息,并在相应的事件中做出反应,比如显示个提示框???
- 在Dephi里执行insert into table1(col1,col2) select col1,col2 from table2 之类的语句时报错
- StringGrid如何實現滾動條移動時相應的文本框也一起移動?(即如何實現StringGrid的滾動條移動事件)
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
uses unit2;
procedure TForm1.Button2Click(Sender: TObject);
begin
application.Terminate;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
if datamodule2.loginapp(edit1.Text,edit2.Text) then
begin
showmessage('登陆成功');
end else
begin
showmessage('登陆失败');
end;
end;end.
unit Unit2;interfaceuses
SysUtils, Classes, DB, ADODB,dialogs;type
TDataModule2 = class(TDataModule)
ADOConnection1: TADOConnection;
ADOCommand1: TADOCommand;
ADOQuery1: TADOQuery;
private
{ Private declarations }
public
{ Public declarations }
function loginapp(username,passwd:string):boolean;
end;
Const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';var
DataModule2: TDataModule2;implementationuses Unit1;{$R *.dfm}
function setadoaccess(mdbpath:string;passwd:string):string;
begin
mdbpath:=trim(mdbpath);
passwd:=trim(passwd);
result:=format(SConnectionString,[mdbpath,passwd]);
end;
function tdatamodule2.loginapp(username,passwd:string):boolean;
begin
result:=false;
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from logininfo where usernames=:username and passwd=:passwd');
parameters.ParamByName('username').Value:=trim(username);
parameters.ParamByName('passwd').Value:=trim(passwd);
try
open;
if recordcount>0 then
result:=true;
except on e:exception do
begin
showmessage(e.Message);
end; end;
end;
end;end.这是原来做的代码,但经过应用服务器,把ADO的这个连接过程放在应用服务器部分小弟很是迷茫啊!
你取数据库中的用户与密码信息应该在课户端用一个clientdataset控件来取吧,clientdataset与客户端的socketconnection或者dcomconnection连接,这两个控件又与应用程序服务器相连,并通过应用程序服务器访问数据库的。