當前位置:首頁 » 數據倉庫 » mfc如何連接資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mfc如何連接資料庫

發布時間: 2022-07-09 21:38:59

A. mfc如何遠程連接sql資料庫

1. 配置SQL Server外圍應用伺服器,開啟SQL Server 2005遠程連接功能:

「配置工具」->「SQL Server外圍應用配置器」-> 選擇「服務和連接的外圍應用配置器」->選擇Database Engine節點下的 「遠程連接」-> 選擇「本地連接和遠程連接」-> 選擇「同時使用TCP/IP和named pipes」-> 點擊確定,重新啟動
資料庫
服務。

2. 把登陸設置改為SQL Server 和 Windows 身份驗證模式:

打開SQL Server Management Studio管理器,點擊伺服器上面右鍵然後查看屬性,在安全性選項裡面對服務身份驗證選擇「SQL Server 和 Windows 身份驗證模式」。

3.修改SQL Server sa的密碼:

在SQL Server Management Studio管理器中,展開伺服器上的「安全性」->登陸名->在sa帳號上點右鍵屬性,這樣在「常規」的選擇頁中更改sa登陸帳號的密碼。注意SQL Server2005中,不允許密碼設置簡單,否則會通不過。然後在選擇頁的「狀態」的登錄修改為啟用。

4.設置SQL Server 的埠號

在SQL Server Configuration Manager管理器中,展開SQL Server 2005 Network Configuration項目 -> 單擊下面的 Protocols for 'dbname' -> 在右側的窗口中,右鍵單擊"TCP/IP"項,選擇"屬性" -> 打開"TCP/IP properties"窗口 - > 單擊"IP Address"選項卡 -> 將所有IP地址下面的 "TCP Port" 值設置成1433

5.確保開啟SQL Server服務

在SQL Server Configuration Manager管理器中, 選中SQL Server 2005 Services,在右側的窗口中啟動SQL Server ('YourInstance'),

6. 修改連接字元串,在字元串中加入SQl Server 服務的埠號.

strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx,1433;DATABASE=mydatabase;UID=name;PWD=pwd");

7.連接coder:

stdafx.h中引用:

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

8. 連接SQL SERVER伺服器,並連接資料庫

if(!AfxOleInit()) //這就是初始化COM庫

{

AfxMessageBox("資料庫初始化出錯!");

}

_ConnectionPtr pCn("ADODB.Connection");

pCn->Open((_bstr_t)"Driver=

{SQL Server};Server=127.0.0.1,1433;Database=carcom;UID=sa;PWD=abc123456","","",adModeUnknown);

B. MFC怎麼連接MYSQL資料庫求詳細。。

用ADO連接SQL資料庫
步驟如下:
1,在頭文件"StdAfx.h"中導入#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF"),記住把這句話放到endif的後面,不然會報錯,這樣處理好之後,編譯後又一個警告,可以忽略
2,在對話框的OnInitDialog()函數中寫上"::CoInitialize(NULL);::AfxOleInit(); 」 在主程序的初始化函數中,它就可以寫一次
3,在對話框類的頭文件中,聲明如下變數:_ConnectionPtr m_pConnection;_RecordsetPtr pRst;
連接資料庫的代碼如下:
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");

if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=資料庫的驅動器名稱;Integrated Security=SSPI;Persist Security Info=False;Data Source=資料庫伺服器名;Initial Catalog=連接的資料庫名; User ID=登陸資料庫的名稱;Password=登陸資料庫的密碼;","","",adModeUnknown);
}
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
」資料庫的驅動器名稱「在控制面板里,以大圖標查看,可以看到一個"ODBC",雙擊打開,在」驅動程序「裡面在最下面有兩個」SQL Server"和「SQL Native Client"如果你是2000的SQL版本,就選」SQL Server"及「Provider=SQL Server"2005的"Provider=SQL Native Client"Data Source=? ,?的值可以是」localhost"也可以是你的資料庫伺服器的名稱,連接資料庫的時候可以看到,復制一下就可以了。
處理完之後就可以連接到你想要連接的資料庫上了!你下次給點分把!!!

C. mfc中怎麼連接資料庫。

IMPLEMENT_DYNAMIC(appendSet, CRecordset)

appendSet::appendSet(CDatabase* pdb)
: CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CCode2_3Set)
/* m_username = _T("");
m_psw = _T("");
m_nFields = 2;*/
id=_T("");
stockid=_T("");
buytime=_T("");
selltime=_T("");
number=_T("");
m_nFields = 5;
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;
}

CString appendSet::GetDefaultConnect()
{
return _T("ODBC;DSN=stock");
}

CString appendSet::GetDefaultSQL()
{
return _T("[stock]");
}

