C++ 使用C++;

C++ 使用C++;,c++,sql,create-table,C++,Sql,Create Table,我正在尝试使用以下代码在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, sqlconne

我正在尝试使用以下代码在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;
}
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
void main()
{
SQLHANDLE sqlevent、sqlconnection、sqlstatement;
SQLAllocHandle(SQL\u HANDLE\u ENV、SQL\u NULL\u HANDLE和sqlevent);
SQLSetEnvAttr(sqlevent,SQL_ATTR_ODBC_版本,(SQLPOINTER)SQL_OV_ODBC3,0);
SQLAllocHandle(SQL\u HANDLE\u DBC、sqlevent和sqlconnection);
SQLCHAR retstring[10000];
SqlDriverConnection(sqlconnection,NULL,(SQLCHAR*)(“驱动程序={SQLServer原生客户端10.0};服务器=服务器;数据库=数据库;UID=晶体报告;PWD=密码”),SQL\NTS,retstring,10000,NULL,SQL\u驱动程序\u NOPROMPT);
SQLAllocHandle(SQL\u HANDLE\u STMT、sqlconnection和sqlstatement);
字符串命令行;
commandline=“创建新表\u TABLE01(名称VARCHAR(10),年龄INT,工资双精度)”;
如果(SQL_SUCCESS!=SQLExecDirect(sqlstatement,(SQLCHAR*)(commandline.c_str()),SQL_NTS))//SQLExecDirect始终无法执行
{

我想我已经得到了答案,因为


我意识到SQL Server中有不同的模式,因此我使用
createtable[ROU].[NEW_TABLE01]
取而代之。现在我的代码运行良好。

太好了,很高兴你能自己解决这个问题。如果你想结束这个问题,你可以接受自己的答案。@Miklossaubert我愿意,但系统只允许我在两天后接受自己的答案。:-)