mfcaccess資料庫
㈠ 對於MFC連接ACCESS資料庫並在對話框中顯示出來
cdatabase::open;
virtual
bool
open
(
lpctstr
lpszdsn,
bool
bexclusive
=
false,
bool
breadonly
=
false,
lpctstr
lpszconnect
=
「odbc;」,
bool
busecursorlib
=
true
);
throw(
cdbexception,
cmemoryexception
);
參數含義:
lpszdsn指定了數據源名,在lpszconnect參數中也可包括數據源名,此時lpszdsn必需為null,若在函數中未提供數據源名且使lpszdsn為null,則會顯示一個數據源對話框,用戶可以在該對話框中選擇一個數據源.
bexclusive說明是否獨占數據源,由於目前版本的類庫還不支持獨占方式,故該參數的值應該是false,這說明數據源是被共享的.
breadonly若為true則對數據源的連接是只讀的.
lpszconnect指定了一個連接字元串,連接字元串中可以包括數據源名、用戶帳號(id)和口令等信息,字元串中的"odbc"表示要連接到一個odbc數據源上.
busecursorlib若為true,則會裝載游標庫,否則不裝載,快照需要游標庫,動態集不需要游標庫.
參考代碼:
#include
"afxdb.h"
cdatabase
database;
cstring
sdriver
=
"microsoft
access
driver
(*.mdb)";
cstring
sdsn;
cstring
sfile
=
"c://works//readdb//test.mdb";//change
path
here
//
create
odbc
connection
dinamically
sdsn.format("odbc;driver={%s};dsn='';dbq=%s",sdriver,sfile);
//
open
the
database
database.open(null,false,false,sdsn);
㈡ mfc無法將數據寫入access資料庫
先建立一個和Data.mdb資料庫的連接(connection),然後才能執行sql語句建立表。
㈢ MFC怎麼連接access資料庫
1、在MFC的工程中添加一個access文件
2、在MFC中添加記錄集
try
{
m_pConn.CreateInstance("ADODB.Connection");
_bstr_t Connection ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\\aaaa.mdb;Persist Security Info=False";//aaaa為你的access的文件名
m_pConn->Open(Connection, "", "", adConnectUnspecified);
}
catch(_com_error &e)
{
::CoUninitialize();
::AfxMessageBox(e.ErrorMessage());
return FALSE;
}
3、在stdAfx.h文件中添加語句
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "ENDOFFILE")
4、在需要打開資料庫的地方添加打開表的函數
StrSQL="Select * From bbbb";//bbbb為表名
m_pRs.CreateInstance("ADODB.Recordset");
m_pRs->Open((_variant_t)StrSQL, _variant_t((IDispatch *)theApp.m_pConn,true), adOpenStatic, adLockOptimistic, adCmdText);
{
UpdateData(TRUE);
//需要乾的事情
m_pRs->Update();
}
m_pRs->Close();
㈣ 如何使用MFC連接ACCESS資料庫
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///
if( TRUE == SUCCEEDED(hr))
{
strDBFile = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strDBFile;
hr = m_pConnection->Open((_bstr_t)strDBFile ,_bstr_t(strUser),_bstr_t(strUser),adModeUnknown);
}
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format("%s",e.ErrorMessage());
AfxMessageBox(errormessage);
return FALSE;
}
㈤ mfc中連接access資料庫的詳細步驟都是什麼
比如在你的工程目錄中建一個 dbf\vir.mdb //Access資料庫,然後你需要做以下操作:
1.在StadAfx.h裡面添加#include <afxdb.h> //新加入頭文件,用於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(); //將記錄移到下一行
}
}
本程序是自動注冊數據源的,當然可以手動注冊數據源,關於如何注冊數據源並不麻煩,敘述起來不太方面,你就參考其他的吧。不過建議不用手動注冊數據源,這樣你地程序移植性不好.
㈥ 用mfc編寫程序 access資料庫新表建立失敗
先建立一個和Data.mdb資料庫的連接(connection),然後才能執行SQL語句建立表。
㈦ mfc中access資料庫調用表問題
由於access不支持觸發器,要使用一句sql語句進行兩張表的插入會有困難,你建一個查詢然後進入sql視圖,然後在裡面分別寫兩個insert語句向兩張表裡增加數據就好了,使用的時候直接執行這個函數就可以實現給兩張表同時增加數據了。
㈧ MFC做的登錄界面連接access資料庫
剛剛寫了個access的系統
.cpp中
//hxx函數主要用於打開資料庫連接
void ADOConn::OnInitADOConn()
{
::CoInitialize(NULL); //why初始化OLE/COM庫環境
try
{
m_pCon.CreateInstance("ADODB.Connection"); //創建Connection對象
m_pCon->ConnectionTimeout=3; //設置連接延時
//設置連接字元串why
//m_pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=InfoMan.mdb","","",adModeUnknown);
m_pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=InfoMan.mdb;Persist Security Info=False;Jet OLEDB:Database Password=1234","","",adModeUnknown); }
catch(_com_error e) //捕獲異常
{
AfxMessageBox(e.Description()); //顯示錯誤信息
}
}
.h中
#import "G:\\MY_PRO\\InfoMan\\msado15.dll"no_namespace\
rename("EOF","adoEOF")
_ConnectionPtr m_pCon; //添加一個指向Connection對象的指針
_RecordsetPtr m_pRs; //添加一個指向Recordset對象的指針
㈨ MFC中如何連接access資料庫
比如在你的工程目錄中建一個 dbfvir.mdb //Access資料庫,然後你需要做以下操作:
1.在StadAfx.h裡面添加#include <afxdb.h> //新加入頭文件,用於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(); //將記錄移到下一行
}
}
本程序是自動注冊數據源的,當然可以手動注冊數據源,關於如何注冊數據源並不麻煩,敘述起來不太方面,你就參考其他的吧。不過建議不用手動注冊數據源,這樣你地程序移植性不好.
㈩ mfc存ACCESS2007資料庫問題
比如在你的工程目錄中建一個dbf\vir.mdb//Access資料庫,然後你需要做以下操作:1.在StadAfx.h裡面添加#include//新加入頭文件,用於CDatabase類。2.在StadAfx.h最後的#endif上添加#import"msado15.dll"no_namespacerename("EOF","rsEOF")這時,你要把msado15.dll拷到與dbf同級的目錄,也就是工程目錄里,當然你可以該路徑3.在你自己的工程里,比如MyProc是你建的工程,添加代碼CMyPorcApp::CMyProcApp(){CoInitialize(NULL);SQLConfigDataSource(NULL,ODBC_ADD_DSN,"MicrosoftAccessDriver(*.mdb)",\"DSN=MyImage;DBQ=dbf\\vir.mdb;DEFAULTDIR=dbf");//注冊本地資料庫數據源m_db.OpenEx("DSN=MyImage;;",CDatabase::noOdbcDialog);//MyImage是數據源名稱}4.在前面的函數體之前創建全局變數CDatabasem_db;CRecordsetm_rec(&m_db);5.使用資料庫{CStringstrSQL="select*fromvirdb";BSTRbstrSQL=strSQL.AllocSysString();m_rec.Open(CRecordset::dynaset,strSQL);while(!m_rec.IsEOF()){//使用資料庫的代碼,讀出來的數據都是字元串型的CStringMyVirable;m_rec.GetFieldValue("欄位名",MyVirable);//將某個欄位的當前行的值讀到MyVirabl中//m_rec.MoveNext();//將記錄移到下一行}}本程序是自動注冊數據源的,當然可以手動注冊數據源,關於如何注冊數據源並不麻煩,敘述起來不太方面,你就參考其他的吧。不過建議不用手動注冊數據源,這樣你地程序移植性不好.