加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

pb11.net + webservice + iis6.0 for win2003server 三層系統架

发布时间:2020-12-17 02:31:31 所属栏目:安全 来源:网络整理
导读:pb11.net + webservice + iis6.0 for win2003server 三層系統架構規划 中間層為輕量層 數據庫端處理方式不變 中間層方式及需求功能 n_webservice,只作更新﹐獲取﹐傳輸數據功能 一,連接資料庫 ? 1.create transobject ? 2.連接﹕nvo_connect ? 3.斷開﹕nvo_d

pb11.net + webservice + iis6.0 for win2003server 三層系統架構規划

中間層為輕量層

數據庫端處理方式不變

中間層方式及需求功能 n_webservice,只作更新﹐獲取﹐傳輸數據功能
一,連接資料庫
? 1.create transobject
? 2.連接﹕nvo_connect
? 3.斷開﹕nvo_disconnect

二,建立數據源datastore??
? 1.createdastore (string syntax )
? 1.單數據窗口?? (已測試完成通過? )
? 2.嵌套數據窗口 (未作測試)?

三,獲取數據
? 1.多筆數據 retrievefromdastore (datastore ado_store,arg arg[])
? 2.單筆數據 retrievefromsql???? (select * from?? )

四,更新數據 insert delete update
? 1.新增與修改可以同一事務處理
? 2.刪除單獨事務處理
? 3.update(dastore,adwo_store[])?
?
五,傳輸數據(與客戶端)
? 1.取得數據﹕byte[] to blob ado_blob?
? 2.返回數據: blob to byte[] 或xml

客戶端操作方式及需求功能﹕
一,客戶端建立代理 n_webservicepoxy
二,封裝中間層的操作到客戶端soapserver
?? 1.建立 createinstance? ﹐配置webserviceIIS站點 到 ini文件 加密
?? 2.封裝中間層更新﹐獲取﹐傳輸數據功能

三﹐單表可以完全采用 update()? 語句請行資料更新
?? 1.insert
?? 2.update
?? 3.delete
四﹐多表操作方式﹕
?? 1.刪除 (只能具有刪除全部或部分資料﹐采用update()﹐刪除即為永久性刪除)
?? 2.新增 (略)
?? 3.修改 (修改狀態只能新增資料﹐修改非key的值﹐不能產生 delete 語句﹐不能自動將不符合條件的資料刪除)
?? 4.保存 (只針對修改保存)
?? 5.讀取(通過客戶端傳入中間層)
???? 5.1.單表 已測試通過
???? 5.2.多表? 未測試
?
五﹐業務邏輯處理???
?? 1.Select * from? 判斷資料合法性或抓取并顯示符合條件的資料?
?? 2.datastore 批量多筆數據處理??
六﹐程式分為在線與離線模式,建立程式狀態變量?
?? 1.在線
?? 2.離線
?? 3.提供動態連接功能


Blob與bype? 大二進制轉換?
Blob lblb_1
Any a
byte lbyte_array[],lbyte_array2[]
// initialize array
lbyte_array[] = {1,10,100,200,255}
a = lbyte_array
lblb_1 = Blob(a)
lbyte_array2[] = GetByteArray(lblb_1)

@@客戶端 ==》中間層==》數據庫?
取得數據窗口更改資料 (從客戶端)
blob lblb_changes
long ll_rv
ll_rv = dw_employee.GetChanges(lblb_changes)
IF ll_rv = -1 THEN
??????? MessageBox("Error","GetChanges call failed!")
ELSE
??????? iuo_employee.UpdateData(lblb_changes)
END IF

將資料更新到后端數據庫中(中間層更新dbserver)?
// Instance variable:datastore ids_datastore
// Function argument: blob ablb_data
long ll_rv
ids_datastore.SetChanges(ablb_data)
ll_rv = ids_datastore.Update()
IF ll_rv > 0 THEN
??????? COMMIT;
ELSE
??????? ROLLBACK;
END IF
RETURN ll_rv

@@數據庫層==>中間層==》客戶端? GetStateStatus 從數據庫取值? // Instance variables: // datastore ids_datastore // blob blb_data long ll_rv ids_datastore = create datastore ids_datastore.dataobject = "d_emplist" ids_datastore.SetTransObject (SQLCA) ids_datastore.Retrieve() ll_rv = ids_datastore.GetFullState(blb_data) SetFullState 從中間層更新到客戶端 // Global variable:connection myconnect // Instance variable: uo_employee iuo_employee blob lblb_data long ll_rv myconnect.CreateInstance(iuo_employee) iuo_employee.RetrieveData(lblb_data) ll_rv = dw_empdata.SetFullState(lblb_data) IF ll_rv = -1 THEN ??????? MessageBox("Error","SetFullState failed!") END IF

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读