1. 程式人生 > >C/C++使用ODBC連線MSSQL資料庫

C/C++使用ODBC連線MSSQL資料庫

前幾天在研究C/C++連結MSSQL資料的方法,前前後後在網上找了不少的文章,大多數文章都沒法真正的解決入門新手的全部疑惑,所以在此整理一下自己整個連線資料庫的過程,希望能幫到有需要的人。

一、首先是MSSQL server的安裝,相信有不少同學會卡在這邊。我安裝的是MSSQL server2008 R2,前後也失敗了幾次。總結一下經驗:1、安裝前最好把360,防火牆都關了;2、一定要將SQL server資料庫引擎安裝成功,不然就不算安裝成功;3、如果安裝失敗,需要重新安裝,重新安裝之前需要把之前安裝的MSSQL完全解除安裝,方法如下連結http://wenku.baidu.com/view/569e4823a5e9856a561260a0.html

; 4、重新安裝的時候需要注意的是,將MSSQL server 2008 R2安裝程式所在的路徑新增到windows環境變數中(右擊計算機---》屬性---》高階系統設定---》環境變數---》系統變數(找到path)---》編輯---》新增符號 ; ---》把路徑補上)。差不多這樣就應該把SQL server 2008 R2安裝成功了,具體方法我就部累述了。

二、建立ODBC資料來源。

1、首先是開啟控制面板---》管理工具---》資料來源(ODBC),開啟後如圖所示:



PS:這個是我已經新增好的資料來源。

2、選擇使用者DSN,點選新增,先擇SQL server選項,點完成。注意新增前請將資料庫服務啟動:



3、給資料來源命名,選擇你安裝MSSQL時建立的資料伺服器,點下一步:



PS:這個名稱就是資料來源的名稱,需要記住,後面寫程式的時候要用到。

4、



這裡要選擇使用使用者輸入登入ID和密碼的SQL server驗證,之前選擇第一個一直失敗,不知道什麼原因。登入名為sa,表示管理員身份。這裡的客戶端設定為:



5、關鍵一步,這邊有一個預設資料庫,如果不改變,就是master,這裡要注意:如果不改變,那麼之後程式中的SQL語句操作就是在master資料庫中,除非你的SQL語句中加了use databasename。之前樓主就是遇到了這個問題,後面程式中會提到。



6、下一步,下一步,一直到完成。OK啦。

三、C/C++程式操作資料庫。

終於到了最後一步了,不過樓主在這邊也卡了很久(網上很多程式都不全,而且也米什麼解釋,蛋疼)。

在VS2010中建立Win32控制檯應用程式專案,在裡面新建一個.cpp檔案(就是正常的寫程式碼流程)。然後需要注意的是,我們要將檔案的專案屬性---》常規---》字符集改成是未設定,預設應該是使用Unicode字符集。





下面貼上程式碼:

#include <stdio.h>    
#include <string.h>    
#include <windows.h>    
#include <sql.h>   
#include <sqlext.h>    
#include <sqltypes.h>    
#include <odbcss.h>
#define MAXBUFLEN 255
SQLHENV henv = SQL_NULL_HENV;    
SQLHDBC hdbc1 = SQL_NULL_HDBC;    
SQLHSTMT hstmt1 = SQL_NULL_HSTMT;

/*   cpp檔案功能說明: 
1.資料庫操作中的新增,修改,刪除,主要體現在SQL語句上a 
2.採用直接執行方式和引數預編譯執行方式兩種
*/

int main()
{
RETCODE retcode;

UCHAR   szDSN[15] = "MYDB"; //資料來源名稱
UCHAR userID[6] = "sa";//資料庫使用者ID
UCHAR passWORD[29] = "wu57862520";//使用者密碼

//1.連線資料來源  
//1.環境控制代碼   
retcode   =   SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE ,&henv);
retcode   =   SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);
//2.連線控制代碼    
retcode   =   SQLAllocHandle(SQL_HANDLE_DBC,   henv,   &hdbc1);     
retcode   =   SQLConnect(hdbc1,   szDSN,   SQL_NTS,   userID,   SQL_NTS, passWORD,   SQL_NTS);
//判斷連線是否成功   
if   (   (retcode   !=   SQL_SUCCESS)   &&   (retcode   !=   SQL_SUCCESS_WITH_INFO)   )
{
printf("連線失敗!\n");
}
else
{
/*
1.分配一個語句控制代碼(statement handle)    
2.建立SQL語句  
3.執行語句  
4.銷燬語句  
*/ 
retcode   =   SQLAllocHandle(SQL_HANDLE_STMT,   hdbc1,   &hstmt1);
char sql[100] = "insert into test values(22,22)";
/*
這裡需要在資料庫中有test表,要事先建好哦。 
樓主當時就是卡在這裡,因為我的預設資料是master,但是我一直操作的是test資料庫中的test表,所以一直失敗。
大家一定要注意,如果建立資料來源的時候是預設的master資料庫,而要操作test資料庫中的表,要”use test insert into test//values(2,1)“
*/

retcode   = SQLExecDirect(hstmt1,(SQLCHAR *)sql,strlen(sql));
printf("操作成功!");
//釋放語句控制代碼 
retcode   = SQLCloseCursor (hstmt1);
retcode   = SQLFreeHandle (SQL_HANDLE_STMT, hstmt1); 
}
//3.斷開資料庫連線
/*      
1. 斷開資料庫連線  
2.釋放連線控制代碼.  
3.釋放環境控制代碼(如果不再需要在這個環境中作更多連線) 
*/
SQLDisconnect(hdbc1);     
SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);   
SQLFreeHandle(SQL_HANDLE_ENV, henv); 
return(0);
}

這只是一個簡單的插入語句,更多操作,我們可以參考ODBC API,這裡我就不累述了。

最後,希望大家都沒成功!

相關推薦

C/C++使用ODBC連線MSSQL資料庫

前幾天在研究C/C++連結MSSQL資料的方法,前前後後在網上找了不少的文章,大多數文章都沒法真正的解決入門新手的全部疑惑,所以在此整理一下自己整個連線資料庫的過程,希望能幫到有需要的人。 一、首先是MSSQL server的安裝,相信有不少同學會卡在這邊。我安裝的是MS

C++通過ODBC連線資料庫

有很多種連線資料庫的方法,得一種一中的鑽研學習, 這裡,我用的是一種比較基本的比較老的資料庫連線方法,就是通過微軟給提供的ODBC SQLAPI庫來連線 具體的原理,我就不在這掉書袋了,大家都大體清楚,深層的就沒有研究過。 先貼出直接查詢的程式碼: #include &l

C/C++使用ODBC連線Microsoft SQL server資料庫

因為最近要用C對SQL Server進行連線,但發現網上關於這方面的資料不多,就把這兩天查到的資料和心得歸攏了下,留著以後自己看。 使用C語言通過ODBC(開放式資料庫互連)對SQL Server進行連線,分為兩步操作:1.配置本地ODBC環境;2.碼程式碼...=_= 【首先配置本地環境】1.啟動

C++ API方式連線mysql資料庫實現增刪改查

轉自 http://www.bitscn.com/pdb/mysql/201407/226252.html 一、環境配置 1,裝好mysql,新建一個C++控制檯工程(從最簡單的弄起,這個會了,可以往任何c++工程移植),在vs2010中設定,工程--屬性--VC++目

C#-繼承IDbConnection連線不同資料庫,通用的DbHelper(2)

在《C#-繼承IDbConnection連線不同資料庫,通用的DbHelper(1)》之後,感覺和原來的DbHelper使用方法不同,為了採用統一的parameter方法,進行了以下修改。 增加以下類 1. Parameters.cs # 帶引

c#使用2013連線Oracle資料庫

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T

C#使用EF連線PGSql資料庫

前言 由於專案需要,使用到了PGSql資料庫,說實話這是第一次接觸並且聽說PGSql(PostgreSQL)關係型資料庫,之前一直使用的都是SqlServer,一頭霧水的各種找資源,終於將PGSql與C#的EF連線起來,可以像使用SQLServer一樣使用PGSql了。 PGSql目前有一個pgAdmin

c++呼叫ado連結mssql資料庫詳解

最近程式中用到讀寫資料庫,看了些例子,查了番MSDN,下面把詳細步驟寫出來,以備忘,或與同行共勉。 讀寫資料庫的技術很多,現在多用ADO。ADO以COM方式提供,所以它的很多行為遵循COM規範。首先,要引入ADO的COM檔案,它的位置一般在"C:/Program Fi

C++使用ADO連線MySql資料庫

1.資料庫技術發展 ODBC->DAO->RDO->ADOOLE DB 2.ADO中包含了七個物件成員          Connection用於管理資料庫的連線          Command包含sql命令          RecordSet用來儲

C#winform直接連線SQL資料庫mdf檔案

1.首先mdf檔案必須是SQLServer2008及以下資料庫,最好是2005版本的資料庫 2.將mdf檔案這裡以資料庫檔案“Test.mdf”為例,放於與程式Bin資料夾同文件夾下 3.在Program.cs檔案中,Main()方法下,新增如下程式碼 string dat

linux下c++使用occi連線oracle資料庫步驟,及出現的問題和解決

1. 所需安裝包 (64 位 ) oracle-instantclient-basic-10.2.0.3-1.x86_64.rpm oracle-instantclient-devel-10.2.0.3-1.x86_64.rpm 2. 安裝 安裝後,庫檔案路

C# ASP.NET連線PostgreSQL 資料庫DBHelper

public class PGDBHelper { public static string pgsqlConnection = ConfigurationManager.C

詳細配置C++藉助ADO連線Access資料庫

這是寫給你的。----2016-7-18 (本篇不會介紹連線原理,只介紹操作步驟入門)   1.     環境配置(Win8-Win10,64位) 2.     連線與測試程式碼 3.     意外情況解決方案   環境配置: 1.     先安裝你的Access資料庫(微

Asp.Net Core 輕鬆學-10分鐘使用EFCore連線MSSQL資料庫

前言     在 .Net Core 2.2中 Microsoft.AspNetCore.App 預設內建了EntityFramework Core 包,所以在使用過程中,我們無需再從 NuGet 倉庫單獨應用 EFCore 包;本文並不打算深入的介紹 EFCore 的各種使用方式、原理解析,本文重點在於解

javascript連線mysql與php通過odbc連線任意資料庫

腦洞大開用javascript連結mysql,2個小時總算實現了,用到了odbc,後面又想到用php連結odbc連結資料庫,也實現了,就把案例放一下。 注意事項: 1.javascript連線mysql使用的是”new ActiveXObject“這個物件,這個物件只有IE

ODBC連線MySQL資料庫操作例項

  以下展示的一段程式,完成利用ODBC對MySQL資料庫操作功能,我的編譯環境時VC6,程式碼中有詳細的解釋,如果事先完成ODBC資料來源的設定工作,那麼只要對程式碼稍作修改即可使用: #include<stdlib.h> #include<stdio

PHP連線MSSQL資料庫案例,PHPWAMP多個PHP版本連線SQL Server資料庫

課前小知識普及:MSSQL和SQL Server是同一個軟體,叫法不同而已,MSSQL全稱是Microsoft SQL Server,MSSQL是簡寫,有些人則喜歡直接叫SQL Server,我就比較喜歡這種叫法,有韻味、、、 最近有使用者在使用PHPW

java ODBC連線MYSQL資料庫

2.首先看一下我的資料庫:libo_shopping下有一張表:y_user 3.第一步的程式安裝好之後,去控制面板===》資料來源 4.上程式碼: //匯入java.sql包 import j

vs2013建立MFC專案通過ODBC連線mysql資料庫

1.用ODBC連線mysql 右鍵空白部分-》類嚮導-》新增類-》MFC ODBC使用者-》資料來源-》機器資料來源-》新建-》使用者資料源(點選下一步)-》Mysql ODBC Unicode Driver-》完成 出現下圖: 填寫資料,點選test。連線成功選擇OK

Cognos安裝及通過ODBC連線Tibero資料庫

1   環境資訊 Cognos BI Server 10.2 64Bit.rar Tibero 5sp1 64bit.exe  本手冊中cognos安裝環境為win8.1 64bit  本手冊中cognos資料庫為oracle 10g 32bit  本手冊中cogno