1.類定義
/// 表字段與umx項(包括引數和行集列)對映項定義
struct cfield2umxitem ;
/// 表操作helper,適用於基於umx協議時服務端資料庫處理(查詢,新增,修改),可簡化**
class cdbhelper
cdbhelper(cfield2umxitem *vmi,unsigned int size)
void attach(cfield2umxitem *vmi,unsigned int size)
/// 把umx訊息與表繫結,用於新增,修改資料
int bind(itablehandler *th,cmsg *msg);
///< 生成輔助生成select欄位的字串,用於從協議項(如引數名稱)生成查詢語句
int genfldstring(const char *alias,string &ret_val,char *fld,...) ;
};2.使用示例:
///< 商品資訊表字段與協議資料項對映表
cfield2umxitem goods_para_map= ,///**商gln
,/// 商品條碼
,/// **商產品**
,/// 商品名稱(中文)
};int test() {
cdbhelper db_helper;
///< 與對映表關聯
db_helper.attach(goods_para_map,sizeof(goods_para_map)/sizeof(goods_para_map[0]));
///< 用法1: 協議引數繫結到表字段(手動)
itablehandler* th = cbasepluginmodule::db_helper_->newtablehandler(pdbor, "tb_3350");
auto_pointer_nodeclare(itablehandler,th);
th->bindfield(db_helper.findfield("gln"),msg,"gln");
th->bindfield(db_helper.findfield("gtin"),msg,"gtin");
th->bindfield(db_helper.findfield("pcode"),msg,"pcode");
th->bindfield(db_helper.findfield("name"),msg,"name");
///< 用法2:自動與訊息的所有引數繫結
db_helper.bind(th,msg);
/// 對於不在umx訊息中的列或者需要對引數進行處理的,可手動繫結
///< 用法3: 根據指定的協議項名稱生成查詢的select欄位列表.
string fld_str;
int ret = db_helper.genfldstring(0,fld_str,"rstatus","status","regtime",0);
string sql;
sql = logmsg("select %s from tb_3350",fld_str.c_str());
return 0;
3.最簡**示例
以下是處理商品註冊協議的函式:
服務端驗證的問題處理
在使用服務端驗證的時候,因為各種需求的不同,可以用作一下的幾個處理。使用sql語句的驗證 就是在寫sql語句的時候,進行使用者名稱和密碼的匹配查詢。如 where name and password 在客戶端請求時,在servlet層獲取使用者名稱和密碼引數。並呼叫該方法,如果返回有值,則驗證通過。...
tcp協議服務端實現併發
socket 在 tcp 協議下通訊 客戶端 import socket 建立客戶端tcp協議通訊 c socket.socket 與指定服務端握手 c.connect 127.0.0.1 8080 通訊迴圈 while true 向服務端傳送資訊 msg input if len msg 0 co...
71 基於UDP協議的服務端
server.py 1 可靠性 tcp協議是可靠協議 對方必須恢復乙個ack確認訊息,才會將自己的這端端資料從記憶體中刪除 udp協議不可靠 2 有無鏈結 tcp有鏈結,udp無連線 3 傳輸資料的效率 udp更高 4 粘包問題 udp協議稱之為資料報協議,每次傳送都是乙個完整的資料報,乙個傳送唯一...