我在Visual Studio 2008中开发了一个简单的应用程序。它是C和C ++的组合。现在我正在尝试连接到SQLserver2005。安装了SQlserver2005 managementExpress工作室。 创建了数据库和表。要知道连接性采取了一个例子来插入来自C代码的数据。但它没有显示任何东西。我知道它非常简单。但是有些地方做错了。 我想澄清下面代码的一些事情。想要使用SQLserver2005在本地连接而不是服务器部分。
是否有任何教程链接可以了解这些事情。
#include "stdafx.h"
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
int main(int argc, char* argv[])
{
/*The following variables will be initialized with necessary values and appended to the strSQL values*/
_bstr_t strName;
_bstr_t strAge;
_bstr_t strDOB;
_bstr_t strSalary;
_ConnectionPtr pConn = NULL;
// Define string variables for ADO connection
_bstr_t strCon("Provider=SQLOLEDB.1;Persist Security Info=False;Username=keerth;Password=keerth;Initial Catalog=keerth516;Data Source=(local);Integrated Security=SSPI;");
HRESULT hr = S_OK;
//Initialize the COM Library
CoInitialize(NULL);
try
{
//Create the Connection pointer
hr = pConn.CreateInstance((__uuidof(Connection)));
if(FAILED(hr))
{
printf("Error instantiating Connection object\n");
goto cleanup;
}
//Open the SQL Server connection
hr = pConn->Open(strCon,"keerth","keerth",0);
if(FAILED(hr))
{
printf("Error Opening Database object using ADO _ConnectionPtr \n");
goto cleanup;
}
/*Initialize the values */
strName = "'C++ ADO insert Sample',";
strAge = "23,";
strDOB = "'13/04/1988',";
strSalary = "16600.10)";
/* Append the values to the Insert Statement */
_bstr_t strSQL("Insert into Table1(NAME,AGE,DOB,SALARY) Values(");
strSQL += strName + strAge + strDOB + strSalary ;
printf("%s\n",(LPCSTR)strSQL);
//Execute the insert statement
pConn->Execute(strSQL,NULL,adExecuteNoRecords);
printf("Data Added Successfully\n",(LPCSTR)strSQL);
//Close the database
pConn->Close();
}
catch(_com_error &ce)
{
//printf("Error:%s\n",ce.ErrorInfo);
printf("Error:%s\n,",(char*)ce.Description());
}
cleanup:
CoUninitialize();
return 0;
}
答案 0 :(得分:1)
您可能希望在http://msdn.microsoft.com/en-us/library/windows/desktop/ms678086(v=vs.85).aspx处查看ADO API。
我认为在连接字符串中将和作为参数提供用户名/密码作为参数是不合理的。设置“Integrated Security = SSPI”会激活集成的Windows登录,这样甚至会使您的用户名/密码更加冗余。 connectionString记录在MSDN(上面的链接)中,这里记录了特定于数据库提供程序的连接字符串部分:http://msdn.microsoft.com/en-us/library/windows/desktop/ms681020(v=vs.85).aspx。
“pConn->打开(STRCON” keerth “ ”keerth“,0);”打开与数据库服务器的连接。
3.通常在MYSQL中我们将创建DNS。但是如何在SQL server2005中提及DNS。
这是什么意思?
4.如果我想将变量值(将在控制台窗口中显示)插入到database.Kindly让我知道是否可能?如果是这样,建议我实施它。
您可以将ADO RecordSet与AddNew或示例中的Execute函数一起使用。使用Execute,您可以将adCmdText添加到最后一个参数。