Announcement

Collapse
No announcement yet.

SQL-Statement eines Dataadapters ermitteln

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

  • SQL-Statement eines Dataadapters ermitteln

    Hallo,

    mit folgender Zeile kann ich beim Debuggen das SQL-Statement eines DataAdapters abfragen:


    daTermineAng.SelectCommand.commandtext

    Der Haken dabei ist, dass sämtliche Parameter-Werte wie z.B. "@kategorie" vorher schon gesetzt wurden,

    daTermineAng.SelectCommand.Parameters("@kategorie" ).Value=2

    trotzdem werden sie nicht mit ausgegeben, "daTermineAng.SelectCommand.commandtext" hat den Wert "SELECT @kategorie AS Text, .......",

    warum ?

    Ich suche eine Möglichkeit das fertige SQL-Statement anzuzeigen. Selbst der "SQL-Profiler" von der Datenbank SQL-Server, auf den zugegriffen wird, zeigt lediglich das SQL-Statement bevor die Parameter durch die tatsächlichen Werte ersetzt wurden.

    Florian Hroch

  • #2
    Ideen: 1. Vor dem Execute-Befehl zuerst Prepare() aufrufen, dann CommandText kontrollieren. 2. Zeigt vielleicht ToString() den kompletten Befehl? Jürgen

    Comment


    • #3
      As Designed. Ansonsten würdest du ja keine Parameter verwenden und hättest die üblichen SQL-Injection-Probleme.

      Solltest du auch noch dein Statement Preparen wirst du nur noch die Paramterwerte + eine ID im SQL-Profiler sehen.

      Comment


      • #4
        als das mit dem prepare hat nicht funktioniert. Und was ist mit "as designed gemeint ?"


        Florian Hroch

        Comment


        • #5
          Wenn du SQL-Statements mit Parameter verwendest müssen die Daten so zum SQL Server gesendet werden. Ansonsten wäre es keine SQL-Statement mit Parameter.

          Deine Parameterwerte solltest du im Profiler ganz am Schluß sehen. (AFAIK @1 =..., ...)

          Comment


          • #6
            Hallo,

            Selbst der "SQL-Profiler" von der Datenbank SQL-Server, auf den zugegriffen wird, zeigt lediglich das SQL-Statement bevor die Parameter durch die tatsächlichen Werte ersetzt wurden.
            der Profiler vom MS SQL Server zeigt in einem Standard-Trace sowohl die parametrierte Anweisung als auch die übergebenen Parameterwerte an. Allerdings werden die Parameterwerte durch Kommas abgetrennt ans Ende der Anweisungszeichenkette angehängt, weil der MS SQL Server die Daten vom Client in exakt dieser Form erhält ;-)

            Comment

            Working...
            X