你好,我希望這是我最後一篇關於sql connectionsstrings的文章....sql connectionstring逐步調試?
我有一個用VS2010Express編寫的win32console應用程序,我嘗試連接我的SQL服務器。 我想我做的一切正確,並且「唯一」的問題是連接字符串。任何人都可以確認代碼中沒有其他重大錯誤嗎?
關於連接字符串,我試過並嘗試過...... 一個網站建議您可以通過在桌面上創建一個connect.udl文件來獲取有效的字符串,然後雙擊它並按照對話框中的方式工作。當在texteditor中再次打開它時,找到正確的連接字符串。 在我而言,這將是:
提供商= SQLOLEDB.1;堅持安全信息= FALSE;用戶ID =測試;初始目錄= Stackhoover;數據源=彼得潘\ SQLEXPRESS
沒有工作要麼......有沒有辦法「調試」的字符串?要查看哪部分是錯誤的,例如「錯誤密碼」或「服務器未找到」? 防火牆現在關閉,所以這不是問題。 _hr返回「E_Fail」 調試器進入msado15.tli行1271
謝謝你的幫助! 快樂編碼!
#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>
您是否安裝了MDAC? SQL服務器服務是否正在運行?你多久得到錯誤?它是直接的嗎?你看過服務器上的日誌嗎?實例名稱是否正確(實例名稱=端口號,這就是爲什麼它很重要)另外,您需要獲取數字錯誤代碼。 [This Thread](http://www.codeguru.com/forum/showthread.php?p=211179)可能有幫助 – dawebber 2011-04-26 19:58:38
@gbn我用sp_who2(SELECT * FROM sys.sysprocesses),它看起來像我連接! ;-)啤酒的時間問候Lumpi – Lumpi 2011-04-26 20:14:04