日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TCP中间件_个人方案

發布時間:2023/12/20 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TCP中间件_个人方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

按照功能分類,不管是直接的 insert/delete/update/select語句 還是 調用存儲過程,基本的功能 就是?增刪改查。又分為兩大類: (1)、查詢(會返回結果集的),(2)、非查詢(不會返回結果集的,只會返回生效的記錄的條數)。

?

注意(1): 雙方 傳送字符串的時候,約定好 使用哪種字符集(ansi/utf8/gdk/...),窄/寬/變長 字符集...

注意(2): 約定-->字符串 都使用 2個'\0' 最為結尾。

ZC: unicode 算不算一種字符集?還是 一類字符集的統稱?

?

1、

客戶端

(1)、int32(信息總長)

(2)、int32(信息的Idx)

(3)、int32(語句類型,insert/delete/update/select/存儲過程)

(4)、字符串(sql語句)

?

2、

服務端

(1)、int32(信息總長)

(2)、int32(信息的Idx)

(3)、int32([客戶端請求的]語句類型,insert/delete/update/select/存儲過程)

?

2.1、沒有結果集

(4)、int32(生效的記錄的條數)

2.2、有結果集

(4)、int32(返回的結果集中列的數量)

(5)、int32(返回的結果集中行的數量,即返回了幾條記錄)

(6)、[所有的 列名的信息]

  (6.1)、int32(第?列的 列名信息的長度)

  (6.2)、[第?列的?列名信息]

    (6.2.1)、int32(指明該列的數據類型,int/float/字符串/...)

    (6.2.2)、字符串(列名)

(7)、[結果集中 第?條 記錄的信息]

  (7.1)、int32(該條記錄中?第?列的 數據的長度)

  (7.2)、byte數組(該條記錄中?第?列的 數據。根據 6.1和7.1 判斷數據的類型和值)

?

3、待考慮問題

  3.1、客戶端 發送批量sql語句

    3.1.1、批量的?增/刪/改 語句 ==> 這個比較好處理 同(2.1)的處理方式一樣就行

    3.1.2、批量的?查 語句 ==> 這個貌似沒法弄吧?是要弄一個臨時表的效果,然后返回一個最終的結果集?? --> 不知道實際情況下,會不會有這種需求?

    3.1.3、批量的?增/刪/改/查 混在一起 --->?不知道實際情況下,會不會有這種需求?

3.2、

?

4、

解析返回的 結果集

偽代碼:

Txxx

{

  byte[] msg; // 存放 服務端傳回來的?查詢的 所有信息

  int iColumnNum; // 結果集中 共有幾列

  int iRowNum; // 結果集中 共有幾條記錄

  List<String> listColumn; // 存放?結果集 里面的所有列的列名

  List<int> listColumnType; // 所有的列的數據類型

  int[][] offset; // 第i行第j列的信息 在 msg中的偏移,也就是 指向(7.1)

?

  // ... 用于 得到?第i行第j列的信息 的各種 函數

  bool GetValueInt_byRowCol(int _iRow, _iCol, int* _piOut)

  {

    // 函數 成功 則返回 true,失敗 則返回 false

    // 若?_iRow行 _iCol列 的數據是 int型,則 *_piOut 存放 *((int*)(&msg[offset[_iRow][_iCol]])),函數返回 true;否則函數返回false

  }

  bool GetValuePtr_byRowCol(int _iRow, _iCol, char** _ppcOut)

  {

    // 函數 成功 則返回 true,失敗 則返回 false

    // 若?_iRow行 _iCol列 的數據是 字符串類型,則 *_ppcOut 存放 (char*)(&msg[offset[_iRow][_iCol]]),函數返回 true;否則函數返回false

  }

}

?

5、

?

轉載于:https://www.cnblogs.com/javaskill/p/5370271.html

總結

以上是生活随笔為你收集整理的TCP中间件_个人方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。