turk porno porno escort rokettube
Ergebnis 1 bis 8 von 8

Thema: ibmDb2 Select limit funktioniert nicht

  1. #1
    Neuer Benutzer
    Registriert seit
    19.09.2014
    Beiträge
    29
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Standard ibmDb2 Select limit funktioniert nicht

    Hallo Community,
    ich habe ein weiteres Problem bei meiner Datenbankabfrage.
    Und zwar möchte ich die Abfrage auf 50 Datensätze begrenzen.
    Bevor ich Zend\Db\Sql genutzt habe (und das SQL von Hand zu Fuß erstellt habe) sah das ganze so aus:
    Code:
    Select ... From .... Where ... Order by.... fetch FIRST 50 ROWS ONLY
    Nun nutze ich jedoch Zend\Db\Sql\Select. Hier gibt es zwar die Limit Funktion, die jedoch anscheinend nicht auf ibmDb2 angepasst wurde.
    Denn wenn ich folgende Abfrage machen möchte:
    PHP-Code:
    //...
    $select->where($where);
    $select->order("ORDER BY....");
    $select->limit(50); 
    Wird mir ein SQL erzeugt, welches auf
    Order by ... LIMIT '50'
    endet.
    Bei db2 gibt es die Limit funktion jedoch nicht und ich bekomme die Fehlermeldung:
    Warning: Invalid argument supplied for foreach() in /www/zendsvr/htdocs/Projektverwaltung/vendor/zendframework/zendframework/library/Zend/Db/Sql/Platform/IbmDb2/SelectDecorator.php on line 116
    Ich bin auch schon länger auf der Suche und habe unter anderem folgendes gefunden:https://github.com/zendframework/zf2/issues/6369
    Wenn ich es richtig sehe, sollte dieses Problem schon seit längerem gefixt sein, ist es aber mmn nicht.

    Jemand eine Idee wie ich diese Limitierung setzen kann?
    Danke

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von isac91 Beitrag anzeigen
    Wenn ich es richtig sehe, sollte dieses Problem schon seit längerem gefixt sein, ist es aber mmn nicht.
    Welche Version vom ZF hast du?
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. #3
    Neuer Benutzer
    Registriert seit
    19.09.2014
    Beiträge
    29
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Standard

    Zitat Zitat von Kaiuwe Beitrag anzeigen
    Welche Version vom ZF hast du?
    Zend Framework 2.3.3

  4. #4
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von isac91 Beitrag anzeigen
    Zend Framework 2.3.3
    Und genau da ist doch eine entsprechende Funktionalität drin: https://github.com/zendframework/zf2...rator.php#L107
    Oder?
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  5. #5
    Neuer Benutzer
    Registriert seit
    19.09.2014
    Beiträge
    29
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Standard

    Zitat Zitat von Kaiuwe Beitrag anzeigen
    Und genau da ist doch eine entsprechende Funktionalität drin: https://github.com/zendframework/zf2...rator.php#L107
    Oder?
    Ja, diese Funktionalität ist in der Klasse drin. Aber anscheinend wir diese nicht angesprochen oder ist noch fehlerhaft.
    Weil wie oben beschrieben, bekomme ich eine Fehlermeldung sobald ich $select->limit(50) in meinen Quellcode übernehme.

  6. #6
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von isac91 Beitrag anzeigen
    Weil wie oben beschrieben, bekomme ich eine Fehlermeldung sobald ich $select->limit(50) in meinen Quellcode übernehme.
    Vergleiche mal deine erstelltes SQL-Objekt mit den Unit Tests, vielleicht findest du dort einen Ansatz.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  7. #7
    Neuer Benutzer
    Registriert seit
    19.09.2014
    Beiträge
    29
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Standard

    Zitat Zitat von Kaiuwe Beitrag anzeigen
    Vergleiche mal deine erstelltes SQL-Objekt mit den Unit Tests, vielleicht findest du dort einen Ansatz.
    Habe nun mal alles verglichen und tatsächlich habe ich es nun zum laufen bekommen..allerdings immernoch nicht komplett wie gewollt.
    Problem war folgende Zeile:
    PHP-Code:
    $select->quantifier(Select::QUANTIFIER_DISTINCT); 
    Die aus meinem Select ein Select Distinct macht.

    Nun habe ich also mein Limit, aber kein Distinct mehr in meiner Abfrage

    EDIT
    Habe es nun mal folgendermaßen eingebaut:
    PHP-Code:
     $select->columns(array('NR' => new Expression('DISTINCT IDENTNR'), 
    Geändert von isac91 (09.01.2015 um 18:25 Uhr)

  8. #8
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von isac91 Beitrag anzeigen
    Habe nun mal alles verglichen und tatsächlich habe ich es nun zum laufen bekommen..
    Kannst du dies bitte hier aufzeigen, damit auch andere Leser in den Genuss der Lösung kommen. Danke!
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

Ähnliche Themen

  1. IndexController funktioniert nicht
    Von Spin_1987 im Forum Einsteigerfragen
    Antworten: 1
    Letzter Beitrag: 13.06.2011, 16:06
  2. Seite funktioniert nicht (ZF)
    Von vitaminb im Forum Einsteigerfragen
    Antworten: 5
    Letzter Beitrag: 11.05.2010, 17:37
  3. Zend_Cache_Frontend_Page funktioniert nicht.
    Von CHAOSFISCH im Forum Core
    Antworten: 18
    Letzter Beitrag: 10.07.2009, 17:36
  4. Routing funktioniert nicht
    Von Minimal im Forum Einsteigerfragen
    Antworten: 12
    Letzter Beitrag: 26.05.2009, 15:23
  5. Suche funktioniert nicht
    Von wagneru im Forum Über das Forum
    Antworten: 5
    Letzter Beitrag: 04.08.2008, 14:49

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •