?? dmunit.~pas
字號:
unit DMUnit;
interface
uses
Forms,SysUtils, Classes, DB, ADODB;
type
TDM = class(TDataModule)
ADOConn: TADOConnection;
ADOQuery: TADOQuery;
OtherInfo: TADOQuery;
LogQuery: TADOQuery;
BuyQuery: TADOQuery;
LendQuery: TADOQuery;
ReadQuery: TADOQuery;
ReturnQuery: TADOQuery;
UserQuery: TADOQuery;
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GetAuth():TStrings;//取得數據庫中所有的作者名
function GetPub():TStrings;//取得數據庫中所有的出版社名稱
function GetTypeSno():TStrings;//取得數據庫中所有的類型編號
function GetTypeGen():TStrings;//取得數據庫中所有的總分類名
function GetTypeTyp(gen:string):TStrings;//根據傳入的總分類名取得其下的所有子分類名
function Getreadid():TStrings;//取得數據庫中所有的讀者編號
function GetSno(gen,typ:string):string;//根據傳入的總分類名和子分類名取得對應的編號
function GetReadTyp():TStrings;//取得庫存中所有的讀者類型編號
function GetAllReadID():TStrings; //取得庫存中所有的讀者編號
function ValRead(id:string):boolean;//查詢庫存中是否存在此讀者
function ValReadType(sno:string):boolean;//查詢庫存中是否存在指定的讀者類型編號
function GetUserName():TStrings;//得到數據庫中所有的用戶名
function ValUserName(username:string):boolean;//驗證用戶名
function ValUser(username,password:string):Boolean;//驗證輸入的用戶名和密碼是否正確
function SetUserPass(username,password:string):boolean;//更改用戶密碼
procedure SaveLogIn(username:string);//保存登錄日志
function GetMenu(username:string):TStrings;//取得用戶可用菜單
function ValReadId(readin:string):boolean;//驗證是否存在傳入的讀者編號
function ValBook(isbn:string):string;//驗證是否存在傳入的圖書編號,有則返回書名
end;
var
DM: TDM;
implementation
{$R *.dfm}
///////取得數據庫中所有的作者名///////
function TDM.GetAuth: TStrings;
begin
Result:=TStringList.Create;
ADOQuery.SQL.Text:='select auth_name from auth_info';
ADOQuery.Prepared;
ADOQuery.Open;
while not ADOQuery.Eof do
begin
Result.Add(ADOquery.Fields[0].AsString);
ADOQuery.Next;
end;
ADOQuery.Close;
end;
///////取得數據庫中所有的出版社名稱///////
function TDM.GetPub: TStrings;
begin
Result:=TStringList.Create;
ADOquery.SQL.Text:='select pub_name from pub_info';
ADOQuery.Prepared;
ADOQuery.Open;
while not ADOQuery.Eof do
begin
Result.Add(ADOQuery.Fields[0].AsString);
ADOQuery.Next;
end;
ADOQuery.Close;
end;
///////取得數據庫中所有的類型編號///////
function TDM.GetTypeSno: TStrings;
begin
Result:=TStringList.Create;
ADOQuery.SQL.Text:='select type_sno from book_type';
ADOQuery.Prepared;
ADOquery.Open;
while not ADOQuery.Eof do
begin
Result.Add(ADOquery.Fields[0].AsString);
ADOQuery.Next;
end;
ADOQuery.Close;
end;
/////////取得數據庫中所有的總分類名///////
function TDM.GetTypeGen: TStrings;
begin
Result:=TStringList.Create;
ADOQuery.SQL.Text:='select type_gen from book_type group by type_gen';
ADOquery.Prepared;
ADOQuery.Open;
while not ADOQuery.Eof do
begin
Result.Add(ADOQuery.Fields[0].AsString);
ADOQuery.Next;
end;
ADOquery.Close;
end;
///////根據傳入的總分類名取得其下的所有子分類名///////
function TDM.GetTypeTyp(gen: string): TStrings;
begin
Result:=TStringList.Create;
ADOQuery.SQL.Text:='select type_typ from book_type where type_gen=:gen';
ADOQuery.Parameters.ParamByName('gen').Value:=gen;
ADOquery.Prepared;
ADOQuery.Open;
while not ADOQuery.Eof do
begin
Result.Add(ADOQuery.Fields[0].AsString);
ADOQuery.Next;
end;
ADOquery.Close;
end;
///////取得數據庫中所有的讀者編號///////
function TDM.Getreadid: TStrings;
begin
Result:=TStringList.Create;
ADOQuery.SQL.Text:='select read_id from read_info';
ADOQuery.Prepared;
ADOquery.Open;
while not ADOQuery.Eof do
begin
Result.Add(ADOQuery.Fields[0].AsString);
ADOQuery.Next;
end;
ADOquery.Close;
end;
///////根據傳入的總分類名和子分類名取得對應的編號///////
function TDM.GetSno(gen, typ: string): string;
begin
ADOQuery.SQL.Text:='select type_sno from book_type where type_gen=:in0 and '+
' type_typ=:in1';
ADOQuery.Parameters[0].Value:=gen;
ADOquery.Parameters[1].Value:=typ;
ADOquery.Prepared;
ADOquery.Open;
if ADOquery.RecordCount=1 then
Result:=ADOquery.Fields[0].AsString
else
Result:='';
ADOquery.Close;
end;
///////取得庫存中所有的讀者類型編號///////
function TDM.GetReadTyp: TStrings;
begin
Result:=TStringList.Create;
ADOQuery.SQL.Text:='select type_sno from read_type';
ADOquery.Prepared;
ADOquery.Open;
while not ADOquery.Eof do
begin
Result.Add(ADOquery.Fields[0].asstring);
ADOquery.Next;
end;
ADOquery.Close;
end;
///////取得庫存中所有的讀者編號///////
function TDM.GetAllReadID: TStrings;
begin
Result:=TStringList.Create;
ADOquery.SQL.Text:='select read_id from read_info';
ADOquery.Prepared;
ADOquery.Open;
while not ADOQuery.Eof do
begin
Result.Add(ADOquery.Fields[0].AsString);
ADOquery.Next;
end;
ADOquery.Close;
end;
function TDM.ValRead(id: string): boolean;
begin
ADOQuery.SQL.Text:='select read_id from read_info where read_id=:in0';
ADOquery.Parameters[0].Value:=id;
ADOquery.Prepared;
ADOquery.Open;
if ADOquery.RecordCount=1 then
Result:=True
else
Result:=False;
ADOquery.Close;
end;
///////查詢庫存中是否存在指定的讀者類型編號///////
function TDM.ValReadType(sno: string): boolean;
begin
ADOQuery.SQL.Text:='select type_sno from read_type where type_sno=:in0';
ADOQuery.Parameters[0].Value:=sno;
ADOquery.Prepared;
ADOquery.Open;
if ADOQuery.RecordCount=1 then
Result:=True
else
Result:=False;
ADOquery.Close;
end;
///////得到數據庫中所有的用戶名///////
function TDM.GetUserName: TStrings;
begin
Result:=TStringList.Create;
ADOQuery.SQL.Text:='select man_id from man_info';
ADOQuery.Prepared;
ADOquery.Open;
while not ADOQuery.Eof do
begin
Result.Add(ADOQuery.Fields[0].AsString);
ADOQuery.Next;
end;
ADOQuery.Close;
end;
///////檢驗輸入的用戶名是否存在///////
function TDM.ValUserName(username: string): boolean;
begin
ADOQuery.SQL.Text:='select man_id from man_info where man_id=:in0';
ADOquery.Parameters[0].Value:=username;
ADOquery.Prepared;
ADOquery.Open;
if ADOquery.RecordCount=1 then
Result:=True
else
Result:=False;
ADOquery.Close;
end;
///////驗證輸入的用戶名和密碼是否正確////////
function TDM.ValUser(username, password: string): Boolean;
begin
ADOQuery.SQL.Text:='select man_id from man_info where man_id=:in0 and man_pass=:in1';
ADOQuery.Parameters[0].Value:=username;
ADOquery.Parameters[1].Value:=password;
ADOquery.Prepared;
ADOquery.Open;
if ADOquery.RecordCount=1 then
Result:=True
else
Result:=False;
ADOquery.Close;
end;
///////更改用戶密碼///////
function TDM.SetUserPass(username, password: string): boolean;
begin
ADOConn.BeginTrans;
try
ADOQuery.SQL.Text:='update man_info set man_pass=:in0 where man_id=:in1';
ADOquery.Parameters[0].Value:=password;
ADOquery.Parameters[1].Value:=username;
ADOquery.Prepared;
ADOQuery.ExecSQL;
ADOConn.CommitTrans;
Result:=True;
except
ADOConn.RollbackTrans;
Result:=False;
end;
ADOQuery.Close;
end;
///////保存登錄日志///////
procedure TDM.SaveLogIn(username: string);
begin
ADOConn.BeginTrans;
try
ADOQuery.SQL.Text:='insert into entry_log(man_id,entry_date) values(:in0,:in1)';
ADOquery.Parameters[0].Value:=username;
ADOquery.Parameters[1].Value:=Now;
ADOquery.Prepared;
ADOquery.ExecSQL;
ADOConn.CommitTrans;
except
ADOConn.RollbackTrans;
raise;
end;
ADOquery.Close;
end;
///////取得用戶可用菜單/////
function TDM.GetMenu(username: string): TStrings;
var
i:byte;
begin
Result:=TstringList.Create;
ADOquery.SQL.Text:='select lend_reg,return_reg,book_buy,book_query,lend_man,'+
'user_man,other_man,log_query from man_info where man_id=:in0';
ADOquery.Parameters[0].Value:=username;
ADOquery.Prepared;
ADOquery.Open;
for i:=0 to 7 do
Result.Add(ADOquery.Fields[i].AsString);
ADOquery.Close;
end;
function TDM.ValReadId(readin: string): boolean;
begin
ADOQuery.SQL.Text:='select read_id from read_info where read_id=:in0';
ADOquery.Parameters[0].Value:=readin;
ADOQuery.Prepared;
ADOquery.Open;
if ADOquery.RecordCount=1 then
Result:=True
else
Result:=False;
ADOquery.Close;
end;
function TDM.ValBook(isbn: string): string;
begin
ADOQuery.SQL.Text:='select book_name from book_stock where book_isbn=:in0 and lendout="n"';
ADOQuery.Parameters[0].Value:=isbn;
ADOquery.Prepared;
ADOQuery.Open;
if ADOquery.RecordCount=1 then
Result:=ADOquery.Fields[0].AsString
else
Result:='';
ADOquery.Close;
end;
procedure TDM.DataModuleCreate(Sender: TObject);
var
datapath:string;
begin
DM.ADOConn.Connected:=False;
datapath:=ExtractFilePath(application.ExeName)+'library.mdb';//動態設置數據庫的路徑,使得數據庫路徑為程序的路徑
DM.ADOConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+datapath+';Persist Security Info=False';
DM.ADOConn.Connected:=True;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -