如何实现打开当前目录下的 .mdb数据库文件作为数据源? 注册一个DNS(SQLConfigDataSource),m_db.Open("DNS name"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用connectstring:m_db.OpenEx(_T("Driver={Microsoft Access Driver(*.mdb)};Dbq=your.mdb;Uid=Admin; Pwd="),CDatabase::noOdbcDialog ); 我不希望用MFC,我想如何完全用ODBC API完成该操作?如下例程中:SQLHENV henv;SQLHDBC hdbc;SQLHSTMT hstmt;SQLRETURN retcode; /*Allocate environment handle */retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { /* Set the ODBC version environment attribute */ retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { /* Allocate connection handle */ retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { /* Set login timeout to 5 seconds. */ SQLSetConnectAttr(hdbc, (void*)SQL_LOGIN_TIMEOUT, 5, 0); /* Connect to data source */ retcode = SQLConnect(hdbc, (SQLCHAR*) "Sales", SQL_NTS, (SQLCHAR*) "JohnS", SQL_NTS, (SQLCHAR*) "Sesame", SQL_NTS); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){ /* Allocate statement handle */ retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { /* Process data */ ...; ...; ...; SQLFreeHandle(SQL_HANDLE_STMT, hstmt); } SQLDisconnect(hdbc); } SQLFreeHandle(SQL_HANDLE_DBC, hdbc); } } SQLFreeHandle(SQL_HANDLE_ENV, henv);其中 SQLConnect(hdbc, (SQLCHAR*) "Sales", SQL_NTS, (SQLCHAR*) "JohnS", SQL_NTS, (SQLCHAR*) "Sesame", SQL_NTS);如何直接跟一个.mdb文件进行数据源连接。 使用installer DLL中的SQLConfigDataSource,或setup DLL中的ConfigDSN添加一个数据源,然后好像使用ODBC不能直接联接数据源文件。 在A对话框里点击按钮事件,怎么更新B对话框中的编辑框里信息??? 问个关于操作注册表的问题. 关于asp.net的问题 请问可以说一下MFC框架中运用了虚函数的例子吗? 如何向指定窗口输入字符。 老大们请教窗口隐藏。 vc工程中workspace中的类信息看不到了,有什么办法恢复? VC中 怎样禁止双击标题改变窗口大小? 请教StretchDIBits的用法 请问怎么使计算机不往外发包? 我刚学VC++,请问两个初级问题(函数) 直接使用MFC AppWizard生成的程序竟也出错(我没有改一行代码),请各位指教!!!
m_db.OpenEx(_T("Driver={Microsoft Access Driver(*.mdb)};Dbq=your.mdb;Uid=Admin; Pwd="),CDatabase::noOdbcDialog );
SQLHDBC hdbc;
SQLHSTMT hstmt;
SQLRETURN retcode; /*Allocate environment handle */
retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
/* Set the ODBC version environment attribute */
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
/* Allocate connection handle */
retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
/* Set login timeout to 5 seconds. */
SQLSetConnectAttr(hdbc, (void*)SQL_LOGIN_TIMEOUT, 5, 0); /* Connect to data source */
retcode = SQLConnect(hdbc, (SQLCHAR*) "Sales", SQL_NTS,
(SQLCHAR*) "JohnS", SQL_NTS,
(SQLCHAR*) "Sesame", SQL_NTS); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
/* Allocate statement handle */
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
/* Process data */
...;
...;
...; SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
}
SQLDisconnect(hdbc);
}
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
}
}
SQLFreeHandle(SQL_HANDLE_ENV, henv);其中 SQLConnect(hdbc, (SQLCHAR*) "Sales", SQL_NTS,
(SQLCHAR*) "JohnS", SQL_NTS,
(SQLCHAR*) "Sesame", SQL_NTS);
如何直接跟一个.mdb文件进行数据源连接。
好像使用ODBC不能直接联接数据源文件。