當前位置:首頁 » 操作系統 » vc連接資料庫

vc連接資料庫

發布時間: 2023-06-16 06:46:34

1. 資料庫和VC的連接

配置ODBC數據源:打開控制面板下的「數據源」,彈出「ODBC數據源管理器」,選擇DSN選項卡-》添加->你選擇你的SQLServer選項,單擊完成。如圖然後你再按照向導提示添加。

代碼中用ODBC訪問資料庫你得加上afxdb.h頭文件,

用CDataBase類連接資料庫、CRecordSet類查詢記錄。

現在在VC訪問資料庫常用的是ADO訪問,你可以找一下我前面的回答有ADO訪問資料庫的步驟。

CDataBasem_cODBCDb;

用CDataBase類的OpenEx()函數打開資料庫連接。連接字元串你自己構造一下。

定義一個與上面資料庫相關的查詢對象

CRecordSetm_cODBCRec(&m_cODBCDb);

用這個查詢對象的open方法就可以執行SQL語句與資料庫交互了。

2. 求教VC連接遠程資料庫方法

通常都是通過TCP/IP協議來連接遠程資料庫。

首先要保持網路暢通,可以使用ping命令來進行測試網路是否連通,沒有問題可以進行下一步:在客戶端通過配置工具或者應用程序代碼來設置伺服器的地址、埠號、資料庫名稱等信息,此時客戶端採用的工具或者編程語言不同,則配置方法也不同,每一種主流資料庫產品都有圖形化的客戶端配置工具,可以直接使用,在裡面填寫好伺服器相關信息,測試連接即可,下圖就是SQL Server的配置工具。

如果客戶端採用高級語言編程,不同的語言連接方法也不同,通常主要有ODBC和JDBC連接方式,這兩種方式比較通用,每個廠商的資料庫都會提供對應的連接驅動程序和連接字元串信息。

主流資料庫產品通常還提供了一些特殊的連接方式,採用特定的網路協議,這時連接的速度會更快一些,但配置會更復雜,而且方法不通用。

3. 急。。哪位高手,能詳細的給我講一下vc連接資料庫的步驟。。。著急用,,謝謝。

VC++ ADO操作資料庫方法步驟

大致步驟:

1, 引入液老ADO庫定義文件凳洞,初始化COM環境

2, 初始化connection指針,連接資料庫並打開

3, 利用已經建立好的連接,通過connection,command或者recorder對象操作資料庫,對數據進行查詢,處理等操作

4, 使用完畢後,關閉資料庫,釋放指針,並注釋COM

示常式序如下:

#include "stdafx.h"

#include "iostream"

#include "string"

#include "vector"

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

CoInitialize(NULL); //初始化COM環境

_ConnectionPtr pMyConnect(__uuidof(Connection));//定義連接對象並實例化對象

_RecordsetPtr pRst(__uuidof(Recordset));//定義記錄集對象並實例化對象

try

{

/*打開數據棗埋枯庫「access2007」 */

pMyConnect->Open("Provider=Microsoft.ACE.OLEDB.12.0;DataSource=xtreme.accdb;Persist Security Info=False;","","",adModeUnknown);

} catch (_com_error &e)

{

cout<<"資料庫初始化錯誤"<<endl;

cout<<e.Description()<<endl;

cout<<e.HelpFile()<<endl;

return 0;

}

cout<<"連接成功"<<endl;

try

{

pRst=pMyConnect->Execute("select * from Employee",NULL,adCmdText);

if(!pRst->BOF)

pRst->MoveFirst();

else

{

cout<<"表內數據為空"<<endl;

return 0;

}

vector<_bstr_t> column_name;

/*存儲表的所有列名*/

for(int i=0; i< pRst->Fields->GetCount();i++)

{

cout<<pRst->Fields->GetItem(_variant_t((long)i))->Name<<endl;

column_name.push_back(pRst->Fields->GetItem(_variant_t((long)i))->Name);

}

/*對表進行遍歷訪問*/

while(!pRst->adoEOF)

{

vector<_bstr_t>::iterator iter=column_name.begin();

for(iter;iter!=column_name.end();iter++)

{

if(pRst->GetCollect(*iter).vt !=VT_NULL)

{

cout<<(_bstr_t)pRst->GetCollect(*iter)<<endl;

}

else

cout<<"NULL"<<endl;

}

pRst->MoveNext();//關閉記錄集

cout<<endl;

}

}catch(_com_error &e)

