我想从我的控制台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我从昨天开始。所以我对连接有一些疑问:
我想你可能会明白麻烦在哪里,这些着名的第一步......(好吧我花了很长时间才弄清楚如何在VS中建立一个项目...... ;-)) 如果你有一些答案,或者我可以找到它们的提示(一本好书或链接),我将非常感激。
答案 0 :(得分:1)
连接到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
这将允许您登录,查看数据库,并检查安全性。
答案 1 :(得分:1)
如果您使用的是Windows身份验证,则无需传递用户名和密码。您需要正确设置数据库以允许任何人“选择”权限。我相信SQL Server中的通用用户称为“guest”,并且可能默认配置为允许该用户。
我相信你遇到的真正问题是你需要将服务器名称和数据库名称一起传递,例如:
con.Connect("SQLEXPRESS@Test","","", SA_SQLServer_Client);
或可能
con.Connect("ELVIS\SQLEXPRESS@Test","","", SA_SQLServer_Client);
您需要知道的只是here,您只需仔细阅读即可。
答案 2 :(得分:0)
con.Connect("SQLEXPRESS@Test","","", SA_SQLServer_Client);
在“@”之后输入数据库的名称。
答案 3 :(得分:0)
SQLAPI.h用于连接到mysql数据库,正如您提到的,您尝试连接到sqlserver时需要使用ss6API.h而不是http://sqlapi.com/ServerSpecific/SQLServer_DbLibrary.html#Getting%20native%20SQL%20Server%20API * *