?? uxzbooksjiebook.pas
字號:
unit uxzBooksJieBook;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComServ, ComObj, VCLCom, StdVcl, bdemts, DataBkr, DBClient,
MtsRdm, Mtx, pxzBooksJieBook_TLB, DB, ADODB, uPublic;
type
TxzBooksJieBook = class(TMtsDataModule, IxzBooksJieBook)
ADOConnection1: TADOConnection;
adoBooks: TADODataSet;
adoGetUserName: TADODataSet;
adoJS: TADODataSet;
adoJSXS: TADODataSet;
adoJSBS: TADODataSet;
adoMax: TADODataSet;
private
function BookCanJie(BookID:String):boolean;
function YHHF(userID:String):Boolean;
//判斷當前用戶是否可以借書,包括注冊類型的天數限制、本數限制。
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
procedure JieShu(const CZY, JYRDH, JYR, JYRQ, BookID, BookName: WideString;
DJ: Double; var vResult: OleVariant); safecall;
procedure GetBookInfoFromBookID(const id: WideString; var vBookName,
vDJ: OleVariant); safecall;
procedure GetUserInfoFromUserID(const id: WideString; var vUserName,
vJSXS: OleVariant); safecall;
public
{ Public declarations }
end;
var
xzBooksJieBook: TxzBooksJieBook;
implementation
{$R *.DFM}
class procedure TxzBooksJieBook.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
begin
if Register then
begin
inherited UpdateRegistry(Register, ClassID, ProgID);
EnableSocketTransport(ClassID);
EnableWebTransport(ClassID);
end else
begin
DisableSocketTransport(ClassID);
DisableWebTransport(ClassID);
inherited UpdateRegistry(Register, ClassID, ProgID);
end;
end;
procedure TxzBooksJieBook.JieShu(const CZY, JYRDH, JYR, JYRQ, BookID,
BookName: WideString; DJ: Double; var vResult: OleVariant);
begin
if YHHF(JYRDH) then
begin //用戶可以借書
if BookCanJie(BookID) then
vResult:='這本書已借出!'
else
try
if ADOConnection1.Connected then
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := GetConStr;
adoJS.Open;
try
adoJS.Append;
adoJS.FieldByName('CZY').Value:=CZY;
adoJS.FieldByName('JYRDH').Value :=JYRDH;
adoJS.FieldByName('JYR').Value :=JYR;
adoJS.FieldByName('JYRQ').Value :=strToDate(JYRQ);
adoJS.FieldByName('BookID').Value :=BookID;
adoJS.FieldByName('BookName').Value :=BookName;
adoJS.FieldByName('DJ').Value :=DJ;
adoJS.Post;
adoBooks.Parameters.ParamByName('aid').Value :=BookID;
adoBooks.Open;
adoBooks.Edit;
adoBooks.FieldByName('YJC').Value :=True;
adoBooks.Post;
finally
setComplete;
adoJS.Close;
vResult:='Complete';
end;
except
setAbort;
vResult:=ADOConnection1.Errors[0].Description;
end;
end
else
vResult:='不能完成操作:當前用戶已不能借書!';
end;
procedure TxzBooksJieBook.GetBookInfoFromBookID(const id: WideString;
var vBookName, vDJ: OleVariant);
begin
try
if ADOConnection1.Connected then
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := GetConStr;
adoBooks.Parameters.ParamByName('aid').Value :=ID;
adoBooks.Open;
if adoBooks.IsEmpty then
vBookName:='None'
else
begin
vBookName:=adoBooks.fieldByName('Name').Value;
vDJ:=adoBooks.FieldByName('Money').Value;
end;
finally
adoBooks.Close;
end;
end;
procedure TxzBooksJieBook.GetUserInfoFromUserID(const id: WideString;
var vUserName, vJSXS: OleVariant);
begin
try
if ADOConnection1.Connected then
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := GetConStr;
adoGetUserName.Parameters.ParamByName('aid').Value :=id;
adoGetUserName.Open;
if adoGetUserName.IsEmpty then
vUserName:='None'
else
begin
vUserName:=adoGetUserName.fieldByName('Name').Value;
vJSXS:=adoGetUserName.fieldByName('JSXS').Value;
end;
finally
adoGetUserName.Close;
end;
end;
//檢測圖書是否已借出.T.是,.F.可以借
function TxzBooksJieBook.BookCanJie(BookID: String): boolean;
begin
try
adoBooks.Parameters.ParamByName('aid').Value :=BookID;
adoBooks.Open;
Result:=adoBooks.FieldByName('YJC').Value;
finally
adoBooks.Close;
end;
end;
function TxzBooksJieBook.YHHF(userID: String): Boolean;
var
JSXS:integer;//用戶租書形式
iMax,iBooks:integer;//最多借多少本,已借多少本;
begin
try
if ADOConnection1.Connected then
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := GetConStr;
adoJSXS.Close;
adoJSXS.Parameters.ParamByName('aid').Value :=userID;
adoJSXS.Open;
JSXS:=adoJSXS.FieldByName('jsxs').AsInteger; //獲取用戶的借書形式;
adoMax.Close;
adoMax.Parameters.ParamByName('aid').Value :=JSXS;
adoMax.Open;
iMax:=adoMax.fieldByName('Max').Value; //獲取用戶最多可借多少本書
iBooks:=0; //默認用戶沒有借書
adoJSBS.Close;
adoJSBS.Parameters.ParamByName('aid').Value :=userID;
adoJSBS.Open;
if not adoJSBS.IsEmpty then
begin
adoJSBS.First;
while not adoJSBS.Eof do
begin
iBooks:=iBooks + adoJSBS.fieldByName('CS').AsInteger;
adoJSBS.Next;
end;
end;
if iMax>iBooks then
result:=True //可以借書
else
result:=false; //不可以借書
finally
adoJSXS.Close;
adoJSBS.Close;
adoMax.Close;
end;
end;
initialization
TComponentFactory.Create(ComServer, TxzBooksJieBook,
Class_xzBooksJieBook, ciMultiInstance, tmApartment);
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -