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
二、建立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