使用SQLAPI从C++控制台应用程序连接到SQLServer数据库
我想从我的控制台C++应用程序连接到SQLServer数据库。 我已经使用Microsoft SQL Server来创建一个名为“Test”的数据库。我也从sqlapi.com“安装”了sqlapi。 对于初学者,我只是想使用与sqlapi一起发货的修改示例代码连接到该数据库。使用SQLAPI从C++控制台应用程序连接到SQLServer数据库
#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的我创建了一个叫做用户名与密码,密码一个新的Windows用户帐户
- 当试图连接,是它足以让数据库名称“测试”或者它是Test.db或类似的。对于用户名,我必须写Computername \用户名连接或只是“用户名”
- 我安装SQLserver时票“开始自动”框,并在taskamanager我看到一些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
,让你登录,查看数据库,检查什么安全到位。
如果您使用的是Windows身份验证,则不需要传递用户名和密码。您需要正确设置数据库以允许任何人“选择”权限。我相信SQL Server中的通用用户名为“guest”,并且可能默认配置为允许这样做。
真正发出你有,我认为,这是你需要通过服务器和数据库的名称在一起,就像:
con.Connect("[email protected]","","", SA_SQLServer_Client);
或可能
con.Connect("ELVIS\[email protected]","","", SA_SQLServer_Client);
所有您需要知道是here,你只是仔细阅读。
SQLAPI.h用于连接到MySQL数据库,因为你提到你试图连接到SQLSERVER你需要使用ss6API.h代替http://sqlapi.com/ServerSpecific/SQLServer_DbLibrary.html#Getting%20native%20SQL%20Server%20API* *
尝试使用“COMPNAME \\用户名”,而不是“COMPNAME \ Username” – Erik 2011-03-09 17:47:12
我从来没有听说过sqlapi.com,但是如果他们的代码需要连接Windows用户名*和*密码,它肯定是坏的。为什么不使用经过测试和证明的用于SQL Server的C++ API,如ODBC,OLEDb或ADO? – 2011-03-09 17:52:45