c++ - 试图通过 C++ ODBC 连接连接到 MSSQL 但找不到正确的演示

标签 c++ sql-server database odbc

我正在我的 macbook pro 上编程,需要连接到我公司的 MSSQL 服务器来为商业产品编程。

您实际上是如何连接到它的?我在 MSDN 网站上查找,但不太明白。

出于我的演示目的,我只是打算在 XCODE 中创建一个新项目并创建一个将输出数据的控制台应用程序。一旦建立,我将通过连接实现不同的事情。

编辑:添加了一些代码:

#include <iostream>
//#include <windows.h>
#include <sqlext.h>
#include <sqltypes.h>
#include <sql.h>

using namespace std;

int main(int argc, const char * argv[])
{
SQLHENV hEnv;
SQLHDBC hDbc;
string connection = "AAA";
string db = "DB";
string user = "user";
string pass = "password";
string data = "DRIVER={SQL Server Native Client 11.0};SERVER="+connection+";DATABASE="+db+";UID="+user+";PWD="+pass+";";
//SQLCHAR* pwszConnStr = (SQLCHAR*)("Driver={SQL Server Native Client 11.0};Server="+connection+";Database="+db+";Uid="+user+";Pwd="+pass+";");
SQLCHAR* pwszConnStr = (SQLCHAR*)data.c_str();
//cout  << data << endl;
cout  << pwszConnStr << endl;
//error seems to occur in 1 of the 3 SQL statements below.
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);

RETCODE rc = SQLDriverConnect(hDbc, NULL, pwszConnStr, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_PROMPT);

if(rc == SQL_SUCCESS){
    cout << "Connected to the Database" << endl;
}else{
    cout << "No Connection Established" << endl;
}


return 0;
}

它编译失败,我认为这与我注释掉 windows.h 文件有关。问题是在我的 macbook pro 上找不到 windows.h,我认为它是在 VStudios 中开发时找到的。

最佳答案

对于 C++,我推荐使用 QT 库 http://qt-project.org/downloads

...
#include <QtSql>
...

int main(int argc, char *argv[])
{
    ....

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName("DRIVER={SQL Server};Server=YOUR SERVER;Database=YOUR DB NAME;User ID=YOUR USER;Password=YOUR PASS;Trusted_Connection=yes;");

    if(!db.open())
    {
       qDebug() << db.lastError().text();

       return 0;
    }

    ....
}

关于c++ - 试图通过 C++ ODBC 连接连接到 MSSQL 但找不到正确的演示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238821/

相关文章:

C++ 11 binary_search 和 lambda 函数用例

c++ - C++中的哈希函数,用于将字符串转换为int

sql-server - 从不同的表列排序非常慢

Sql View根据另一列计算列

c++ - C 和 C++ 之间的区别 ( lseek() )

c++ - 使函数在 C++ 中正常工作

sql - 查询显示表之间不匹配的记录

sql - 在mysql中过滤一个组

php - 无法加载驱动程序 : com. mysql.jdbc.Driver

database - 在数据仓库(关系)中使用外键是一种好习惯吗?