• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    ACCESS中使用GUID全局唯一標識符的自動唯一編號[同步復制ID]之解

    來源:懂視網 責編:小采 時間:2020-11-09 07:19:47
    文檔

    ACCESS中使用GUID全局唯一標識符的自動唯一編號[同步復制ID]之解

    ACCESS中使用GUID全局唯一標識符的自動唯一編號[同步復制ID]之解:背景: 這段時間臨時為一個旅游類網站制作一些網站程序。數據表的情況大致如下: 圖1 數據庫表的大致情況 由于是Access數據庫,之前有兩個數據表:TC_TourCompany和TC_SubDetail,前者是旅行社名錄相關資料(為了方便描述,暫且叫總公司表),后者是下屬營業
    推薦度:
    導讀ACCESS中使用GUID全局唯一標識符的自動唯一編號[同步復制ID]之解:背景: 這段時間臨時為一個旅游類網站制作一些網站程序。數據表的情況大致如下: 圖1 數據庫表的大致情況 由于是Access數據庫,之前有兩個數據表:TC_TourCompany和TC_SubDetail,前者是旅行社名錄相關資料(為了方便描述,暫且叫總公司表),后者是下屬營業

    背景: 這段時間臨時為一個旅游類網站制作一些網站程序。數據表的情況大致如下: 圖1 數據庫表的大致情況 由于是Access數據庫,之前有兩個數據表:TC_TourCompany和TC_SubDetail,前者是旅行社名錄相關資料(為了方便描述,暫且叫總公司表),后者是下屬營業

    背景:

    這段時間臨時為一個旅游類網站制作一些網站程序。數據表的情況大致如下: 圖1 數據庫表的大致情況 由于是Access數據庫,之前有兩個數據表:TC_TourCompany和TC_SubDetail,前者是旅行社名錄相關資料(為了方便描述,暫且叫“總公司表”),后者是下屬營業部(如果有的話)的相關資料(為方便描述,暫且叫“子公司表”)。

    由于業務需要,想將之擴展為適用于所有“公司類”(比如酒店、景區、景點、漂流公司、娛樂餐飲、機票代理、交通公司等)的數據表,由于酒店、餐飲娛樂、機票代理等公司都有可能有分部或分公司,所以表的數據結構是差不多的。所以,我們可以通用這樣的數據表設計來簡化今后的程序開發。當然,我們需要在數據表中新增一列,用于描述公司的類型是旅行社、酒店、景區或是娛樂餐飲類公司等。不在本文的敘述范圍,按下不表。

    為了方便今后的分類搜索查詢,確保公司(包括子公司)的唯一性,所以,我想在上述兩個表中增加一列,我把列名叫做GUID。它的每條記錄都是唯一不重復的值,類似:{9E4038C8-E965-45B1-BDE1-9F06E6B280A3},這有點象.Net中的System.Guid.NewGuid()生成的值,并用大括號{}包含起來。

    做法: 如何在已有數據庫表記錄的情況下自動生成每一條記錄的這些值呢?

    一開始,我走了點彎路。在新增GUID列時,我選擇了此列的數據類型為“數字”并在下面常規選項卡中“字段大小”中選擇了“同步復制 ID”,索引中選擇了“有(無重復)”。本以為這樣保存結構之后就萬事大吉,最終打開表的所有記錄時發現,GUID列完全為空,沒有任何值!于是,我想了一些辦法去插入GUID唯一值。方案之一是在ACCESS中使用SQL語句更新,后來發現此路不通。方案之二就是使用ADO.net編程方式更新表記錄,工作量也不小。

    有沒有更好的辦法呢?一個偶爾的想法讓我找到了更快更好的解決辦法,那就是在設計視圖中建立GUID列時,數據類型選擇自動編號而不是數字!同時,在下面常規選項卡中“字段大小”中選擇了“同步復制 ID”,索引中選擇了“有(無重復)”。

    如下圖: 圖2 給總公司名錄表(TC_TourCompany表)增加GUID列

    圖3 給總公司表(TC_TourCompany表)增加GUID列后自動生成GUID記錄值 圖4 給分公司(分部)TC_SubDetail表增加GUID列

    圖5 給分公司(分部)TC_SubDetail表增加GUID列后自動生成GUID記錄值

    以后新增記錄時會發生什么?經測試發現,ACCESS會自動搞定生成GUID記錄值的問題。OK,完美!

    更多的話: 從 Access 生成 SQL 語句時,遇到了 Guid 查詢的問題,在 SQL Server 中使用的字符串形式,不能查詢出任何數據。

    SELECT * FROM tableName WHERE [GUID]='12345678-90AB-CDEF-1234-567890ABCDEF'

    如果條件字符串所引用的列為 GUID 類型,那么該條件表達式使用的語法稍微有所不同: WHERE [GUID] = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}} 請確保包含如上所示的嵌套大括號和連字號。 需要注意的是,嵌入大括號的方法只用于 Where 語句,在 Insert 語句中還是要使用單引號,否則將產生 MALFORMED GUID in query 的錯誤。

    更多參考: ASP.NET開發經驗(3) --- 使用 GUID 值來作為數據庫行標識 http://blog.joycode.com/moslem/archive/2004/03/23/16930.aspx

    其他: 導出/打印Access數據庫的結構 http://blog.csdn.net/johnsuna/archive/2008/05/05/2393664.aspx

    附錄:

    Access數據類型與.net OleDbType枚舉類型的對應

    最常見的數據類型映射列表

    訪問類型名稱 數據庫數據類型 OLEDB 類型 .NET 框架類型 成員名稱
    文本 VarWChar DBTYPE _ WSTR System.String OleDbType.VarWChar
    備忘錄 LongVarWCha R DBTYPE _ WSTR System.String OleDbType.LongVarWChar
    字節數: UnsignedTinyInt DBTYPE _ UI 1 System.Byte OleDbType.UnsignedTinyInt
    是/否 Boolean DBTYPE_BOOL System.Boolean OleDbType.Boolean
    日期 / 時間 DateTime DBTYPE _ DATE System.DateTime OleDbType.date
    貨幣 十進制 DBTYPE_NUMERIC System.Decimal OleDbType.numeric
    十進制數: 十進制 DBTYPE_NUMERIC System.Decimal OleDbType.numeric
    雙精度數字: 雙精度數字 DBTYPE_R8 System.Double OleDbType.Double
    自動數字(復制 ID) GUID DBTYPE_GUID System.Guid OleDbType.guid
    復制 (ID) 號: GUID DBTYPE_GUID System.Guid OleDbType.guid
    自動數字(長整型) 整數 DBTYPE_I4 System.Int 32 OleDbType.integer
    數量: (長整型) 整數 DBTYPE_I4 System.Int 32 OleDbType.integer
    OLE 對象 LongVarBinary DBTYPE_BYTES 數組 System.Byte OleDbType.LongVarBinary
    單精度數字: 單精度數字 DBTYPE_R4 System.Single OleDbType.single
    整型數: SmallInt DBTYPE_I2 System.Int 16 OleDbType.SmallInt
    二進制 VarBinary * DBTYPE_BYTES 數組 System.Byte OleDbType.binary
    超鏈接 VarWChar DBTYPE _ WSTR System.String OleDbType.VarWChar

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    ACCESS中使用GUID全局唯一標識符的自動唯一編號[同步復制ID]之解

    ACCESS中使用GUID全局唯一標識符的自動唯一編號[同步復制ID]之解:背景: 這段時間臨時為一個旅游類網站制作一些網站程序。數據表的情況大致如下: 圖1 數據庫表的大致情況 由于是Access數據庫,之前有兩個數據表:TC_TourCompany和TC_SubDetail,前者是旅行社名錄相關資料(為了方便描述,暫且叫總公司表),后者是下屬營業
    推薦度:
    標簽: id 自動 使用
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 精品久久久久久久无码 | 国产成人久久精品区一区二区| 国产精品哟女在线观看| 国产精品久久久久久久久鸭| 日韩精品真人荷官无码| 欧美亚洲日本久久精品| 国产乱子伦精品免费视频| 欧美精品1区2区| 国产成人久久精品区一区二区| 国产精品日本一区二区在线播放 | 人妻AV一区二区三区精品| 久久国产成人精品国产成人亚洲| 国产成人精品曰本亚洲79ren| 精品精品国产高清a毛片牛牛| 国产精品兄妹在线观看麻豆| 日韩精品久久无码人妻中文字幕| 午夜福利麻豆国产精品 | 久久久精品久久久久久| 国产成人精品无人区一区| 亚洲综合精品一二三区在线| 久久精品国产91久久综合麻豆自制| 91精品国产高清久久久久久io | 国产精品第六页| 2023国产精品自拍| 亚洲欧洲国产精品你懂的| 91久久精品无码一区二区毛片| 亚洲欧美日韩精品久久| 国产精品成人啪精品视频免费| 国产精品黄页免费高清在线观看| 国产成人精品久久| 精品国产爽爽AV| 久久www免费人成精品香蕉| 久久久久国产日韩精品网站| 免费精品精品国产欧美在线| 亚洲精品动漫免费二区| 在线观看亚洲精品国产| 亚洲精品国产精品乱码在线观看 | 日韩精品无码免费一区二区三区| 麻豆国产在线精品国偷产拍| 精品一区二区三区免费毛片爱| 国产精品免费高清在线观看|