gpt4 book ai didi

c++ - 使用 C++ 在 SQL Server 中执行创建表

转载 作者:行者123 更新时间:2023-11-28 07:28:08 26 4
gpt4 key购买 nike

我正在尝试使用以下代码在 SQL Server 中创建一个表:

#include <iostream>
#include <windows.h>
#include <string>
#include <sql.h>
#include <sqltypes.h>
#include <sqlext.h>
using namespace std;

void main()
{
SQLHANDLE sqlevent, sqlconnection, sqlstatement;

SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlevent);

SQLSetEnvAttr(sqlevent, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);

SQLAllocHandle(SQL_HANDLE_DBC, sqlevent, &sqlconnection);

SQLCHAR retstring[10000];
SQLDriverConnect(sqlconnection, NULL, (SQLCHAR*)("DRIVER={SQL Server Native Client 10.0};SERVER=SERVER;DATABASE=DATABASE;UID=CrystalReports;PWD=PASSWORD"), SQL_NTS, retstring, 10000, NULL, SQL_DRIVER_NOPROMPT);

SQLAllocHandle(SQL_HANDLE_STMT, sqlconnection, &sqlstatement);

string commandline;

commandline = "CREATE TABLE NEW_TABLE01(Name VARCHAR(10), Age INT, Salary DOUBLE PRECISSION)";

if(SQL_SUCCESS != SQLExecDirect(sqlstatement, (SQLCHAR*)(commandline.c_str()), SQL_NTS)) // SQLExecDirect always failed to excute
{
cout<<"The create table sql command hasn't been excuted successfully."<<endl;
return;
}
return;
}

但是,代码 if(SQL_SUCCESS != SQLExecDirect(sqlstatement, (SQLCHAR*)(commandline.c_str()), SQL_NTS)) 总是返回一个 TRUE,这意味着SQL命令没有成功执行。

我已经获得了创建表的所有权限,并且我已经手动检查了 SQL Server 中的 SQL 命令,它可以正常工作。

我可以知道我错了什么吗?我怎样才能实现我的目标?

非常感谢。

最佳答案

我想我已经得到了答案,因为受到 C++ SQL Database program 的启发

我意识到 SQL Server 中有不同的模式,因此我改用 CREATE TABLE [ROU].[NEW_TABLE01]。现在我的代码运行良好。

关于c++ - 使用 C++ 在 SQL Server 中执行创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18331776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com