Site Announcements

Liebe Gäste des Forums, wir freuen uns, dass ihr zu uns gelangt seid.
Windev ist eine sehr umfangreiche und starke Entwicklerumgebung für Anwendungen unter Windows, Linux und Internetapplikationen inkl. Mobile.
Hier sind Antworten und Anregungen dazu zu finden!
Möchtest du aktiv mitschreiben? Dann melde dich durch Klick auf den Text "Registrieren" hier rechts oberhalb an.

Queries mit Parametern, auch für SORT ...

Wie ich gerade feststellen musste, reagieren Upper() und Lower() anders als erwartet (aus xBase Sicht) ... hierfür gibt es eine andere Funktion. Hier sollen solche allgemeinen Themen behandelt werden.

Queries mit Parametern, auch für SORT ...

Beitragvon BRANDELH » 1. September 2010, 09:53

Hallo,

in der Hilfe wird es zwar erklärt, aber dennoch bereitete es mir Probleme die Sortierung mit Parameter umzusetzen. Das größte Problem war, wie übergebe ich den Parameter (= Feldname und Sortierfolge einfach als Text), daher hier ein kurzes Beispiel:

Im Query Editor habe ich eine Query QRY_LG_Liste erzeugt, die SORT nach PARAMETER ausgewählt hat. Diesen Parameter habe ich den Namen SortOrder gegeben. Der Name ist natürlich frei wählbar und wird angezeigt.

Im Quellcode habe ich eine ComboBox die die Auswahl in die Variable gsLG_Sort speichert, nach dieser Auswahl setze ich die Sortierreihenfolge als Parameter SortOrder
Code: Alles auswählen
SWITCH gsLG_Sort
   CASE "L" : QRY_LG_Liste.SortOrder = "Name ASC"
   CASE "S" : QRY_LG_Liste.SortOrder = "Strasse ASC"
   CASE "P" : QRY_LG_Liste.SortOrder = "PLZ ASC"
   CASE "O" : QRY_LG_Liste.SortOrder = "ORT ASC"
   CASE "D" : QRY_LG_Liste.SortOrder = "AbleseDatLG ASC"
   OTHER CASE : QRY_LG_Liste.SortOrder = "LgNr ASC"
END


direkt nach dem Setzen des Parameters (es könnten auch mehr sein) folgt der Aufruf der Query, die im Erfolgsfalle die Daten bereitstellt.

Code: Alles auswählen
IF HExecuteQuery(QRY_LG_Liste) THEN
   HReadFirst(QRY_LG_Liste)
   WHILE NOT HOut(QRY_LG_Liste)
      info("Die Aktuelle Zeile: Name="+QRY_LG_Liste.Name+" ... " )
   END
END


Wenn man die Werte ändern will, dann muss man bei HExecuteQuery() die richtige Option setzen oder aber - das bevorzuge ich - eine expliziete Speicher Routine aufrufen.

Ich kam darauf im Testmodus des Queryeditors, dort konnte ich rechts "mögliche Werte" anzeigen lassen und dort stand dann der Feldname mit Sortierfolge, diesen Wert habe ich ins Programm übernommen.

Viel Neuland für einen DBF - Xbase++ User ;-)
BRANDELH
Site Admin
 
Beiträge: 199
Registriert: 30. Juni 2010, 14:31
Wohnort: Germersheim
Has thanked: 0 time
Have thanks: 2 times

Zurück zu Umsteigerfragen ... was läuft anders als erwartet ...

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron