Announcement

Collapse
No announcement yet.

Common Language Runtime

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Common Language Runtime

    Hallo!Ich habe ein Problem mit dem Öffnen einer Verbindung!Wenn ich mit context connection=true öffne,funktioniert es!Aber ich brauche zwei Verbindungen,daher würde ich zum einen gerne die context connection nehmen,zum anderen eine Verbindung,wie ich hier unten beschrieben habe,aber es klappt nicht,egal welche Strings ich nehme,was mache ich falsch???

    Code:
    Dim connection As New SqlConnection("Server=SQLServ;Database=Test;User ID=Testuser;Pwd=test")
    Bei dem Versuch in einem CLR-Trigger eine Verbindung zu öffnen,die nicht mit context connection werden soll kommt folgende Fehlermeldung???

    Meldung 6522, Ebene 16, Status 1, Prozedur AggregateKnz, Zeile 1

    .NET Framework-Fehler beim Ausführen der benutzerdefinierten Routine oder des benutzerdefinierten Aggregats 'AggregateKnz':

    System.Security.SecurityException: Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

    System.Security.SecurityException:

    at System.Security.CodeAccessSecurityEngine.Check(Obj ect demand, StackCrawlMark& stackMark, Boolean isPermSet)

    at System.Security.PermissionSet.Demand()

    at System.Data.Common.DbConnectionOptions.DemandPermi ssion()

    at System.Data.ProviderBase.DbConnectionClosed.OpenCo nnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)

    at System.Data.SqlClient.SqlConnection.Open()

    at AggregateKnz.Triggers.AggregateKnz()

  • #2
    einen merkwürdigen connection-string benutzt du da. ich würde dsa so schreiben: "User ID=Testuser;Passwor=test;Initial Catalog=TestDatenbank;Data Source=SQLServ".
    Die reihenfolge ist dabei völlig egal.

    desweiteren hast du da eine SecurityException. Prüf mal nach ob dein user "Test" sich überhaupt mit der Datenbank verbinden darf...

    Comment


    • #3
      Ich habe schon die verschiedensten Varianten probiert einen ConnectionString zusammenzubasteln,die häufigste Fehlermeldung ist:
      System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

      Aber was muss ich da jetzt machen, named pipes sind aktiviert

      Comment


      • #4
        Unter Eigenschaften Server, Abschnitt "Verbindungen" gibt es noch das Häkchen "Remoteverbindungen mit diesem Server zulassen".

        Comment


        • #5
          Wo genau finde ich denn diesen Remotehaken?
          Aber ich glaube der ist aktiviert,da ich bei einer Schnittstellen-Erstellung auch mit so einem ConnectionString auf den Server zugreife und da funktioniert es!

          Comment


          • #6
            Hallo,

            Bei dem Versuch in einem CLR-Trigger eine Verbindung zu öffnen..
            Da der CLR-Trigger bereits innerhalb der Datenbank in einer aktiven Sitzung "lebt", ist kein separater Verbindungsaufbau notwendig, so dass die SQLCLR derartige Versuche unterdrückt (wenn ich mich richtig erinnere). Wenn der Trigger auf andere Datenbanken bzw. Datenbank-Server zugreifen muss, reicht der Standard-Funktionsumfang von T-SQL aus:
            • Vollständig qualifizierter Name: Datenbank.Eigentümer.Objekt
            • LinkedServer-Zugriff: LinkedServerName.Datenbank.Eigentümer.Objekt

            Comment

            Working...
            X