C語言連接達夢數據庫


使用C語言在Windows使用ODBC連接達夢數據庫

要求:在Windows上配置好ODBC

編譯工具:devc++

在dev工具中找到工具à編譯選項à編譯器

在框中填寫-lodbc32

 

#include <stdio.h>

#include <windows.h>

#include <sql.h>

#include <sqltypes.h>

#include <sqlext.h>

 

/* 檢測返回代碼是否為成功標志,當為成功標志返回 TRUE,否則返回 FALSE */

#define RC_SUCCESSFUL(rc) ((rc) == SQL_SUCCESS || (rc) == SQL_SUCCESS_WITH_INFO)

/* 檢測返回代碼是否為失敗標志,當為失敗標志返回 TRUE,否則返回 FALSE */

#define RC_NOTSUCCESSFUL(rc) (!(RC_SUCCESSFUL(rc)))

 

HENV henv;/* 環境句柄 */

HDBC hdbc;/* 連接句柄 */

HSTMT hsmt;/* 語句句柄 */

SQLRETURN sret; /* 返回代碼 */

 

int main(void)

{

/* 申請一個環境句柄 */

SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);

/* 設置環境句柄的 ODBC 版本 */

SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3,

SQL_IS_INTEGER);

/* 申請一個連接句柄 */

SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);

 

sret = SQLConnect(hdbc, (SQLCHAR *)"DM8_ODBC", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS);

if (RC_NOTSUCCESSFUL(sret)) {

/* 連接數據源失敗! */

printf("odbc: fail to connect to server!\n");

SQLFreeHandle(SQL_HANDLE_DBC, hdbc);

SQLFreeHandle(SQL_HANDLE_ENV, henv);

exit(0);

}

printf("odbc: connect to server success!\n");

    SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hsmt);

//    插入數據

    sret = SQLExecDirect(hsmt, (SQLCHAR *) "insert into SYSDBA.T1 VALUES(1,'A','K','G');", SQL_NTS);

if (RC_NOTSUCCESSFUL(sret)) {

printf("odbc: insert fail\n");

}

else

    printf("odbc: insert success\n");

 

/* 斷開與數據源之間的連接 */

SQLDisconnect(hdbc);

/* 釋放連接句柄 */

SQLFreeHandle(SQL_HANDLE_DBC, hdbc);

/* 釋放環境句柄 */

SQLFreeHandle(SQL_HANDLE_ENV, henv);

return 0;

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM