[转载]MFC 如何连接数据库(c++ 连接sql server )老

[转载]MFC 如何连接数据库(c++ 连接sql server )老,第1张

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 hRestry{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?}

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("ODBCDRIVER={%s}DSN=''DBQ=%s",sDriver,sFile)

// Open the database

database.Open(NULL,false,false,sDsn)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6924816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存