詠南中間件和開發(fā)框架_第1頁
詠南中間件和開發(fā)框架_第2頁
詠南中間件和開發(fā)框架_第3頁
詠南中間件和開發(fā)框架_第4頁
詠南中間件和開發(fā)框架_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、目錄詠南中間件2詠南中間件數(shù)據(jù)庫配置2詠南中間件插件配置2詠南中間件遠(yuǎn)程方法接口說明5詠南中間件日志7詠南中間件支持二層變?nèi)龑拥母脑?詠南中間件支持集群7代理服務(wù)器部署7設(shè)置代理服務(wù)器要綁定的IP地址和端口號(hào)7運(yùn)行代理服務(wù)器8中間件集群部署9設(shè)置配置文件9運(yùn)行中間件10部署客戶端開發(fā)框架11設(shè)置配置文件11運(yùn)行客戶端開發(fā)框架11詠南開發(fā)框架12詠南開發(fā)框架既支持二層又支持三層開發(fā)12詠南開發(fā)框架支持自動(dòng)升級(jí)12詠南開發(fā)框架是插件框架13詠南開發(fā)框架提供完善的權(quán)限管理13詠南開發(fā)框架支持日志管理15詠南開發(fā)框架提供完整的進(jìn)銷存DEMO15詠南開發(fā)框架提供報(bào)表打印模塊16詠南中間件詠南中間件數(shù)據(jù)庫

2、配置菜單:選項(xiàng)數(shù)據(jù)庫1)詠南中間件使用FIREDAC數(shù)據(jù)引擎。2)詠南中間件可以支持市面上幾乎所有的數(shù)據(jù)庫:ORACLE、MSSQL、MYSQL、DB2、INFORMIX等。3)一個(gè)詠南中間件可以同時(shí)掛接多個(gè)不同類型的數(shù)據(jù)庫,可以同時(shí)連接ORACLE或其它類型的數(shù)據(jù)庫。4)詠南開發(fā)框架使用MSSQL類型的數(shù)據(jù)庫。詠南開發(fā)框架數(shù)據(jù)庫可以不需要轉(zhuǎn)換為其他類型的數(shù)據(jù)庫,如果你的項(xiàng)目使用非MSSQL數(shù)據(jù)庫,你只需讓詠南中間件同時(shí)掛2個(gè)數(shù)據(jù)庫:一個(gè)是詠南開發(fā)框架數(shù)據(jù)庫,一個(gè)是你的項(xiàng)目所使用的數(shù)據(jù)庫。5)詠南中間件會(huì)為每一個(gè)掛接的數(shù)據(jù)庫創(chuàng)建一個(gè)數(shù)據(jù)庫連接池,通過帳套編號(hào)來唯一地標(biāo)識(shí)每一個(gè)數(shù)據(jù)庫,所以帳套編

3、號(hào)必須是唯一的。默認(rèn)第一個(gè)帳套是詠南開發(fā)框架數(shù)據(jù)庫,帳套編號(hào):0。詠南中間件插件配置菜單:選項(xiàng)插件1)可以將項(xiàng)目所有的業(yè)務(wù)功能都封裝成詠南中間件的插件,從而實(shí)現(xiàn)真正的【三層】,真正的【瘦客戶端】。2)詠南中間件支持插件【熱插拔】,增加新的插件,不需要重新啟動(dòng)中間件程序,升級(jí)中間件不需要停機(jī)。3)插件文件名,插件類名是大小寫敏感的。4)插件基類,所有的插件都必須從TfrmPlugBase基類繼承,并覆寫GetSvrData()抽象方法。 TfrmPlugBase = class(TDataModule) private Private declarations public function G

4、etSvrData(const accountNo, defineId: WideString; inParams: OleVariant): OleVariant; virtual; abstract; / accountNo,帳套編號(hào)/ defineId=3位插件編號(hào)+2位自定義編號(hào),defineId必須是唯一的,客戶端通過defineId/ 調(diào)用中間件的插件 / inParams,TDataSet.Params的OLEVARIANT序列 / 返回:NULL-默認(rèn)不返回結(jié)果,非NULL-返回結(jié)果數(shù)據(jù) end;5)插件DEMO/ 服務(wù)端業(yè)務(wù)插件演示/ 陳新光unit untPlug1;int

5、erfaceuses System.SysUtils, System.Classes, untPlugBase, untGlobal, Datasnap.DBClient;type TfrmPlug1 = class(TfrmPlugBase) private Private declarations public Public declarations function GetSvrData(const accountNo, defineId: WideString; inParams: OleVariant): OleVariant; override; end;var frmPlug1:

6、 TfrmPlug1;implementation%CLASSGROUP 'System.Classes.TPersistent'$R *.dfmuses untDB, untDBPool, System.Variants; TfrmPlug1 function TfrmPlug1.GetSvrData(const accountNo,defineId: WideString; inParams: OleVariant): OleVariant;/ defineId=3位插件編號(hào)+2位自定義編號(hào),必須是唯一的var d: TfrmDB; sql: string;begin d

7、:= GetDBPool(accountNo).Lock; if Assigned(d) then begin try if defineId = '12301' then begin sql := 'select * from sys_plugin' d.cds.Close; d.cds.CommandText := sql; d.cds.Params.Clear; if not VarIsNull(inParams) then UnpackParams(inparams, d.cds.Params); d.cds.Open; Result := d.cds.