{

cout<<e.Description()<<endl;

cout<<e.HelpFile()<<endl;

return 0;

}

/*關閉資料庫並釋放指針*/

try

{

pRst->Close(); //關閉記錄集

pMyConnect->Close();//關閉資料庫

pRst.Release();//釋放記錄集對象指針

pMyConnect.Release();//釋放連接對象指針

}catch(_com_error &e)

{

cout<<e.Description()<<endl;

cout<<e.HelpFile()<<endl;

return 0;

}

CoUninitialize(); //釋放COM環境

return 0;

}

說明:

本程序是在vs2008和access2007上編譯通過的,如果有編譯問題,可能因版本不同引起一些問題。

連接字元串因數據源不同而不同,所以因情況而變,可以直接連接ODBC的數據源,也可以直接連接其提供驅動的數據源。

4. 用VC怎麼連接SQL資料庫

(1).在文件stdafx.h中最後一個#endif的前一行寫入
#import "C:\program files\common files\System\ado\msado15.dll" no_namespace \
rename("EOF","EndOfFile") \
rename("LockTypeEnum","newLockTypeEnum")\
rename("DataTypeEnum","newDataTypeEnum")\
rename("FieldAttributeEnum","newFieldAttributeEnum")\
rename("EditModeEnum","newEditModeEnum")\
rename("RecordStatusEnum","newRecordStatusEnum")\
rename("ParameterDirectionEnum","newParameterDirectionEnum")
如果你的系統不是安裝在C盤的話就把#import 後面的C改成系統所有的盤
(2).在C***App類的
public:下加入
_RecordsetPtr m_pADOSet;
bool ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL);
在private:下加入_ConnectionPtr ADOConn;
在class C***App : public CWinApp
{
...
};之後#endif之前加入extern C***App theApp;

(3)在BOOL C***App::InitInstance()函數中Enable3dControls(); // Call this when linking to MFC statically這一行下面加入
if( FAILED(::CoInitialize(NULL)) )
{
AfxMessageBox("ADO Init failed");
return false;
}
try
{
ADOConn.CreateInstance(__uuidof(Connection));
ADOConn->Open("DSN=OBDC數據源;Provider=MSDASQL","用戶","密碼", adConnectUnspecified);//這一行要自已修改
}
catch(_com_error &e)
{
CString err;
err.Format("%s", (char*)(e.Description()) );
AfxMessageBox(err);
}
catch(...)
{
AfxMessageBox("Unknown Error...");
}
m_pADOSet.CreateInstance(__uuidof(Recordset));
並在文件最後加上如下代碼:
bool C***App::ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)
{
if ( ADOSet->State == adStateOpen) ADOSet->Close();
try
{
ADOSet->Open(strSQL, ADOConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);
return true;
}
catch(_com_error &e)
{
CString err;
err.Format("ADO Error: %s",(char*)e.Description());
AfxMessageBox(err);
return false;
}
}

最後就可以在登錄時執行SQL語句了,比如用戶為CString strUser, 密碼是CString strPwd;資料庫表是user_table(user_id, user_name, user_pwd)則
_variant_t strQuery, Holder;
strQuery = "select * from user_table where user_name='"+strUser +"' and user_pwd='"+ strPwd +"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( 0==iCount )
{
AfxMessageBox(_T("密碼錯誤"), MB_ICONEXCLAMATION);
return;
}
else
{
AfxMessageBox(_T("登錄成功"), MB_ICONEXCLAMATION);
}

5. VC++中怎樣連接資料庫

(1)打開VC工具欄Tools菜單下的Options選項,在Directories的標簽頁中右邊的「Show directories for:」下拉列表中選中「Includefiles」,然後在中間列表框中添加你本地安裝MySQL的include目錄路徑。

6. 用VC怎麼連接SQL資料庫

我用的是數據源ODBC。先打開控制面板上的管理工具。然後打開數據源。添加描述數據什麼。然後去到vc那裡。新建單個文檔。下一步選擇W資料庫查看使用文件支持,單擊DatabaseSource按鈕。選擇之前你設好的數據源。就連好了資料庫了。

7. vc++ 用ADO鏈接資料庫怎麼連

由於我也剛開始學,前幾天找到的,好使,我試過的,有什麼問題你可以問我

首先,要用#import語句來引用支持ADO的組件類型庫(*.tlb),其中類型庫可以作為可執行程序(DLL、EXE等)的一部分被定位在其自身程序中的附屬資源里,如:被定位在msado15.dll的附屬資源中,只需要直接用#import引用它既可。可以直接在Stdafx.h文件中加入下面語句來實現:

#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")
其中路徑名可以根據自己系統安裝的ADO支持文件的路徑來自行設定。當編譯器遇到#import語句時,它會為引用組件類型庫中的介面生成包裝類,#import語句實際上相當於執行了API涵數LoadTypeLib()。#import語句會在工程可執行程序輸出目錄中產生兩個文件,分別為*.tlh(類型庫頭文件)及*.tli(類型庫實現文件),它們分別為每一個介面產生智能指針,並為各種介面方法、枚舉類型,CLSID等進行聲明,創建一系列包裝方法。語句no_namespace說明ADO對象不使用命名空間,rename ("EOF", "adoEOF")說明將ADO中結束標志EOF改為adoEOF,以避免和其它庫中命名相沖突。
其次,在程序初始過程中需要初始化組件,一般可以用CoInitialize(NULL);來實現,這種方法在結束時要關閉初始化的COM,可以用下面語句CoUnInitialize();來實現。在MFC中還可以採用另一種方法來實現初始化COM,這種方法只需要一條語句便可以自動為我們實現初始化COM和結束時關閉COM的操作,語句如下所示: AfxOleInit();
接著,就可以直接使用ADO的操作了。我們經常使用的只是前面用#import語句引用類型庫時,生成的包裝類.tlh中聲明的智能指針中的三個,它們分別是_ConnectionPtr、_RecordsetPtr和_CommandPtr。下面分別對它們的使用方法進行介紹:
1、_ConnectionPtr智能指針,通常用於打開、關閉一個庫連接或用它的Execute方法來執行一個不返回結果的命令語句(用法和_CommandPtr中的Execute方法類似)。
——打開一個庫連接。先創建一個實例指針,再用Open打開一個庫連接,它將返回一個IUnknown的自動化介面指針。代碼如下所示:

_ConnectionPtr m_pConnection;
// 初始化COM,創建ADO連接等操作
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));

// 在ADO操作中建議語句中要常用try...catch()來捕獲錯誤信息,
// 因為它有時會經常出現一些意想不到的錯誤。jingzhou xu
try
{
// 打開本地Access庫Demo.mdb
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("資料庫連接失敗,確認資料庫Demo.mdb是否在當前路徑下!");
return FALSE;
}
——關閉一個庫連接。如果連接狀態有效,則用Close方法關閉它並賦於它空值。代碼如下所示:

if(m_pConnection->State)
m_pConnection->Close();
m_pConnection= NULL;

8. VC連接資料庫到底怎麼設置啊

具體說說怎麼連接不上的。
連接資料庫需要添加數據源,ADO相關入門書籍里一般都會介紹連接資料庫的語句的。
比如我用C#連接資料庫:
首先定義命名空間
using System.Data.OracleClient;
然後連接資料庫:
orlConnection = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=59.72.109.214)"+ "(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=pdm)));User ID=system;Password=admin";
然後從資料庫中讀取用戶信息:
OracleConnection myConnection = new OracleConnection(orlConnection);
這個你弄一本VC連接資料庫的入門書籍,裡面有詳細的介紹

熱點內容
python的total 發布:2025-03-23 08:35:08 瀏覽:473
linux個shell 發布:2025-03-23 08:26:02 瀏覽:680
oraclelinux監聽配置 發布:2025-03-23 08:07:48 瀏覽:966
鎖頻密碼忘了怎麼辦 發布:2025-03-23 08:05:30 瀏覽:739
如何查詢公會伺服器 發布:2025-03-23 07:50:24 瀏覽:768
老電腦卡頓如何升級配置 發布:2025-03-23 07:48:08 瀏覽:979
伺服器tnt禁了怎麼炸區塊 發布:2025-03-23 07:43:48 瀏覽:687
線上兒童編程哪家好 發布:2025-03-23 07:43:42 瀏覽:923
如何配置多肉的圖片 發布:2025-03-23 07:38:37 瀏覽:805
千尋位置手簿哪裡輸入賬號密碼 發布:2025-03-23 07:34:50 瀏覽:419