Deutsch
Forum

Grundsatzfrage dBase Datenbanken: Wie gewisse Spalten aus ganzem Datensatz einlesen?

 
- Seite 1 -



holmol93
Hallo miteinander

Ich bin neu hier und erst seit Kurzem mit xProfan unterwegs. Version wäre X2.

Die xProfan Lehrbücher habe ich zu diesem Thema schon durchsucht, habe jedoch keine spezifische (und für mich nachvollziehbare) Lösung gefunden...

Verzeiht wenn ich ein wenig dumm frage oder so

Nehmen wir an, ich hätte eine Datenbank von Schülern.
Gespeichert sind die üblichen Daten wie Name und Adresse, Gebursdatum und die Klasse. In unterschiedlichen für das in der Struktur definierten Spalten.

Ich möchte dann eine Liste aller Schülernamen, die in Klasse 5 sind, auflisten.

Das heisst, ich müsste in der DB zuerst einmal mit db("seek") nach einem Datensatz mit Klasse 5 suchen. Da hört mein Verständnis aber schon auf, die Funktion liefert mir ja nur einen Datensatz, den zutreffendsten...

Wie müsste ich das genau angehen?

Greetz,

Danny
 
24.04.2013  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


H.Brill
Die Anzahl Datensätze brauchst du noch nicht mal.
Es gibt ja Systemvariablen zum Abfragen, hier %dbEof
Mal so aus dem Stehgreif :

Code :
Declare Satznr&
ClearList ' unsichtbare Listbox löschen
@db("Go", "Top") ' auf 1. Datensatz springen
WhileNot %dbEof ' Systemvariable, die End Of File prüft
Satznr& = db("Seek", "Feldname", "Suchbegriff", 2) ' letzter Param. = Genauigkeit
' in deinem Falle z.B. : Satznr& = db("Seek", "Klasse", "5", 2)
If Satznr& > 0 ' DS gefunden
' mit db("Get",...) oder db("GetField", ...) Feld oder Felder auslesen
' und z.B. in die unsichtbare und mit ClearList gelöschte Listbox schreiben
' z.B. AddString db("get", "Feldname 1") + db("get", "Feldname 2") usw.
' db("Seek",...) positioniert ja auf gefundenen DS
EndIf
db("Go", "Next") ' nächster DS
EndWhile
@Listbox$("Gefundene Datensätze", 1)
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.04.2013  
 




RGH
Hallo Danny,

nach der Suche mit db("seek") ist der aktuelle Datensatz die erste Fundstelle. Da die Suche immer beim aktuellen Datensatz beginnt, gehst Du anschließend mit db("go","NEXT") auf den nächsten Datensatz und suchst erneut mit db("seek"). Dann wird der zweite Datensatz der Klasse gefunden. Das wiederholst Du in einer Schleife so lange, bis kein Datensatz mehr gefunden wird.

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
24.04.2013  
 




holmol93
Hey Roland,

viiielen Dank für die schnelle Info, das hab ich nicht gewusst, dass die "seek"- suche beim aktuellen Datensatz anfängt zu suchen... Ich dachte, die sucht jedesmal von Anfang an und dann wäre ich ja immer auf den selben Datensatz gekommen... So ergibt das für mich aber einen Sinn!

Das heisst, ich lese Anfangs aus, wieviele Gesamtdatensätze eine Datenbank hat und lasse die Schleife solange laufen, bis genau diese Anzahl eingelesen ist

Werde es gerade einmal ausprobieren, wenn ich daheim bin

Greeetz,
Danny
 
24.04.2013  
 




H.Brill
Die Anzahl Datensätze brauchst du noch nicht mal.
Es gibt ja Systemvariablen zum Abfragen, hier %dbEof
Mal so aus dem Stehgreif :

Code :
Declare Satznr&
ClearList ' unsichtbare Listbox löschen
@db("Go", "Top") ' auf 1. Datensatz springen
WhileNot %dbEof ' Systemvariable, die End Of File prüft
Satznr& = db("Seek", "Feldname", "Suchbegriff", 2) ' letzter Param. = Genauigkeit
' in deinem Falle z.B. : Satznr& = db("Seek", "Klasse", "5", 2)
If Satznr& > 0 ' DS gefunden
' mit db("Get",...) oder db("GetField", ...) Feld oder Felder auslesen
' und z.B. in die unsichtbare und mit ClearList gelöschte Listbox schreiben
' z.B. AddString db("get", "Feldname 1") + db("get", "Feldname 2") usw.
' db("Seek",...) positioniert ja auf gefundenen DS
EndIf
db("Go", "Next") ' nächster DS
EndWhile
@Listbox$("Gefundene Datensätze", 1)
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.04.2013  
 




holmol93
Heyyy H.Brill

Vielen lieben Dank für die Mühe, das ist die Allzwecklösung für praktisch jede DB Ausleseanfrage, die ich mir überlegt habe, Wahnsinn Hätte vor allem nicht gedacht, dass es dafür nur so wenige Zeilen Quelltext benötigt

Auf jeden Fall vielen herzlichen Dank hat auf Anhieb geklappt, auch das Schreiben damit in ChoiceBoxen und andere Elemente

Gruess,

Danny
 
25.04.2013  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.493 Betrachtungen

Unbenanntvor 0 min.
H.Brill31.01.2022
RudiB.03.08.2021
Member 007717917.10.2018
rafl19.07.2018
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

holmol93 (3x)
H.Brill (1x)
RGH (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie