SQL Abfrage im Hintergrund

Anfängerfragen zum Programmieren mit PureBasic.
Mr.Vain
Beiträge: 88
Registriert: 29.10.2009 00:14

SQL Abfrage im Hintergrund

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: SQL Abfrage im Hintergrund

Beitrag 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
a²+b²=mc²
Mr.Vain
Beiträge: 88
Registriert: 29.10.2009 00:14

Re: SQL Abfrage im Hintergrund

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: SQL Abfrage im Hintergrund

Beitrag von Kiffi »

Mr.Vain hat geschrieben:Wie kann ich es am besten realisieren, dass erst gesucht wird, wenn 3 Buchstaben im StringGadget eingegeben wurden.

Code: Alles auswählen

If Len(GetGadgetText(DeinStringGadget)) > 2
  ...
Grüße ... Kiffi
a²+b²=mc²
Mr.Vain
Beiträge: 88
Registriert: 29.10.2009 00:14

Re: SQL Abfrage im Hintergrund

Beitrag 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?
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: SQL Abfrage im Hintergrund

Beitrag von Kiffi »

Mr.Vain hat geschrieben:Sollte ich hier eine ListItemGadget nutzen?
[ListIconGadget] 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
a²+b²=mc²
Mr.Vain
Beiträge: 88
Registriert: 29.10.2009 00:14

Re: SQL Abfrage im Hintergrund

Beitrag 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?
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: SQL Abfrage im Hintergrund

Beitrag von c4s »

Einfach mal die Hilfe zum Thema "SysTray" durchblättern, denn da steht alles was du dafür brauchst.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Mr.Vain
Beiträge: 88
Registriert: 29.10.2009 00:14

Re: SQL Abfrage im Hintergrund

Beitrag 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?
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: SQL Abfrage im Hintergrund

Beitrag 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.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Antworten