8、Data; end else if defineId = '12302' then begin sql := 'insert sys_plugin.' d.cds.Close; d.cds.CommandText := sql; d.cds.Params.Clear; if not VarIsNull(inParams) then UnpackParams(inparams, d.cds.Params); d.cds.Execute; Result := Null; end; finally GetDBPool(accountNo).Unlock(d); end

9、; end else Result := Null;end;initialization RegisterClass(TfrmPlug1);finalization UnRegisterClass(TfrmPlug1);end.詠南中間件遠(yuǎn)程方法接口說明詠南中間件默認(rèn)已經(jīng)提供如下遠(yuǎn)程方法: function QuerySql(const accountNo, sql: WideString): OleVariant; / 查詢數(shù)據(jù) / 失?。悍祷豱ull;成功:返回dataset.data / accountNo-帳套編號(hào),sql-SQL語句 function ExecuteSql(const

10、 accountNo, sql: WideString): Boolean; / 執(zhí)行SQL命令 / 失?。悍祷谾ALSE;成功:返回TRUE / accountNo-帳套編號(hào),sql-SQL語句 function SaveData(const accountNo, tableName: WideString; delta: OleVariant): Boolean; / 保存單表數(shù)據(jù) / 失?。悍祷谾ALSE;成功:返回TRUE / accountNo-帳套編號(hào),tableName-待保存的數(shù)據(jù)表名 / delta-clientDataset.delta function SaveDatas

11、(const accountNo: WideString; tableNames, deltas: OleVariant; tableCount: Integer): Boolean; / 保存多表數(shù)據(jù) / 失?。悍祷谾ALSE;成功:返回TRUE / accountNo-帳套編號(hào) function GetFieldValue(const accountNo, sql: WideString): OleVariant; / 取字段值 / 失?。悍祷豱ull;成功:返回field.value function GetSetOfBook: OleVariant; / 返回帳套數(shù)據(jù) function

12、 GetSvrData(const accountNo, defineId: WideString; inParams: OleVariant): OleVariant; / 調(diào)用中間件插件 / 失敗:返回null;成功:返回data / accountNo-帳套編號(hào),defineId-插件編號(hào),inParams-Dataset.params序列 function spExec(const accountNo, spName: WideString; inParams: OleVariant): Boolean; / 調(diào)用存儲(chǔ)過程-命令 / 失?。悍祷谾ALSE;成功:返回TRUE / acc

13、ountNo-帳套編號(hào),spName-存儲(chǔ)過程名,inParams-Dataset.params序列 function spExecOut(const accountno, spName: WideString; inParams: OleVariant): OleVariant; / 調(diào)用存儲(chǔ)過程-命令-返回值 / 失?。悍祷豊ULL;成功:返回TParams / accountNo-帳套編號(hào),spName-存儲(chǔ)過程名,inParams-Dataset.params序列 function spOpen(const accountno, spName: WideString; inParams

14、: OleVariant): OleVariant; / 調(diào)用存儲(chǔ)過程-查詢 / 失?。悍祷豊ULL;成功:返回?cái)?shù)據(jù) / accountNo-帳套編號(hào),spName-存儲(chǔ)過程名,inParams-Dataset.params序列 function spOpenOut(const accountno, spName: WideString; inParams: OleVariant): OleVariant; / 調(diào)用存儲(chǔ)過程-查詢-返回值 / 失?。悍祷豱ull;成功:result0 返回?cái)?shù)據(jù),result1 返回TParams / accountNo-帳套編號(hào),spName-存儲(chǔ)過程名,in

15、Params-Dataset.params序列 function echo(const str: string): string;/ 功能:為了演示REST方法調(diào)用詠南中間件日志在LOGS都會(huì)按天生成詳盡的日志文件,一旦有異常都可以通過看日志找到蛛絲馬跡,迅速定位問題點(diǎn)所在。詠南中間件支持二層變?nèi)龑拥母脑煸瓉砝系亩又边B程序,可能是由DELPHI6,DELPHI7開發(fā)的,詠南中間件支持將它們從二層變?nèi)龑拥母脑?,讓它們?cè)诨ヂ?lián)網(wǎng)環(huán)境暢快運(yùn)行,延續(xù)生命,保障你以前的投資。詠南中間件支持集群代理服務(wù)器部署設(shè)置代理服務(wù)器要綁定的IP地址和端口號(hào)運(yùn)行代理服務(wù)器中間件集群部署設(shè)置配置文件broker節(jié)active=1,表示中間件啟用集群部署。設(shè)置代理服務(wù)器的ip地址和端口號(hào)。local節(jié)設(shè)置當(dāng)前中間件要綁定的IP地址和端口號(hào)。注意:如果在同一臺(tái)服務(wù)器上部署多個(gè)中間件,這多個(gè)中間件的IP地址可以相同,但端口號(hào)必須不能相同。運(yùn)行中間件部署客戶端開發(fā)框架設(shè)置配置文件broker節(jié)Active=1,表示啟用負(fù)載均衡+自動(dòng)故障轉(zhuǎn)移集群。設(shè)置代理服務(wù)器的IP地址和端口號(hào)。app節(jié)Tier=3,表示是3層架構(gòu),必須設(shè)為3,才能啟用負(fù)載均衡+自動(dòng)故障轉(zhuǎn)移集群。運(yùn)行客戶端開發(fā)框架詠南開發(fā)框架詠南開發(fā)框架既支持二層又支持三層開

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論