Schotti: SQL - Abfrage funktioniert

Hallo,

kann mir jemand helfen! Ich habe ein SQL - Statement das ich mittels
PHP ausführen möchte. Dieses Statement funktioniert aber in PHP nicht
es funktioniert nur wenn ich es im SQL - Server ausführe.
Ist es überhaupt möglich ein solches Statement in php auszuführen.

Nach dem er bei den ersten versuch folgende Fehlermeldung gebracht hat habe ich set "ansi_nulls on" und set "ansi_warnings on" hinzugefügt! Ich kann jedoch mit dieser Fehlermeldung nicht viel anfangen.

Fehlermeldung...

Warning: mssql_query(): message: Heterogene Abfragen erfordern, dass die Optionen ANSI_NULLS und ANSI_WARNINGS für die Verbindung festgelegt werden. So wird eine konsistente Abfragesemantik sichergestellt. Aktivieren Sie diese Optionen, und wiederholen Sie dann die Abfrage. (severity 16) in c:\apache\htdocs\inventar\admin\index.php on line 24

Hier das Statement.

mssql_query("set ansi_nulls on set ansi_warnings on INSERT INTO lieferanten
        SELECT  LF_Nr,
        LF_Name_1
        FROM  OLAPSERVER.MIS_DWH_KNORR.dbo.dim_lieferanten
        ");

Vielen Dank für die Hilfe

Schotti

  1. Hi Schotti!

    [...] habe ich set "ansi_nulls on" und set "ansi_warnings on" hinzugefügt!

    Ich höre von dieser Fehlermeldung zum ersten Mal, aber setze sie doch mal auf off. [1] :)

    [1] Ich weiß allerdings auch nicht, was diese Angaben bedeuten.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hallo Hopsel,

      [...] habe ich set "ansi_nulls on" und set "ansi_warnings on" hinzugefügt!

      Ich höre von dieser Fehlermeldung zum ersten Mal, aber setze sie doch mal auf off. [1] :)

      nein, das ist keine gute Idee.

      [1] Ich weiß allerdings auch nicht, was diese Angaben bedeuten.

      Dann konsultiere bitte zuerst das Handbuch des MS SQL-Server, bevor Du einen solchen Tipp gibst. Nur ein Beispiel aus der Doku:

      <zitat>
      Wenn SET ANSI_WARNINGS auf OFF festgelegt ist, schlagen die CREATE-, UPDATE-, INSERT- und DELETE-Anweisungen in Tabellen mit Indizes auf berechneten Spalten oder indizierten Sichten fehl.
      </zitat>

      INSERT-Anweisungen können also fehlschlagen, dadurch Daten verloren gehen. Das wäre fatal. Ich kann natürlich nicht sagen, dass dies genau auf das Problem des OP zutrifft, da dazu die Informationen viel zu spärlich sind, es zeigt jedoch, dass diese Fehlermeldungen _sehr ernst_ zu nehmen sind.

      Freundliche Grüße

      Vinzenz

  2. Hallo Schotti,

    Nach dem er bei den ersten versuch folgende Fehlermeldung gebracht hat habe ich set "ansi_nulls on" und set "ansi_warnings on" hinzugefügt! Ich kann jedoch mit dieser Fehlermeldung nicht viel anfangen.

    im Handbuch von MS SQL-Server findest Du umfangreiche Informationen über SET ANSI_NULLS und SET ANSI_WARNINGS. Was davon auf Dein spezielles Problem zutrifft, kann aus Deiner Beschreibung natürlich nicht ermittelt werden. Lies bitte selbst dort nach.

    Freundliche Grüße

    Vinzenz

  3. Hallo,

    ich habs jetzt geschafft! Man muss nur ein paar Parameter auf on bzw. off setzten...

    mssql_query("set ansi_padding on
            set ARITHABORT on
            set CONCAT_NULL_YIELDS_NULL on
            set QUOTED_IDENTIFIER on
            set ANSI_NULLS on
            set ANSI_WARNINGS on
            set numeric_roundabort off
             ");

    Gruß

    Schotti