visualstudio2008-使用C++将数据连接并插入到MS Access表中
visual studio 2008 - Connect and Insert data into a MS Access table using C++
我正在处理一个项目,该项目要求我对MS Access表执行插入查询。我一直在网上到处搜索,但似乎什么都不起作用。如有任何帮助,我们将不胜感激。此外,我还必须为VS2008和Visual C++6.0编写这篇文章。感谢
使用ODBC。连接到数据库并执行INSERT查询的示例:
#include <stdio.h>
#include <tchar.h>
#include <Windows.h>
#include <sqlext.h>
WCHAR szDSN[] = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=C:\users.mdb";
int _tmain(int argc, _TCHAR* argv[])
{
HENV hEnv;
HDBC hDbc;
/* ODBC API return status */
RETCODE rc;
int iConnStrLength2Ptr;
WCHAR szConnStrOut[256];
WCHAR* query = L"INSERT INTO [Users] (name,surname) VALUES ('John','Smith');";
HSTMT hStmt;
/* Allocate an environment handle */
rc = SQLAllocEnv(&hEnv);
/* Allocate a connection handle */
rc = SQLAllocConnect(hEnv, &hDbc);
/* Connect to the database */
rc = SQLDriverConnect(hDbc, NULL, (WCHAR*)szDSN,
SQL_NTS, (WCHAR*)szConnStrOut,
255, (SQLSMALLINT*)&iConnStrLength2Ptr, SQL_DRIVER_NOPROMPT);
if (SQL_SUCCEEDED(rc))
{
wprintf(L"Successfully connected to database. Data source name: n %sn",
szConnStrOut);
/* Prepare SQL query */
wprintf(L"SQL query:n %sn", query);
rc = SQLAllocStmt(hDbc,&hStmt);
rc = SQLPrepare(hStmt, query, SQL_NTS);
/* Excecute the query */
rc = SQLExecute(hStmt);
if (SQL_SUCCEEDED(rc))
{
wprintf(L"SQL Successn");
}
else{
wprintf(L"SQL Failedn");
}
}
else
{
wprintf(L"Couldn't connect to %s.n",szDSN);
}
/* Disconnect and free up allocated handles */
SQLDisconnect(hDbc);
SQLFreeHandle(SQL_HANDLE_DBC, hDbc);
SQLFreeHandle(SQL_HANDLE_ENV, hEnv);
getchar();
return 0;
}
来源:https://learn.microsoft.com/en-us/previous-versions/office/developer/office-2007/cc811599(v=office.12)
您有(太多)选择:ADO/RDO、DAO、ODBC和OLE DB,仅举几个例子。DAO已被正式弃用。ADO/RDO还没有正式发布,但微软似乎也不再关心它们了。然而,对于VC 6来说,过时几乎是生活中的一个事实。我相信在VS2008下,它们至少在一定程度上仍然受到支持,但例如,它们不再包括任何帮助使用DAO的向导。
这基本上让OLE DB和ODBC成为您的第一对选择。微软仍在积极支持和开发它们,其他公司无论如何都不太可能提供任何重大优势。
我应该补充一点,VC++6.0提供了VS2008中缺少的一些功能,用于编写使用数据库的应用程序。你可能想看看我在上一个问题中展示的内容,以获得一些指导。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 预处理器:插入结构名称中的前一个行号
- 如何在MS Visual Studio 2019中运行QT UI
- 在未初始化映射的情况下,将值插入到映射的映射中
- 如何在c++中只将键插入到bimap的一侧
- 如何将结构插入到集合中并打印集合的成员
- C++json插入数组
- Visual Studio 2019:插入多个C++风格的单行注释
- nlohmann-json将一个数组插入到另一个数组中
- 有效地使用std::unordered_map来插入或增加键的值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 正在插入动态数组
- 插入或删除时获取usb的dos_name
- 叮叮当当在修复时插入多个"覆盖"说明符
- 链表c++插入,所有情况都已检查,但没有任何工作
- 将重物插入std::map
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- visualstudio2008-使用C++将数据连接并插入到MS Access表中
- 如何截取视图的屏幕截图并将图片插入MS-Word文档中