c++ - 使用 SQLAPI 从 C++ 控制台应用程序连接到 SQLServer 数据库

标签 c++ sql sql-server api sqlapi++

我想从我的控制台 C++ 应用程序连接到 SQLServer 数据库。 我使用 Microsoft SQL Server 创建了一个名为“Test”的数据库。我还从 sqlapi.com“安装”了 sqlapi。 对于初学者,我只想使用与 sqlapi 一起提供的修改后的示例代码连接到该数据库。

#include <stdio.h>  // for printf
#include <SQLAPI.h> // main SQLAPI++ header

int main(int argc, char* argv[])
{
    SAConnection con; // create connection object
    printf("Howdy!\n");
    try
    {
        con.Connect("Test","COMPNAME\Username","Pwd", SA_SQLServer_Client); // database name//  user name //password

        printf("We are connected!\n");

        // Disconnect is optional
        // autodisconnect will ocur in destructor if needed
        con.Disconnect();

        printf("We are disconnected!\n");
    }
    catch(SAException &x)
    {
        // SAConnection::Rollback()
        // can also throw an exception
        // (if a network error for example),
        // we will be ready
        try
        {
            // on error rollback changes
            con.Rollback();
        }
        catch(SAException &)
        {
        }
        // print error message
        printf("%s\n", (const char*)x.ErrText());
    }

    return 0;
}

编译正常,没有错误,但连接失败。我知道的不仅仅是 c++ 的基础知识,但我昨天才开始使用 SQL。所以我有一些关于连接的问题:

  • 在安装 SQL server 2008 express 期间,我创建了一个名为 Username 和密码 Password 的新 Windows 用户帐户
  • 尝试连接时,是否足以提供数据库名称“Test”或将其命名为 Test.db 或类似名称。对于用户名,我必须写计算机名\用户名才能连接还是只写“用户名”
  • 我在安装 SQLserver 时勾选了一个“自动启动”框,在任务管理器中我看到一些 sql 正在运行。那是服务器,还是我必须在尝试连接之前以某种方式手动启动它?
  • 我是否必须以我创建数据库时所用的用户身份登录,还是知道用户名和密码就足够了?
  • 身份验证方法是“Windows 身份验证”

我想你可能明白问题出在哪里,就是这些著名的第一步....(嗯,我花了很长时间才弄清楚如何在 VS 中建立一个项目...;-)) 如果您有一些答案,或提示我在哪里可以找到它们(一本好书或链接),我将非常感激。

最佳答案

连接SQL时,数据库名即可。您需要知道的是服务器、SQL 实例名称和数据库。在默认安装中,使用默认实例,这意味着您不需要指定实例名称。通常您会看到该服务安装为 SQL Server (MSSQLSERVER)。

您不需要使用您创建数据库时所用帐户的用户名,但权限必须适用于任何其他用户。至少出于测试目的,使用您安装/创建的名称应该为您提供访问数据库的适当权限。

如果您不知道要使用哪个用户或有哪些权限,则需要使用 Management Studio 进行核实。这是 SQL Server Management Studio 2008 Expres 的链接(如果您尚未安装它):

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b

这会让您登录、查看数据库并检查安全措施。

关于c++ - 使用 SQLAPI 从 C++ 控制台应用程序连接到 SQLServer 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5249873/

相关文章:

c++ - 模板类和嵌套类 C++

mysql - 如何使用 SQL 删除重复的元组

c++ - 如何在 C++ 中正确使用没有输入参数的 void 函数

c++ - 是否允许动态数组分配

MySQL:检查用户是否具有角色权限的最佳方法

php - 我们可以使用 IN 语句将 SQL 连接分解为多个查询吗

c# - 尝试使用 C# 执行查询时,SqlCommand 返回错误

sql-server - 哪种分页方法 (Sql Server 2008) 的性能最佳?

.net - 如何在 CLR 存储过程中使用 Entity Framework?

c++ - a>?=b 是什么意思?