c語言資料庫編程–ODBC

來源:互聯網
上載者:User
文章目錄
  • c語言資料庫編程
c語言資料庫編程 轉載自:http://www.cnblogs.com/nliao/archive/2010/09/09/1822660.html 最近我的導師要求我用c語言讀出access資料庫的資料,我四處尋找資料,終於找到了實現的辦法,那就是odbc api編程。以前做資料庫一直用java和jdbc,要不是用別人封裝好的ado,用的很方便,編程也很簡單。可用c語言做資料庫,以前可是想都沒有想過,甚至懷疑它能不能寫資料庫。在尋找資料的過程中,我請教了幾個c語言高手,他們的一致回覆是c語言做資料庫,似乎不可能,勸我不要費心了。可我的導師告訴我,可以做,而且c語言做資料庫,可以實現的很好。所以,猛查資料,花了將近一天的時間,終於找到了門路。其實,瞭解了內幕,還是蠻簡單的。現將相關的知識拿出來,和各位高手分享,為新手指路,向前輩展示好學之心。

c語言串連資料庫,直接調用odbc api的函數。我們平常用的odbc或者ado之類,都是封裝好了的,一般的編程細節我們是看不到的。尤其在ide裡邊,我們可以直接用拖放的辦法實現資料庫連接和操作。而c語言編程中,一切都要自己動手。

具體說來,資料庫的常用操作主要是由這樣幾個odbc函數完成的:SQLAllocHandle 、SQLConnect、SQLExecute、SQLBindCol、SQLGetData、SQLFetch、SQLDisconnect、SQLEndTran等。一個簡單的資料庫連接例子如下:

 // Allocate An Environment Handle
 SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE,&EnvHandle);
 if (EnvHandle != 0)
  SQLSetEnvAttr(EnvHandle, SQL_ATTR_ODBC_VERSION,(SQLPOINTER) SQL_OV_ODBC3,
                SQL_IS_UINTEGER);

if (EnvHandle != 0)
  SQLAllocHandle(SQL_HANDLE_DBC, EnvHandle,&ConHandle);
 // Connect To The Appropriate Data Source
 if (ConHandle != 0)
 {
  RetCode = SQLConnect(ConHandle, (SQLCHAR *) "DSN-name",SQL_NTS,
                          (SQLCHAR *) "username",SQL_NTS,
     (SQLCHAR *) "password", SQL_NTS);

if (ConHandle != 0 && RetCode == SQL_SUCCESS)
  SQLAllocHandle(SQL_HANDLE_STMT, ConHandle,&StmtHandle);

RetCode=SQLExecDirect(StmtHandle, "SELECT * FROM table-name WHERE ID < 20", SQL_NTS);

while (RetCode != SQL_NO_DATA)
  {
  RetCode = SQLFetch(StmtHandle);
  if(RetCode != SQL_NO_DATA){
  SQLGetData(StmtHandle, 1, SQL_C_ULONG, &id,sizeof(id), NULL);

}

}

RetCode = SQLEndTran(SQL_HANDLE_DBC, ConHandle,SQL_COMMIT);
 
 /**
  * TERMINATION
  **/
 
 // Free The SQL Statement Handle
 if (StmtHandle != 0)
 SQLFreeHandle(SQL_HANDLE_STMT, StmtHandle);
 // Terminate The Data Source Connection
 if (ConHandle != 0)
 RetCode = SQLDisconnect(ConHandle);
 // Free The Connection Handle
 if (ConHandle != 0)
 SQLFreeHandle(SQL_HANDLE_DBC, ConHandle);
 // Free The Environment Handle
 if (EnvHandle != 0)
 SQLFreeHandle(SQL_HANDLE_ENV, EnvHandle);

odbc api編程的最權威的書籍是微軟的《odbc程式員手冊》,網上有中文版可以下載。

通過閱讀odbc資料和編程實踐,我深刻的體會到,c語言功能實在太強大了,可以說無所不能。要想成為一位c語言高手,不是很簡單的事情,是要吃一點苦頭的。記得我的導師給我說,要想成為電腦高手,首先玩轉c語言。

看來我還要努力啊!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.