2012-04-01 4 views
1

Ich versuche, mit einer .NET 3.5-Anwendung in WinXP eine Verbindung zu einer SQL Anywhere 5-Datenbank herzustellen (ich weiß, es ist ollld!) und es funktioniert gut von einer eigenständigen Konsolen-App. Aber wenn ich den genauen Code in einem Plugin ausführe und eine separate AppDomain (der einzige Unterschied, den ich zwischen den beiden unterscheiden kann) mit dem folgenden Code ausführen kann, bekomme ich die Fehler weiter unten.SQL Anywhere-Verbindungsfehler: Der Treiber unterstützt die von der Anwendung angeforderte Version des ODBC-Verhaltens nicht

BTW Beide werden als der gleiche Benutzer ausgeführt.

  using (OdbcConnection connection = 
       new OdbcConnection(strConnect)) 
      { 
       OdbcCommand command = new OdbcCommand(query, connection); 
       command.CommandType = CommandType.Text; 
       DataTable posRecordsTable = new DataTable(); 
       connection.Open(); 

OdbcException Ausnahme gibt die folgenden Fehler:

Index # 0 Nachricht: [Sybase] [ODBC-Treiber] Kann nicht Datenbank-Server verbinden: Datenbank-Engine läuft nicht

Index # 1 Nachricht: [Sybase] [ODBC-Treiber] Ungültiges Verbindungszeichenfolgenattribut

Index # 2 Nachricht: [Sybase] [ODBC-Treiber] Ungültiges Verbindungszeichenfolgenattribut

Index # 3 Nachricht: [Microsoft] [ODBC-Treibermanager] Der Treiber unterstützt nicht die Version von ODBC-Verhalten, das von der Anwendung angefordert wurde (siehe SQLSetEnvAttr).

+0

Also was ist die Verbindungszeichenfolge, Benutzer/Passwort usw. verschleiern. Hard tpo sagen, welches Bit davon, es könnte nicht mögen, ohne es zu sehen. –

+0

Tony, das Problem ist, dass die gleiche Verbindungszeichenfolge und Code funktionieren gut aus einer Stand-alone-App = (((((( –

+0

) Immer ein Popel, der. Blick auf diese http://msdn.microsoft.com/ en-us/library/windows/desktop/ms709285 (v = V.85) .aspx, deutet darauf hin, dass es in den App-Domänenkonfigurationen des Plugins und der Konsole einige feine Unterschiede gibt. Vielleicht lohnt es sich, die App-Domain-Einstellungen in jedem zu speichern eine Datei, um zu sehen, ob du etwas erkennen kannst –

Antwort

1

Hat der Treiber auf Ihrer AppDomain die gleiche Konfiguration wie Ihre eigenständige Box? Ich denke, das Überprüfen der Ähnlichkeit der Umgebungen wird dir helfen. Normalerweise werden solche Fehler behoben, indem die Konfigurationsdateien betrachtet werden, von denen der Treiber seine Informationen liest. Ich weiß nicht viel über SQL Anywhere, aber im Allgemeinen bin ich auf solche Probleme gestoßen und habe sie behoben, indem ich die Verbindungsinformationen oder die Konfigurationsdatei geändert habe.

+0

Rajiv, danke für deine Antwort Ja, genau das habe ich mir vorgenommen.Wenn ich erst einmal herausgefunden habe, wie ich das mache und die Lösung für mein Problem finde, werde ich es posten sonst kann es profitieren. –