c++連接SQL server2005

環境: 系統windows7  VS2008, SQL server2005

在這裏先要對ODBC進行配置:

控制面板->管理工具->數據源(ODBC),如果控制面板中找不到管理工具,那就直接在開始菜單中搜索:“管理工具”,打開後如下圖:

在【系統DSN】如果沒有SQL Server驅動程序,那就選【添加】,如果已經有則選中後點【配置】,之後會出現如下對話框:

數據源名稱可以隨便寫,不過待會寫代碼的時候,代碼裏面會用到這個

在【服務器】裏面輸入一個英文的句點,表示默認的服務器,然後【下一步】出現如下圖:

如何驗證登錄ID的直僞,我選了第二個,網上說第一個也可以的,但沒有試。登錄ID爲:sa,密碼就是配置數據庫時設置的密碼。

點擊上圖中的【客戶端配置】出現如下圖:

別名中還是一個英文句點,服務器名稱是SQL server2005中的數據庫名,其實可以跳過這個【客戶端配置】這個頁面的,選擇默認的就行!

接着點【下一步】如果剛纔的【客戶端配置】裏面或者登錄ID、密碼有錯的話,點【下一步】是會報錯的!!之後出現下圖:

“更改默認的數據庫爲”框指定用於任何使用此數據源進行的連接的默認數據庫名稱。如果此框爲空白,連接將使用在服務器上爲登錄 ID 定義的默認數據庫。選中此框後,在此框中命名的數據庫將覆蓋爲登錄 ID 定義的默認數據庫。如果“附加數據庫文件名”框中包含主文件的名稱,則主文件描述的數據庫將附加爲使用“更改默認的數據庫爲”框中指定的數據庫名稱的數據庫。與在 ODBC 數據源中指定默認數據庫相比,使用登錄 ID 的默認數據庫更有效。在這裏pcTest這個數據庫是我自己創建的,其它幾個是系統自帶的數據庫。如果有什麼不懂可以點擊【幫助】按鈕!!!這個比在網上的一些說明更有效。

“附加數據庫文件名”框指定可附加數據庫的主文件名稱。該數據庫作爲數據源的默認數據庫附加和使用。指定主文件的完整路徑和文件名。在“更改默認的數據庫爲”框中指定的數據庫名稱將用作附加數據庫的名稱。

“附加數據庫文件名”框:這個我選擇爲空。 接着【下一步】

這個選擇默認配置即可,接着點【完成】,出現下圖:

點擊【測試數據源】,如果測試成功會出現下圖:

到此ODBC的數據源配置成功!!

下面這個是我數據庫的情況:

下面將寫代碼進行測試:

//Windows環境下,Visual C++ 6.0連接SQLServer 2005數據庫的ADO方法,在VS2008中編寫代碼如下:

#pragma once


#define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers
#include <stdio.h>
#include <tchar.h>

 

//使用# import把動態連接庫msado15.dll導入Visual C++應用程序,並生成定義ADO庫的兩個C++頭文件:msado15.tlh和ado15.tli。即:

#import "c:\Program Files\Common Files\System\ADO\msado15.dll"     no_namespace rename("EOF", "EndOfFile")

void main()
{
 char * sqlCommand = "delete  from student where name='gg'";//注意這裏使用了刪除,而不是選擇查找,因爲選擇查找返回的是一個集合,要用到遊標等,比較麻煩,

                                                                                                    //在這裏我只是做一個簡單的測試,看是否連接數據庫成功。
 _bstr_t strConnect="DSN=sql2005test;Database=pcTest;uid=sa;pwd=123456;";//這裏的參數就是上面配置ODBC數據源時的一些配置,uid是用戶名,pwd是密碼
 ::CoInitialize(NULL);//初始化COM庫
 //添加一個指向Connection對象的指針m_pConnection
  _ConnectionPtr m_pConnection(__uuidof(Connection));

  if( FAILED( m_pConnection.CreateInstance(__uuidof(Connection)) ) ) //創鍵Connection對象
  {
   printf("創鍵Connection對象時出錯\n");
  }
 try
 {
   m_pConnection->Open (strConnect,"","", adModeUnknown); //連接數據庫
 }
 catch(_com_error e) 
 {
  printf("連接數據庫時出錯\n");
 }

  m_pConnection->Execute(sqlCommand, NULL, 1);//執行SQL語句
  m_pConnection->Close(); 
  ::CoUninitialize(); //釋放程序佔用的COM 資源 
}

如果有錯,首先應去數據庫中驗證SQL語句是否執行正確,如果沒問題那再檢查C++代碼。

運行後會發現數據庫中少了一行,那一行正是被刪除的,到此,數據庫的連接成功!!

發佈了28 篇原創文章 · 獲贊 7 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章