毕业设计要用,急啊,高手来看一下 在一个三层结构中如何设置用户名和密码登录?应用服务器,客户端和后台SQL数据服务器,我想实现的是打开客户端的话,首先出现的是一个用户登录的界面,用户名和密码在SQL数据服务器当中,使用ADO连接SQL,用客户端激发应用服务器,通过应用服务器连接SQL来实现用户登录的确认过程,ADO组件是在应用服务器中用到的。可能我说的不是太清楚,请见谅。谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不论如何,你应了解到,你的程序和数据服务器的连接是已定好了的,比如由DBA给你一个合适的身份,那么在程序运行时就和DB服务器进行了连接,然后你才能通过代码间的验证实现用户身份的验证,不知你明白没? 4楼的大哥,我已经说了不能这样做,我的意思是从应用服务器这一部分来实现,你说的这个功能我已经实现unit Unit1;interfaceuses 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);beginapplication.Terminate;end;procedure TForm1.Button1Click(Sender: TObject);beginif 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;beginmdbpath:=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的这个连接过程放在应用服务器部分小弟很是迷茫啊! 呵呵,从网上找些三层的例子看看就知道了,有关ADO,应用层是不去操心的 有了这个代码还不会?是不是不会怎么在应用服务器加函数啊?用type library。多看看书吧,很容易的。 DELPHI 配合 什么数据库做开发比较好? DbGrid如何实现翻页? 关于MDI窗体注销的问题 请问怎样能使用户改变报表字段的位置 小问题100分求急救! 怎么修改BMP 进行串行口通信的TMSComm控件在Delphi7环境下的哪个标签页? 还得问啊如何让一个控件在两个窗体之间拖动呢???? 如何在query控件中动态添加一个lookup字段 解释这三个的区别:new、getmem、Allocmem 请问一个ADOQuery的问题? 多个SpinEdit关联问题
unit Unit1;interfaceuses
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的这个连接过程放在应用服务器部分小弟很是迷茫啊!