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.
Databrowser.find Syntax
-
- Foriker
- Beiträge: 21
- Registriert: Do 30. Mai 2024, 18:02
- Kontaktdaten:
Re: Databrowser.find Syntax
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
Ich nutze in der Funktion ShowData($rCurDBResult) eine TableView zur Anzeige der ausgewählten Datensätze.
Mit freundlichem Gruß
Honsek
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)
Mit freundlichem Gruß
Honsek
Honsek (https://www.gambas-buch.de)
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!
-
- Foriker
- Beiträge: 21
- Registriert: Do 30. Mai 2024, 18:02
- Kontaktdaten:
Re: Databrowser.find Syntax
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
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
Re: Databrowser.find Syntax
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
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!
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast