精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Sybase批量操作的實現

數據庫
在Sybase的使用過程中,經常會遇到批量操作的問題,下文對Sybase批量操作的實現作了詳盡的闡述,供您參考學習之用。

Sybase批量操作應該如何實現呢?下面就為您詳細介紹Sybase批量操作的事項方法,如果您對Sybase批量操作方面感興趣的話,不妨一看。

一、前言

在項目研發過程中,需要開發一個Sybase批量操作的動態鏈接庫(DLL),以前的實現主要是程序中直接調用bcp.exe,這種方式由應用程序創建子進程,不好控制批量操作過程,失敗跟蹤難度比較大,因此想利用bcp.exe調用的函數來實現操作過程。本人通過分析bcp.exe程序,得到了批量操作的DB LIBRARY API函數,再查閱API函數的資料得以實現該動態鏈接庫。

二、實現

批量操作動態鏈接庫只實現了一個輸出函數, 應用程序通過動態加載DLL,再獲取函數地址,便可調用函數實現Sybase批量操作。

輸出函數定義如下:

  1. LIBBCP_API BOOL BCP_Transfer_2(const char *task, const char *step, const char *config, long *copiedrow);  

在動態鏈接庫中定義了兩個類:CInteriorGlobal和CSYBBCP。CInteriorGlobal完成全局的初始化操作,CSYBBCP實現數據庫的批量操作。
在調用Sybase數據庫的DB LIBRARY API函數進行數據庫的相關操作時,首先需要調用dbsetversion函數設置版本信息,這個函數只能調用一次,如果再次調用則會報錯。而類CSYBBCP在BCP_Transfer_2函數中動態創建和釋放,如果在CSYBBCP中直接調用dbsetversion會導致多次調用出錯。因此需要采用一種機制讓dbsetversion只能調用一次,這里使用了設計模式中的SingleTom模式,SingleTom模式就是確保實例唯一,本人利用該類僅做一次實例化操作來初始化Sybase客戶端版本信息。

下面是CInteriorGlobal的定義:

  1. class CInteriorGlobal  
  2. {  
  3. public:  
  4. static CInteriorGlobal *Instance();  
  5. private:  
  6. CInteriorGlobal();  
  7. private:  
  8. static CInteriorGlobal *_instance;  
  9. };  

CInteriorGlobal的實現,在構造函數中設置版本信息:

  1. CInteriorGlobal::CInteriorGlobal()  
  2. {  
  3. dbsetversion(DBVERSION_100);  
  4. }  
  5. CInteriorGlobal    *CInteriorGlobal::_instance  = 0;  
  6. CInteriorGlobal * CInteriorGlobal::Instance()  
  7. {  
  8. if(0 == _instance)  
  9. _instance = new CInteriorGlobal;  
  10. return _instance;  
  11. }  

為了完成批量操作,定義類CSYBBCP,具體定義如下:

  1. class CSYBBCP  
  2. {  
  3. public:  
  4. CSYBBCP();  
  5. ~CSYBBCP();  
  6. BOOL        DoConnect(int taskindex, int stepindex, char *server, char *database, char *username,  
  7. char *password, char *charset, char *language);  
  8. BOOL        DoQuery(char *sql, char **buf, int *rowcount, int *fieldcount);  
  9. BOOL        DoUpdate(char *sql, char *database = NULL);  
  10. BOOL        BCP_Connect(int taskindex, int stepindex, char *server, char *database,  
  11. char *username, char *password, char *charset, char *language);  
  12. BOOL        BCP_Transfer_db(char *sql, char *fldterminator, char *rowterminator, int direction,  
  13. char *datafile, char *errfile, long *copiedrow);  
  14. private:  
  15. BOOL        m_isbcpout;  
  16. int         m_stepindex;  
  17. int         m_taskindex;  
  18. char        m_viewname[MAX_STRING_NUM];  
  19. char        m_database[MAX_STRING_NUM];  
  20. DBPROCESS  *m_dbproc;  
  21. private:  
  22. int         GetTableFieldNums(char *table);  
  23. BOOL        DoDisconnect();  
  24. };  

在類CSYBBCP中,主要是函數BCP_Transfer_db進行數據庫大批量數據的導入和導出,要完成數據傳輸操作,需要如下幾個步驟:

  1. // 初始化:指定表明和數據文件  
  2. if(bcp_init(m_dbproc, tablename, datafile, NULL, direction) == FAIL)  
  3. {  
  4. return FALSE;  
  5. }  
  6. // 設置批量操作的控制參數,這里設置的每批記錄數  
  7. if(bcp_control(m_dbproc, BCPBATCH, (DBINT) 1000) == FAIL)  
  8. {  
  9. return FALSE;  
  10. }  
  11. // 設置列數  
  12. if(bcp_columns(m_dbproc, cCols) == FAIL)  
  13. {  
  14. return FALSE;  
  15. }  
  16. // 設置列格式  
  17. for(ii = 1; ii < cCols; ii++)  
  18. {  
  19. if(bcp_colfmt(m_dbproc, ii, SYBCHAR, 0, -1, (UINT8 *) fldterminator, _strlen(fldterminator), ii) == FAIL)  
  20. {  
  21. return FALSE;  
  22. }  
  23. }  
  24. if(bcp_colfmt(m_dbproc, ii, SYBCHAR, 0, -1, (UINT8 *) rowterminator, _strlen(rowterminator), ii) == FAIL)  
  25. {  
  26. return FALSE;  
  27. }  
  28. // 執行批量操作  
  29. while(bcp_exec(m_dbproc, & cRows) == FAIL)  
  30. {  
  31. return FALSE;  
  32. }  
  33. // 批量操作結束  
  34. retcode = bcp_done(m_dbproc);  

在使用Sybase12.5客戶端之前,程序未調用bcp_control函數,在執行bcp_exec函數時不是使用while,而是使用if判斷,代碼如下:

  1. if(bcp_exec(m_dbproc, & cRows) == FAIL)  
  2. {  
  3. return FALSE;  
  4. }  

程序能正常完成功能,當使用Sybase12.5客戶端后,在執行時發現程序突然退出,異常處理也未能記錄日志,后跟蹤發現程序是在執行bcp_exec時退出,但是未能查出原因,咨詢Sybase公司技術人員,也沒能解決問題。后來在一次測試中偶然發現有時能導入數據,于是測試數據文件在什么情況下能導入,實驗其臨界點,多次測試后發現文件1000條記錄為臨界點,超過則出現問題。于是本人在程序中調用bcp_control函數,設置批量記錄為1000,如果數據文件記錄多于1000,則需要bcp_exec執行多次才能完成,所以采用while,而不是if,這樣問題解決。

三、結束

在上面的論述中,還僅僅涉及DB LIBRARY,對于Sybase客戶端編程,還有CT LIBRARY方式,目前CT已經支持導出,但不支持導入。

 


【編輯推薦】

設置SYBASE用戶口令為空

深入探究SYBASE數據庫日志

Sybase日期函數應用示例

Sybase建立索引的原則

Sybase分頁顯示存儲過程

責任編輯:段燃 來源: 互聯網
相關推薦

2024-10-11 12:00:00

Python批量文件操作

2010-11-29 09:12:46

sybase分頁存儲過

2010-11-29 13:28:55

sybase自動備份

2010-10-28 10:37:54

Oracle批量賦權

2010-11-24 11:13:07

MySQL批量導入

2009-09-27 14:33:01

Hibernate批量

2023-11-03 15:15:50

SQL數據庫

2013-05-02 10:03:59

網絡管理網絡設備交換機

2010-11-29 10:22:46

Sybase建立索引

2010-11-29 13:50:38

Sybase清除日志

2022-07-27 10:39:27

Python打包工具

2009-11-24 14:45:08

PHP批量上傳圖片

2023-12-18 16:07:15

2010-05-27 14:35:25

MySQL批量導入

2013-09-22 11:37:32

SAP

2010-11-29 13:09:07

sybase系統默認字

2010-11-03 10:26:22

DB2存儲過程

2011-10-31 09:35:50

2011-09-01 14:44:27

ubuntu

2025-05-23 07:05:03

點贊
收藏

51CTO技術棧公眾號

