Seite 1 von 3
SQL Abfrage im Hintergrund
Verfasst: 05.02.2010 09:39
von Mr.Vain
Hallo,
ich habe folgende Situation:
Möchte ein Programm schreiben, mit einem Suchfeld + einer leeren Tabelle.
Sobald im Suchfeld 3 Buchstaben eingegeben worden sind, soll im Hintergrung eine SQL Abfrage in einer Datenbank gemacht werden und ggf. die gefundenen Werte (3 Buchstaben) unten in einer Tabelle ausgegeben werden.
Könntet ihr mir eine kurze Hilfe zu dieser FUnktion geben?
Sollte ich die Tabelle erst laden und zwischenspeichern oder direkt nach eingabe von 3 Buchstaben genau durchsuchen?
Gruß
Mr.Vain
Re: SQL Abfrage im Hintergrund
Verfasst: 05.02.2010 10:09
von Kiffi
Mr.Vain hat geschrieben:Könntet ihr mir eine kurze Hilfe zu dieser FUnktion geben?
Pseudocode:
Code: Alles auswählen
Query.s = "Select * From DeineTabelle Where DeinSuchFeld Like '%" + GetGadgetText(DeinTextGadget) + "%'"
If DatabaseQuery(DeineDatenbank, Query)
While NextDatabaseRow(...
...
Unter Umständen musst Du das Prozentzeichen (%) als Wildcard mit nem Sternchen (*) auswechseln. Kommt auf die Datenbank an, die Du abfragst.
Mr.Vain hat geschrieben:Sollte ich die Tabelle erst laden und zwischenspeichern oder direkt nach eingabe von 3 Buchstaben genau durchsuchen?
Wenn sich der Inhalt der Datenbank nicht ändert, während Dein Programm läuft: Wieso nicht?
Grüße ... Kiffi
Re: SQL Abfrage im Hintergrund
Verfasst: 05.02.2010 10:21
von Mr.Vain
Vielen Dank
Wie kann ich es am besten realisieren, dass erst gesucht wird, wenn 3 Buchstaben im StringGadget eingegeben wurden.
- das Programm soll immer laufen, wobei sich die Daten ändern, von daher sollte ich wohl direkt auf die Datenbank zugreifen.
Gruß
Mr.Vain
Re: SQL Abfrage im Hintergrund
Verfasst: 05.02.2010 10:41
von Kiffi
Mr.Vain hat geschrieben:Wie kann ich es am besten realisieren, dass erst gesucht wird, wenn 3 Buchstaben im StringGadget eingegeben wurden.
Grüße ... Kiffi
Re: SQL Abfrage im Hintergrund
Verfasst: 05.02.2010 12:34
von Mr.Vain
Danke.
Wenn ich nun einen Database-Query anzeigen will - wobei 3 Spalten angezeigt werden sollen.
Sollte ich hier eine ListItemGadget nutzen?
Code: Alles auswählen
If DatabaseQuery(DBID, Command$)
While NextDatabaseRow(DBID) ; alle Einträge durchlaufen
Debug GetDatabaseString(DBID, 0) ; Inhalt vom ersten Feld anzeigen
Wend
FinishDatabaseQuery(DBID)
Else
MessageRequester("Fehler", "Fehler bei der Datenbank abfrage!")
EndIf
Wie übergebe ich denn die einzelnen Werte der List? Oder kann ich dies Reihen-Weise machen?
Re: SQL Abfrage im Hintergrund
Verfasst: 05.02.2010 12:54
von Kiffi
Mr.Vain hat geschrieben:Sollte ich hier eine ListItemGadget nutzen?
[List
IconGadget] böte sich an, ja.
Mr.Vain hat geschrieben:Wie übergebe ich denn die einzelnen Werte der List? Oder kann ich dies Reihen-Weise machen?
Du verkettest in einem Durchlauf die entprechenden Datenbankfelder (getrennt mit einem Chr(10) (#LF$)) und fügst sie dann mittels AddGadgetItem() Deinem ListIconGadget hinzu:
Code: Alles auswählen
ClearGadgetItems(DeinListIconGadget)
If DatabaseQuery(DBID, Command$)
While NextDatabaseRow(DBID)
Line.s = GetDatabaseString(DBID, 0) + #LF$ + GetDatabaseString(DBID, 1) + #LF$ + GetDatabaseString(DBID, 2)
AddGadgetItem(DeinListIconGadget, -1, Line)
Wend
FinishDatabaseQuery(DBID)
Else
; ...
EndIf
Grüße ... Kiffi
Re: SQL Abfrage im Hintergrund
Verfasst: 08.02.2010 11:06
von Mr.Vain
Gibt es eigentlich eine Funktion, um ein Programm so zu minimieren, dass es in der Taskleiste verschwunden ist und im Infobereich (neben der Uhr) wieder zu finden ist?
Re: SQL Abfrage im Hintergrund
Verfasst: 08.02.2010 11:45
von c4s
Einfach mal die Hilfe zum Thema "SysTray" durchblättern, denn da steht alles was du dafür brauchst.
Re: SQL Abfrage im Hintergrund
Verfasst: 22.02.2010 15:55
von Mr.Vain
Wie kann ich es am besten machen, wenn ich im Hintergrund eine Datenbankabfrage machen will und diese abgefragten Daten in eine neue (kleinere Tabelle) einfügen möchte.
Ebenso möchte ich, dass diese Abfrage jede 5 Minuten ausgeführt wird.
In welchem Bereich muss ich mich hier schlau lesen?
Re: SQL Abfrage im Hintergrund
Verfasst: 23.02.2010 12:51
von Kurzer
Das kannst Du doch auch mit reinem SQL machen.
Insert Into Select From...
Die DatatBase-Befehle von PureBasic hast Du ja schon benutzt.