visualstudio2008-使用C++将数据连接并插入到MS Access表中

visual studio 2008 - Connect and Insert data into a MS Access table using C++

本文关键字:插入 MS Access 表中 连接 使用 C++ 数据 visualstudio2008-      更新时间:2023-10-16

我正在处理一个项目,该项目要求我对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中缺少的一些功能,用于编写使用数据库的应用程序。你可能想看看我在上一个问题中展示的内容,以获得一些指导。