Databrowser.find Syntax

Spezielle Fragen zu PostgreSQL, MySQL, SQLite, SQL ...
Antworten
hansheiser
Foriker
Beiträge: 21
Registriert: Do 30. Mai 2024, 18:02
Kontaktdaten:

Databrowser.find Syntax

Beitrag von hansheiser » Di 11. Jun 2024, 17:36

Hi,

es funktioniert nicht :-/

Beispiel:
Databrowser1 enthält als erste Spalte 'drive_index'.
Einer der Datensätze enthält in drive_index den Eintrag 'testIndex'

Wie müsste dann das entsprechende Databrowser.find Argument aussehen um die Zeile mit diesem
Datensatz anzuspringen?

Ich habe u.A. Databrowser.find("drive_index='testIndex'") und fast alle möglichen Varianten davon getestet

Fehler ist immer:
Query failed: You have an error in your SQL-Syntax.

Benutzeravatar
Honsek
Foriker
Beiträge: 515
Registriert: Do 4. Okt 2007, 18:01
Kontaktdaten:

Re: Databrowser.find Syntax

Beitrag von Honsek » Fr 14. Jun 2024, 16:47

Hallo hansheiser,

ich arbeite immer nur direkt auf der SQL-Ebene. Das hat auch gute Gründe. Erstens mache ich das bei Datenbanken schon seit über 40 Jahren erfolgreich und zweitens verstecken die von Dir angegebenen Methoden die dahinter liegenden SQL-Anweisungen. Deshalb bleiben alle angegebenen Fehlermeldungen nebulös. Beachte auch, dass dieser Databrowser eine gambas-spezifische 'Erfindung' ist. Sonst gilt dieser Satz aus der Dokumentation: If you don't need database independence, do as you like! :-) .
Mit folgenden Anweisungen kommst Du sicher zum Ziel:

- SQL-Anweisung erzeugen
- Datenbank-Result erzeugen
- Datenbank-Result in geeigneter Weise anzeigen/auswerten

Code: Alles auswählen

    sSQL = "SELECT drive_index"
    sSQL &= " FROM " & sDBTable_Name
    sSQl &= " WHERE drive_index = 'testIndex' "

    $rCurDBResult = DB.Current.Exec(sSQL)
    ShowData($rCurDBResult)
Ich nutze in der Funktion ShowData($rCurDBResult) eine TableView zur Anzeige der ausgewählten Datensätze.

Mit freundlichem Gruß

Honsek
Honsek (https://www.gambas-buch.de)
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

hansheiser
Foriker
Beiträge: 21
Registriert: Do 30. Mai 2024, 18:02
Kontaktdaten:

Re: Databrowser.find Syntax

Beitrag von hansheiser » Sa 15. Jun 2024, 13:35

Hi,

ich hab's jetzt so gelöst, das ich die (Datasource-)Filterung
'selber' mache, anstatt die Datasource.filter-Funktion zu benutzen.
Ich setze also die kompletten SQL-Filter direkt selber, anstatt
Datasource.filter zu nehmen.
Das ist wahrscheinlich das, worauf du dich in deinem Post beziehst.

Beim Suchen in einem in Benutzung befindlichen Databrowser hilft
das natürlich nicht. Der Databrowser soll (und stellt auch) die
durch meine SQL-Select-Befehle ausgewählten Datensätze dar.
Allerdings möchte ich darin schon die Möglichkeit haben Datensätze
nach bestimmten Krikerien anzuspringen, da hilft die grundsätzliche
Filterung wie oben beschrieben nicht weiter.

Aber auch dafür habe ich jetzt auf eigene Programmierung zurückgegriffen.
Ich durchsuche die Databrowser-Zeilen selbst, bis ich das gesuchte
gefunden habe. Sicher nicht optimal, funktioniert aber zumindest.

Trotzdem wäre es im Sinne von 'ich will's wissen / muss doch gehen'
interessant die Funkionen (Databroswer.find / Datasource.filter)
zum laufen zu bekommen.

Gruss

Benutzeravatar
Honsek
Foriker
Beiträge: 515
Registriert: Do 4. Okt 2007, 18:01
Kontaktdaten:

Re: Databrowser.find Syntax

Beitrag von Honsek » So 23. Jun 2024, 14:03

Hallo hansheiser.

Für die Arbeit mit Datenbanken gilt uneingeschränkt der Hinweis von Christof Thalhofer: Nach Möglichkeit immer das genutzte DBMS die Arbeit machen lassen und nicht Daten massenhaft in den DB-Client einlesen und dort verarbeiten. Diesem Hinweis folge ich. Er erfordert, dass man die SQL-Anweisungen sorgsam entwickelt und testet. Ich nutze dafür konsequent einen DB-Client für die Konsole, denn es macht durchaus einen Unterschied, ob man SQLite oder PostgreSQL oder MySQL verwendet.

Diesen Satz von Dir: 'Allerdings möchte ich darin schon die Möglichkeit haben Datensätze nach bestimmten Krikerien anzuspringen, da hilft die grundsätzliche Filterung wie oben beschrieben nicht weiter.' habe ich nicht verstanden. Könntest Du genauer beschreiben, was damit gemeint ist - nur dann könnte ich Dir u.U. helfen.

Mit freundlichem Gruß

Honsek
Honsek (https://www.gambas-buch.de)
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

Antworten

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot] und 0 Gäste