Announcement

Collapse
No announcement yet.

Problem mit Linked Server und openquery und PHP

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

  • Problem mit Linked Server und openquery und PHP

    Hallo Kollegen :-)

    Habe ein sehr merkwürdiges Problem:

    Ich habe einen MSSQL 2000-Server mit einer Tabelle.
    Ich habe einen zweiten MSSQL-Server 2008 mit einer Tabelle. In diesem zweiten Server habe ich den ersten als Linked-Server eingetragen.
    In der Tabelle auf dem zweiten (2008) habe ich einen insert-Trigger.
    Beim Anlegen vom bestimmten Datensätzen (nennen wir es Dienst 10) liest dieser Trigger von dem linked Server (2000) mithilfe vom openquery einen Wert aus der Tabelle und macht in Abhängigkeit dieses Wertes irgendwas.
    Beim Anlegen eines anderen Dienstes (sagen wir Dienst 1) tut er dies nicht - d. h. auf die Zeile, in der das openquery verwendet wird, kommt er beim Dienst 1 gar nicht.

    Das Ganze funktioniert auch, egal wie ich die Daten in der Tabelle auf dem 2. Server (2008) anlege - per Hand, per C#-Programm - kommt Dienst 1 holt er sich keine Daten vom Linked Server , kommt Dienst 10 holt er sich per openquery die Daten.

    NUR wenn ich Daten per PHP einfüge, legt er nicht mal den Datensatz an. Von diesem PHP-Skript werden NUR Datensätze mit Dienst 1 angelegt - es kann also nicht vorkommen, dass ein von PHP angelegter Datensatz überhaupt in die Zeile kommt, wo openquery vorkommt - alleine das Vorhandensein dieses Befehles im Trigger verhindert, dass ich von diesem PHP-Skript aus Datensätze anlege.

    Hat jemand für DIESES merkwürdige Verhalten eine Idee?

    Hatte vorher schon versucht, mit anderen Techniken von 2008 auf 2000 zuzugreifen, aber das ging alles überhaupt nicht (ich wollte auf dem 2000 er nichts installieren) - und mit openquery geht es ja auch - nur eben nicht von PHP aus..

    Danke für Eure Inspirationen

  • #2
    Hallo,

    melden sich C# und PHP mit dem gleichen Benutzer an? Wenn nicht, tippe ich mal auf die Berechtigungen.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Ja, beide melden sich mit dem gleichen Benutzer an.

      Das merkwürdige ist ja, dass php das openquery überhaupt nicht aufruft, weil php nur Dienst 1 - Datensätze einfügt, openquery aber bei Dienst 10 - Datensätzen aufgerufen wird.

      Alleine das Vorhandensein diese Befehls sorgt dafür, dass der ganze Insert von php aus nicht passiert.

      Aber vielen Dank für Die Gendanken :-)

      Comment


      • #4
        ...alleine das Vorhandensein dieses Befehles im Trigger verhindert, dass ich von diesem PHP-Skript aus Datensätze anlege...
        Meinst du damit, dass wenn du diese Zeile mit dem Zugriff auf den linked server aus dem Trigger entfernst, dann alles richtig funktioniert?
        Wenn ja, dann würde ich mal eine Hilfstabelle mit demselben Aufbau wie die Tabelle mit dem Trigger anlegen und alles was daherkommt in diese Tabelle schreiben (sowohl inserted als auch deleted) und mir mal genau ansehen.

        bye,
        Helmut

        Comment

        Working...
        X