Verbindungsfehler zu SQL Server



  • Hallo Leute

    Um einmal den Umgang mit der Verbindungsherstellung zu lernen wollte ich das Beispiel aus der Hilfe probieren. Doch irgendwie bekomme ich keine Verbindung zum Server. Mein Code sieht wie folgt aus:

    #include "stdafx.h"
    
    using namespace System;
    using namespace System::Data;
    using namespace System::Data::SqlClient;
    
    static private String^ GetConnString() {
    	return "Data Source=(local);Initial Catalog=Northwind;" + "Integrated Security=SSPI";
    }
    int main(array<System::String ^> ^args)
    {
    
    	String^ connString = GetConnString();
    	String^ queryString = "SELECT CategoryID, CategoryName FROM dbo.Categories;";
    	SqlConnection^ connection = gcnew SqlConnection(connString);
    		 SqlCommand^ command = connection->CreateCommand();
    		command->CommandText = queryString;
    
    		try {
    			connection->Open();
    			SqlDataReader^ reader = command->ExecuteReader();
    
    			while (reader->Read()) {
    				Console::WriteLine("\t{0}\t{1}", reader[0], reader[1]);
    			}
    			reader->Close();
    		}
    		catch (Exception^ ex) {
    			Console::WriteLine(ex->Message);
    		}
    		Console::ReadKey();
    
        return 0;
    }
    

    Als Fehlermeldung erhalte ich immer wieder:
    Das keine Verbindung zum Server hergestellt werden konnte, da es sein kann, dass in der Standarteinstellung des Servers keine Remoteverbindung zulässig ist.
    Error 40.

    Ich benutze MS VC++ Express 2005. Wenn ich dort direkt eine Datenverbindung herstelle dann funktioniert es.

    Bitte um Hilfe bin am verzweifeln



  • Hmh, ich bilde mir ein dass ADO.NET über den TCP-Stack mit Datenquellen kommuniziert. Möglicherweise werden lokale Übertragungsmachanismen (Pipes, Shared memory) für das Visual Studio verwendet, Deine Anwendung benutzt jedoch TCP-IP als Übertragungstechnik. Solltest mal schauen, wie Dein Server in dieser Hinsicht konfigueriert ist.



  • Shared Memory ist aktiviert beim Server. Hab auch schon alle anderen aktiviert gehabt. Hat allerdings nichts geholfen. Wie kann ich die Verbindungsart verändern im Code?



  • Die Fehlermeldung besagt dass evtl. als Übertragungsmethode TCP/IP nicht aktiviert ist. Was meinst Du mit "Hab auch schon alle anderen aktiviert gehabt."? Ich bin kein MS-SQL-DBA, aber Du könntest im SQL Server Configuration Manager unter SQL Native Client->Client Protocols und unter SQL Server Configuration->Protocols TCP/Ip einschalten.



  • Ist auf dem Clientrechner auch der 'Microsoft SQL Server Native Client' installiert?



  • Ich habe schon alle Verbindungsarten aktiviert. Hat nichts geholfen. Client PC ist Server PC. Möchte das nur mal lokal schaffen. Verwende MS SQL Server Express.



  • Steht was in den Syslogs? Arbeitsplatz->Verwalten->Ereignisanzeige?



  • Habe nur diese Warnung hier gefunden:

    Die Konfiguration des AdminConnection\TCP-Protokolls in der SQL-Instanz SQLEXPRESS ist ungültig.



  • (local) funktion in der Regel nicht.

    Für lokalen SQLEXPRESS ist der Servername

    HPLAPTOP\SQLEXPRESS

    wobei HPLAPTOP für den namen deines Rechner ersetzt werden muss.

    Brauchst übrigens nur das SQL Management Studio installieren und du siehst ob du eine verbindung hast.



  • Fehler bei der Anmeldung für den Benutzer "..."

    Muss ich den gesamten Pfad der Datenbank mit angeben oder reicht der Name?
    Habe zwar schon beide Varianten probiert aber vl. muss ich noch etwas mitangeben.
    Mit dem Management Studio kann ich problemlos eine Verbindung herstellen.

    EDIT: Es hat kurzzeitig problemlos funktioniert.


Anmelden zum Antworten