青青青国产在线观看| 国产精品一区二区久久精品| 国产免费黄色小视频| 丰满人妻一区二区三区无码av| 国产成人精品999在线观看| 黑人巨大精品欧美一区二区免费| 91热精品视频| 久久r这里只有精品| 影音先锋欧美激情| 色偷偷88欧美精品久久久| 日韩欧美亚洲在线| av中文字幕免费在线观看| 精品国产精品| 欧美午夜丰满在线18影院| 96sao精品视频在线观看| 久久久久久久久久91| 亚洲春色h网| 欧美群妇大交群中文字幕| 超级碰在线观看| 嫩草在线播放| 国产精品一卡二| 久久成人av网站| 国产精品熟妇一区二区三区四区| 嫩草香蕉在线91一二三区| 国产成人在线观看| 国产91久久婷婷一区二区| 男人网站在线观看| 久久精品国产福利| 国产精品久久久久aaaa樱花| 国产成人看片| 中文区中文字幕免费看| 精品久久久中文字幕| 91麻豆精品国产91久久久久 | 久久尤物电影视频在线观看| 性欧美暴力猛交69hd| 亚洲午夜精品久久久久久高潮| 中文字幕人成乱码在线观看| 亚洲丝袜制服诱惑| 欧美高清视频一区| 波多野结衣 久久| 午夜久久tv| 中文字幕久热精品视频在线| 熟妇人妻久久中文字幕| 最新亚洲国产| 91黄色免费看| 黄色片网址在线观看| 蜜桃av在线免费观看| 91亚洲资源网| 成人动漫视频在线观看免费| 影音先锋黄色网址| 天堂蜜桃91精品| 91黄色8090| 青娱乐av在线| 91成人国产| 色妞在线综合亚洲欧美| 日韩人妻无码精品综合区| 在线精品自拍| 欧美一级黄色片| 波多野结衣乳巨码无在线| 激情在线视频| 久久亚洲一区二区三区四区| 国产精品一区二区三区免费视频| 欧美三级 欧美一级| 欧美成人milf| 少妇av一区二区三区| 亚洲av成人无码久久精品 | 国产福利一区二区精品秒拍| 91精品婷婷国产综合久久| 午夜免费一区二区| 精品日本视频| 欧美亚洲一区二区在线观看| 欧美黄网站在线观看| 日本蜜桃在线观看视频| 国产精品久久久一本精品| 九9re精品视频在线观看re6| 人妻夜夜爽天天爽| 亚洲一区视频| 性色av香蕉一区二区| 久久久久久久国产精品毛片| 午夜电影亚洲| 日韩视频免费观看| 粉嫩精品久久99综合一区| 美女精品久久| 日本高清不卡在线观看| 成人精品视频一区二区| 97精品国产综合久久久动漫日韩 | 欧美国产美女| 日韩av中文字幕在线播放| 午夜一级免费视频| 日韩激情精品| 亚洲精品电影网| 成年人在线观看av| 欧美一级精品片在线看| 久久精品国产久精国产一老狼| 久久无码人妻精品一区二区三区| 偷拍自拍亚洲| 日韩欧美亚洲国产另类 | 欧美.www| 丝袜亚洲欧美日韩综合| 国产一二三四区| 亚洲欧洲午夜| 国产精品美女999| 国产wwwwwww| gogogo免费视频观看亚洲一| 国产精品国产精品国产专区不卡| 亚洲一二区视频| 国产在线看一区| 亚洲一区中文字幕在线观看| 天天操天天干视频| 精品一区二区在线观看| 国产精品国产一区二区| 国模吧精品人体gogo| 亚洲人成网站色在线观看| 免费一级特黄毛片| 高清毛片在线观看| 欧美视频精品在线| 国产极品一区二区| 999视频精品| 亚洲91精品在线观看| 亚洲在线免费观看视频| 成人激情免费网站| 茄子视频成人在线观看| 国产小视频在线| 亚洲永久精品大片| www.九色.com| 精品福利在线| 91精品国产全国免费观看| 中文字幕在线观看的网站| 88国产精品视频一区二区三区| 久久精品一区中文字幕| 成年人视频在线免费看| 精彩视频一区二区| 欧美裸体网站| av中文在线资源库| 日韩一区二区影院| 午夜性福利视频| 成人羞羞网站入口| 欧美精品电影在线| 91国产免费视频| 国产欧美一区二区三区鸳鸯浴| 中文字幕中文字幕99| 在线看片福利| 亚洲国产精品电影| 久久久久久久穴| 日韩欧美一区二区三区在线视频| 日韩亚洲成人av在线| 国产成人无码一区二区在线播放| 麻豆一区二区三区| 欧美亚洲免费高清在线观看| heyzo高清在线| 欧美岛国在线观看| 欧美狂猛xxxxx乱大交3| 久久香蕉国产| 国产精品狼人色视频一区| 国产欧美一区二区三区视频在线观看| 国产不卡一区视频| 欧美一级片免费观看| 欧美私密网站| 亚洲福利视频久久| 麻豆一区在线观看| 麻豆91在线播放| 婷婷亚洲婷婷综合色香五月| 国产精品粉嫩| 亚洲人成电影网| 日韩不卡视频在线| 91日韩一区二区三区| 男女猛烈激情xx00免费视频| 亚洲伊人影院| 高清欧美电影在线| 四虎精品一区二区三区| 婷婷夜色潮精品综合在线| 波多野结衣办公室双飞| 亚洲无线视频| 国产在线精品二区| 亚洲性色av| 亚洲欧美一区二区三区四区| 台湾佬中文在线| 国产网红主播福利一区二区| 国产亚洲黄色片| 日本久久久久| 九九九热精品免费视频观看网站| 亚洲天堂男人av| 国产欧美精品一区二区色综合朱莉 | 免费在线看黄色片| julia中文字幕一区二区99在线| 在线观看日韩欧美| 97人妻精品一区二区三区动漫 | 精品人妻互换一区二区三区| 午夜国产精品视频| 国产精品丝袜久久久久久不卡| 熟妇人妻av无码一区二区三区| 国产精品成人网| 日韩视频在线观看一区二区三区| 精品高清久久| 亚洲伊人一本大道中文字幕| 成人免费视频| 欧美一级高清片在线观看| 日韩乱码在线观看| 欧美极品美女视频| 国产老头和老头xxxx×| 国产精品一页| 亚洲一区二区三区欧美| 亚洲免费一区三区| 日韩av免费在线| 男人天堂手机在线| 精品国产一区二区精华| 全网免费在线播放视频入口 | 国产高清视频色在线www| 亚洲网址你懂得| 国产成人精品av在线观| 欧美日韩亚洲一区二区| 三级黄色免费观看| 99re亚洲国产精品| 欧洲黄色一级视频| 99久久久久国产精品| 久久精品丝袜高跟鞋| 一区二区三区| 日本精品久久久| 91中文在线| 一本一道久久a久久精品逆3p| www.久久视频| 亚洲在线视频网站| 超碰人人人人人人人| 韩国v欧美v亚洲v日本v| 99久re热视频精品98| 加勒比久久高清| 国产精品高潮呻吟久久av黑人| 日韩a在线观看| 色婷婷亚洲一区二区三区| 9999热视频| 国产喷白浆一区二区三区| 午夜宅男在线视频| 香蕉国产精品偷在线观看不卡| 欧美二区三区在线| 亚洲一区二区免费在线观看| 国产欧美日韩专区发布| 亚洲欧洲高清| 国内精品一区二区三区| 黄色在线观看网站| 中文字幕日韩在线视频| 国产资源在线看| 亚洲国产黄色片| 国产suv精品一区二区69| 欧美三区在线观看| 日本中文字幕免费在线观看| 国产精品青草综合久久久久99| 韩国一区二区在线播放| 另类小说综合欧美亚洲| 欧美精品无码一区二区三区| 亚洲精品精选| 欧美极品少妇无套实战| 国产精品一区二区av交换| 国产精品爽黄69天堂a| 人人视频精品| 国产91在线播放| 免费看av不卡| 国产成人a亚洲精品| 亚洲女同av| 国产精品xxx视频| 3d欧美精品动漫xxxx无尽| 日韩av第一页| 欧美日韩五码| 国产精品激情自拍| 懂色aⅴ精品一区二区三区| 国产精品极品美女粉嫩高清在线| 久久香蕉av| 久久久久久香蕉网| 国产污视频在线播放| 午夜精品理论片| av手机在线观看| 欧美国产日韩一区二区| 婷婷免费在线视频| 在线播放日韩精品| 国产在线资源| 精品国产一区二区三区久久久| 少妇高潮久久久| 欧美日韩高清在线播放| 成人毛片18女人毛片| 色婷婷综合久久| 久久久久精彩视频| 91福利在线导航| 一级黄色免费看| 欧美二区三区91| 国产三级按摩推拿按摩| 亚洲精品一区二区三区影院| 国产一区二区三区中文字幕| 91精品国产入口| 婷婷久久久久久| 亚洲色图17p| 久久99精品久久久久久野外| 欧美高清在线播放| 1区2区3区在线观看| 亚洲人成亚洲人成在线观看| 亚洲成a人v欧美综合天堂麻豆| 亚洲人成伊人成综合网久久久| 天天操天天操天天操| 亚洲女人被黑人巨大进入| 最新电影电视剧在线观看免费观看| 亚洲男人天堂视频| 欧美成年黄网站色视频| 中文字幕精品av| 国产午夜在线视频| 美女性感视频久久久| 欧美三级黄网| 欧美精品久久久久久久久| 欧美少妇网站| 成人黄色在线观看| 女同一区二区三区| 国产精品美女在线播放| 亚洲精品人人| 中文字幕22页| 99久久er热在这里只有精品15 | 精品电影一区| 国产 日韩 欧美在线| 亚洲欧洲日本mm| 亚洲免费黄色网| 99re视频这里只有精品| 日本一级片免费| 欧美性猛交xxxx乱大交极品| 99久久久国产精品无码免费 | 在线免费看毛片| 亚洲成人激情在线| 免费观看黄色av| www.日韩.com| 肉色欧美久久久久久久免费看| 日本成人精品在线| 视频欧美精品| 国产午夜精品一区| 亚洲国产日韩欧美在线| 人妻丰满熟妇av无码区app| 国产精品夜夜爽| 素人fc2av清纯18岁| 成人免费视频在线观看| 狠狠狠狠狠狠狠| 51精品久久久久久久蜜臀| 人妻偷人精品一区二区三区| 欧美成人激情视频免费观看| 成人在线免费电影网站| 欧美激情专区| 免费成人结看片| 国产人妻人伦精品| 日本在线不卡视频一二三区| 国产ts在线观看| 中日韩免费视频中文字幕| 精品无码久久久久| 欧美一二三四在线| av播放在线观看| 欧美一区第一页| 视频免费一区二区| 亚洲欧美久久久久一区二区三区| 1024精品久久久久久久久| 天天色综合天天色| 国产婷婷一区二区| 麻豆亚洲av熟女国产一区二 | 日韩一区免费观看| 亚洲欧美网站| 黄色短视频在线观看| 午夜视频一区在线观看| 青青艹在线观看| 国产亚洲精品va在线观看| 澳门成人av网| 日本精品一区二区三区高清 久久| 最新国产精品久久久| 国产农村妇女精品久久| 综合久久给合久久狠狠狠97色| 国产精品7777777| 欧美精品一区二区三区四区 | 搡老女人一区二区三区视频tv| 91精品久久久久久粉嫩| 亚洲一区久久久| 红桃视频欧美| 国产chinese中国hdxxxx| 婷婷久久综合九色国产成人| 亚洲区小说区图片区| 欧美亚洲国产视频小说| 久久99高清| 中文字幕国产免费| 亚洲乱码国产乱码精品精可以看| 一级成人黄色片| 国产一区二区日韩| 亚洲一级少妇| 日韩一区二区电影在线观看| 激情图片小说一区| 久久这里只有精品免费| 亚洲男人天堂网站| 日韩电影精品| 国产真实老熟女无套内射| 99精品桃花视频在线观看| 青娱乐在线免费视频| 久久91精品国产| 欧美三级美国一级| www.黄色网| 欧美日韩电影一区| 国产v日韩v欧美v| 成年人免费观看的视频| 91网站在线播放| 国产强被迫伦姧在线观看无码| 美女福利视频一区| 国产精品一区二区99| www.美色吧.com|