void appendSet::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CCode2_3Set)
pFX->SetFieldType(CFieldExchange::outputColumn);
/*RFX_Text(pFX, _T("[username]"), m_username);
RFX_Text(pFX, _T("[psw]"), m_psw);*/
RFX_Text(pFX, _T("[id]"), id);
RFX_Text(pFX, _T("[stockid]"), stockid);
RFX_Text(pFX, _T("[buytime]"), buytime);
RFX_Text(pFX, _T("[selltime]"), selltime);
RFX_Text(pFX, _T("[number]"), number);
//}}AFX_FIELD_MAP
}

// CCode2_3Set diagnostics

#ifdef _DEBUG
void appendSet::AssertValid() const
{
CRecordset::AssertValid();
}

void appendSet::Dump(CDumpContext& dc) const
{
CRecordset::Dump(dc);
}
#endif //_DEBUG

這是我以前用的.連接ACCESS資料庫.你參考下
如果還有疑問請發到我的郵箱里.

D. [轉載]MFC 如何連接資料庫(c++ 連接sql server )老

1.首先,你的機器上要保證有sql server,並能正確進入並創建資料庫,表等。2.建議把那個SA的密碼自己重新設定一下,設定方法:打開sql server 2005 SQL Server Management Studio,進去後在那個安全性--登錄名--右鍵點擊SA屬性,設置密碼,狀態裡面改成,授予 啟用。3.將ADO代碼庫引入到工程中,需要在stdafx.h或TEST.h(這個MFC項目的頭文件)中添加如下代碼,注意不同的操作系統在安裝時這個路徑可能不一樣,所以必須先在系統中找到msado15.dll文件的路徑:加入代碼:#import "C:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF","adoEOF")?(通過以上代碼就可以將ADO代碼庫引入到當前工程中)?4.在TEST工程中的TEST.h中加入如下代碼:(藍色為所加入的) class CSQL_TESTApp : public CWinApp{public:?_ConnectionPtr m_pAppConn;?//連接對象指針
CString m_AppConnString;?//連接字元串的聲明
bool m_bConnected; //連接標志 public:
CSQL_TESTApp();// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSQL_TESTApp)public:virtual BOOL InitInstance();
。。。。};?5.在TEST工程的TEST.CPP文件中加入如下代碼:(藍色為所加入的)BOOL CSQL_TESTApp::InitInstance(){AfxEnableControlContainer();?HRESULT hRes;try{hRes=m_pAppConn.CreateInstance(_T("ADODB.Connection"));
m_pAppConn->Open(_bstr_t((LPCTSTR) m_AppConnString) , _T("") , _T("") , adModeUnknown);
if(SUCCEEDED(hRes)){m_bConnected = TRUE; //連接成功設置標志位}}catch(_com_error e){CString errormessage;
errormessage.FormatMessage(_T("連接資料庫失敗 %s"),e.ErrorMessage());
AfxMessageBox(errormessage); //顯示錯誤信息
return FALSE;?}

E. MFC對話框程序怎麼連接資料庫資料庫時SQL SEVER的

1.可以使用ADO連接資料庫,具體的知識還比較的多,所以建議隨便找本mfc的書本看看,可以直接使用mfc向導里的選項,非常方便的。
2.使用odbc連接資料庫,較於復雜,而且速度明顯無ado快(順便吐槽一下odbc在windows程序開發中就是雞肋,從來都很少有人用的。)

F. 基於對話框的MFC如何連接資料庫

ADO的三個核心對象

Connection對象
Connection對象表示了到資料庫的連接,它管理應用程序和資料庫之間的通信。 Recordset和Command對象都有一個ActiveConnection屬性,該屬性用來引用Connection對象。
Command對象
Command對象被用來處理重復執行的查詢,或處理需要檢查在存儲過程調用中的輸出或返回參數的值的查詢。
Recordset對象
Recordset對象被用來獲取數據。 Recordset對象存放查詢的結果,這些結果由數據的行(稱為記錄)和列(稱為欄位)組成。每一列都存放在Recordset的Fields集合中的一個Field對象中。

在VC中利用ADO訪問資料庫

1.新建一個基於對話框的工程,名為ADO。
2.在對話框中放一ListBox和一個Button控制項。
3.在使用時須導入MSADO15.dll,方法是在StdAfx.h中#import "D:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","rsEOF")
至少於將EOF改名為rsEOF,是為了避免與文件中的EOF重名。然後編譯程序,將產生的debug目錄下的兩個文件MSADO15.tlh和MSADO15.tli加到工程中,其目的只是方便我們查看而已。並不是編譯需要它。
ADO也是COM組件,須初始化COM庫方法是CoInitialize(NULL);使用完後須CoUninitialize();
代碼如下:

void CAdoDlg::OnBtnQuery()
{
int i,j;
char mdbPath[256]; //mdb文件路徑
char connstr[512]; //連接字元串
char connstr2[512]; //連接字元串2

memset(mdbPath,0,256);
memset(connstr,0,512);
memset(connstr2,0,512);
strcpy(connstr,"driver={Microsoft Access Driver (*.mdb)};dbq=");
if(!::GetCurrentDirectory(256,mdbPath))
{
AfxMessageBox("獲取資料庫路徑失敗!");
return;
}
if(mdbPath[strlen(mdbPath)-1]!='\\')
mdbPath[strlen(mdbPath)]='\\';
strcat(mdbPath,"data.mdb");
strcat(connstr,mdbPath);
for(i=0,j=0;i<strlen(connstr);i++,j++)
{
if(connstr[i]!='\\')
connstr2[j]=connstr[i];
else
{
connstr2[j]='\\';
connstr2[++j]='\\';
}
}

CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));//產生connection智能指針
_RecordsetPtr pRst(__uuidof(Recordset)); //產生recordset智能指針

pConn->Open(connstr2, "","",adModeUnknown); //打開資料庫
pRst->Open("select * from user",_variant_t((IDispatch*)pConn),adOpenStatic,adLockOptimistic,adCmdText);
while(!pRst->rsEOF)//將查詢到的數據加到列表框
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
(_bstr_t)pRst->GetCollect("name"));
pRst->MoveNext();
}
//插入一條記錄
pRst->AddNew();
pRst->PutCollect("name",_variant_t("sun"));
pRst->PutCollect("age",_variant_t((long)21));
pRst->Update();

pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release();
CoUninitialize();
}

G. MFC怎麼與資料庫連接,求詳細步驟!!!!!急急急!!!!!!

比如在你的工程目錄中建一個
dbf\vir.mdb
//access資料庫,然後你需要做以下操作:
1.在stadafx.h裡面添加#include
//新加入頭文件,用於cdatabase類。
2.在stadafx.h最後的#endif上添加#import
"msado15.dll"
no_namespace
rename("eof","rseof")
這時,你要把msado15.dll拷到與dbf同級的目錄,也就是工程目錄里,當然你可以該路徑
3.在你自己的工程里,比如myproc是你建的工程,添加代碼
cmyporcapp::cmyprocapp(){
coinitialize(null);
sqlconfigdatasource(null,odbc_add_dsn,
"microsoft
access
driver
(*.mdb)",\
"dsn=myimage;dbq=dbf\\vir.mdb;defaultdir=dbf");
//注冊本地資料庫數據源
m_db.openex("dsn=myimage;;",cdatabase::noodbcdialog);//myimage是數據源名稱
}
4.在前面的函數體之前創建全局變數cdatabase
m_db;
crecordset
m_rec(&m_db);
5.使用資料庫{
cstring
strsql="select
*
from
virdb";
bstr
bstrsql=strsql.allocsysstring();
m_rec.open(crecordset::dynaset,strsql);
while(!m_rec.iseof())
{
//
使用資料庫的代碼,讀出來的數據都是字元串型的
cstring
myvirable;
m_rec.getfieldvalue("欄位名",myvirable);
//將某個欄位的當前行的值讀到myvirabl中
//
......
m_rec.movenext();
//將記錄移到下一行
}
}
本程序是自動注冊數據源的,當然可以手動注冊數據源,關於如何注冊數據源並不麻煩,敘述起來不太方面,你就參考其他的吧。不過建議不用手動注冊數據源,這樣你地程序移植性不好.

H. mfc 應用ado 連接 sql 資料庫

教你個連接資料庫的方法。首先新建一個txt文件,把他命名為aaa.udl然後雙擊它配置資料庫的連接。配置好連接成功後,將該文件放置程序文件夾內。連接資料庫時將你的_bstr_t
strConnect
=
"Provider
=
SQLOLEDB.1;Password=111;Persist
Security
Info=True
;User
Id=root;
Initial
Catalog=test;
Data
Source=localhost;";
這一句改為: _bstr_t
strConnect
="File
Name=EPXLDT.udl";然後再連接試試。 如果還不行,把你的郵箱發給我,我給你發個連接資料庫的類。挺好用的

I. MFC如何用資料庫

你首先安裝Mysql,然後使用下面代碼
在MyProc類中增加MySqlConnect方法,strUSR,strPWD分別為用戶名和密碼,登陸資料庫需要
BOOL MyPorc::MySqlConnect(CString strUSR,CString strPWD)
{
unsigned short Port = 3306; //埠
CString IPAddress ="127.0.0.1"; //本地資料庫
CString UserName = strUSR;
CString Password = strPWD;

ssock=(MYSQL *)malloc(sizeof(MYSQL));
mysql_init(ssock);
if(ssock == NULL)
{
AfxMessageBox("連接失敗,請稍後在試! ");
return FALSE;
}

ssock = mysql_real_connect(ssock, IPAddress, UserName, Password, NULL, Port, NULL, 0);
if(!ssock)
{
unsigned int mtint = mysql_errno(ssock);
AfxMessageBox("登陸失敗! ");
return FALSE;
}
return TRUE;
}