SQL的ConnectionString调试一步一步?(sql connectionstring d

2019-10-29 12:39发布

你好,我希望这是我的关于SQL connectionsstrings最后发表的帖子....

我已经写在VS2010Express一个win32console应用程序,我尝试连接我的SQL服务器。 我觉得我做的一切权利和“唯一”的问题是连接字符串。 任何人都可以请确认是否有在代码中没有其他的大错?

关于连接字符串,我已经试了又试....一个网站建议,你可以通过创建桌面上connect.udl文件得到一个有效的字符串,它doublklick并通过对话你的工作方式。 当在文本编辑再次打开它的正确连接字符串中找到。 在我而言,这将是:

供应商= SQLOLEDB.1;坚持安全信息= FALSE;用户ID =测试;初始目录= Stackhoover;数据源=彼得潘\ SQLEXPRESS

没有任何工作....有没有一种方法,以“调试”的字符串? 要查看部分是错误的,例如“错误的PWD”或“服务器未找到”? 防火墙是关闭的,现在,所以这不是问题。 _HR返回“E_FAIL”调试器步入msado15.tli line1271

谢谢你在那里任何帮助! 编码愉快!

#include "stdafx.h"
void HandleError(HRESULT)
{
MessageBox( NULL, L"ERROR", L"XX!",MB_ICONEXCLAMATION |MB_RETRYCANCEL);
}

int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr;                                     //http://en.wikipedia.org/wiki/HRESULT  

//creating a connection object
USEADO::_ConnectionPtr connection;
//create a recordset object
USEADO::_RecordsetPtr recordset;

 //      Initialize COM  
    if(FAILED(hr = CoInitialize(NULL)))
    {
        HandleError(hr); 
        return hr;
    }   

if(FAILED(hr = connection.CreateInstance(__uuidof(USEADO::Connection))))
    {
        HandleError(hr); 
        return hr;
    }

if(FAILED(hr = recordset.CreateInstance(__uuidof(USEADO::Recordset))))
    {
        HandleError(hr); 
        return hr;
    }

    connection->CursorLocation = USEADO::adUseServer; //http://dev.mysql.com/tech-resources/articles/vb-cursors-and-locks.html
                                       //adUseClient;


    //Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
    connection->Open(L"Data Source=PETERPAN\SQLEXPRESS;Initial Catalog=Stackhoover; User Id=Test; Password = Test", L"", L"", USEADO::adConnectUnspecified);
    //connection->Open(L"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=Test;Initial Catalog=Stackhoover;Data Source=PETERPAN\SQLEXPRESS", L"Test", L"Test", USEADO::adConnectUnspecified);
    //DRIVER=SQL Native Client;SERVER=.\SQLExpress;Trusted_Connection=Yes;Initial Catalog=ADOTest;
    //connection->Open(L"DRIVER=SQL Native Client;SERVER=PETERPAN\SQLEXPRESS;Trusted_Connection=Yes;Initial Catalog=Stackhoover;", L"", L"", USEADO::adConnectUnspecified);

return 0;
}

我的stdafx.h

 #pragma once
#import "C:\Program\Delade filer\System\ado\msado15.dll"    rename_namespace("USEADO"),rename("EOF","EndOfFile")
// Define ADO Namespace as global
using namespace USEADO;

#include "targetver.h"
#include <stdio.h>
#include <tchar.h>

Answer 1:

你需要逃离反斜杠,那么:

connection->Open(L"Data Source=PETERPAN\SQLEXPRESS;Initial Catalog=Stackhoover; User Id=Test; Password = Test", L"", L"", USEADO::adConnectUnspecified);

应该:

connection->Open(L"Data Source=PETERPAN\\SQLEXPRESS;Initial Catalog=Stackhoover; User Id=Test; Password = Test", L"", L"", USEADO::adConnectUnspecified);


Answer 2:

如果您有User ID ,那么你需要password 。 我还忽略Persist Security Info 。 你需要一个尾随; 。 见ConnectionStrings.com和MS页面

我期望的连接字符串看起来更像这取决于你使用的是SQL Server登录或Windows身份验证的其中之一

提供商= SQLOLEDB.1;用户ID =测试;密码= FOO;数据库= Stackhoover;服务器=彼得潘\ SQLEXPRESS;

供应商= SQLOLEDB.1;集成安全性= TRUE;数据库= Stackhoover;服务器=彼得潘\ SQLEXPRESS;



文章来源: sql connectionstring debug step by step?