Italia
Foro

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

 
- Page 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 per 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 solito Daten wie Name und Adresse, Gebursdatum und die Klasse. In unterschiedlichen per 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 Cerca mit db("seek") ist der aktuelle Datensatz die erste Fundstelle. Da die Cerca 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.

Saluto
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 per 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 per 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 per die Mühe, das ist die Allzwecklösung per 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 necessario

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

Gruess,

Danny
 
25.04.2013  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

9.141 Views

Untitledvor 0 min.
H.Brill31.01.2022
RudiB.03.08.2021
Member 007717917.10.2018
rafl19.07.2018
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

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


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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