[gelöst] Wie arbeitet die LOCATE Anweisung?
Re: Wie arbeitet die LOCATE Anweisung?
Hallo Theo,
nun, Groß- oder Kleinschreibung wird doch weitestgehendst ignoriert.
Ich habe aber Deinen Rat befolgt und PERS_ID gesetzt.
Im nachfolgenden Bild siehst du aber, daß ID den richtigen Record anzeigt, aber der Rest mit DBEdit ausgelesen noch immer auf dem ein Record "1" steht.
Entweder blick ich nicht durch, oder es besteht doch ein Bug. Gruß
Werner
nun, Groß- oder Kleinschreibung wird doch weitestgehendst ignoriert.
Ich habe aber Deinen Rat befolgt und PERS_ID gesetzt.
Im nachfolgenden Bild siehst du aber, daß ID den richtigen Record anzeigt, aber der Rest mit DBEdit ausgelesen noch immer auf dem ein Record "1" steht.
Entweder blick ich nicht durch, oder es besteht doch ein Bug. Gruß
Werner
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Wie arbeitet die LOCATE Anweisung?
Die PERS_ID ist doch eindeutig, also brauchst Du keinen Locate auf den Nachname.
Da das PERS_ID Feld ein Integer ist, muss an der Locate Position auch der Wert als Zahl nicht als Text übergeben werden.
Da das PERS_ID Feld ein Integer ist, muss an der Locate Position auch der Wert als Zahl nicht als Text übergeben werden.
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: Wie arbeitet die LOCATE Anweisung?
Hallo zusammen,
herrje Leute ist denn das so schwer den Fragen hier zu antworten?
Geht doch einfach mal auf [gelöst] dBase-Dateien, holt euch da den Quellcode und versucht den Recordsatz anzuspringen.
Das kann doch nicht so schwer sein oder ?
Die klugen Antworten gehen einem doch endlich mal auf dem Keks.
Habt ihr dafür kein Verständnis?
mit Gruß
Werner
herrje Leute ist denn das so schwer den Fragen hier zu antworten?
Geht doch einfach mal auf [gelöst] dBase-Dateien, holt euch da den Quellcode und versucht den Recordsatz anzuspringen.
Das kann doch nicht so schwer sein oder ?
Die klugen Antworten gehen einem doch endlich mal auf dem Keks.
Habt ihr dafür kein Verständnis?
mit Gruß
Werner
Re: Wie arbeitet die LOCATE Anweisung?
Welche Frage?wega hat geschrieben: herrje Leute ist denn das so schwer den Fragen hier zu antworten?
Ich hab dir hier schon mal gesagt, dass ich deine Frage nicht richtig verstehe.
Veilleicht würdest du von jemandem eine vernünftige Antwort bekommen, wenn du eine vernünftige Frage stellen würdest, so schön altmodisch mit Fragezeichen und so, dass man nicht erst 50 alte Beiträge lesen muss, um sie zu verstehen.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Wie arbeitet die LOCATE Anweisung?
wega, ich habs gerad angefangen hab aber nach 3 min warten auf dieses Forum aufgegeben.
Du willst hier etwas.
D.H. Häng ein möglichst kleines einfaches Beispiel hier an das möglichst wenig Komponenten verwendet.
Ich werd warscheinlich trotsdem nicht weiterkommen da ich keine Lust hab das fehleranfällige Tdbf nur für dich zu installieren.
Ich bin mir aber recht sicher das Locate dabei funktioniert hat als ichs das letzte mal verwendet hatte.
Mach dir bewusst, das du etwas willst. Wenn Theo sich also über deine Fragekultur beschwert nimms bitte als Kritik auf nicht als Meckerei.
Und glaub mir er ist wenn du ordentlich kommunizierst durchaus dazu in der lage dir so ziemlich jedes Lazarus/FPC basierte problem zu lösen.
Du willst hier etwas.
D.H. Häng ein möglichst kleines einfaches Beispiel hier an das möglichst wenig Komponenten verwendet.
Ich werd warscheinlich trotsdem nicht weiterkommen da ich keine Lust hab das fehleranfällige Tdbf nur für dich zu installieren.
Ich bin mir aber recht sicher das Locate dabei funktioniert hat als ichs das letzte mal verwendet hatte.
Mach dir bewusst, das du etwas willst. Wenn Theo sich also über deine Fragekultur beschwert nimms bitte als Kritik auf nicht als Meckerei.
Und glaub mir er ist wenn du ordentlich kommunizierst durchaus dazu in der lage dir so ziemlich jedes Lazarus/FPC basierte problem zu lösen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: Wie arbeitet die LOCATE Anweisung?
Danke Christian, sehr freundlich.Christian hat geschrieben: Und glaub mir er ist wenn du ordentlich kommunizierst durchaus dazu in der lage dir so ziemlich jedes Lazarus/FPC basierte problem zu lösen.

Aber von Lazarus DB - und noch dazu mit DataSet-Hangeleien und DBase - habe ich wirklich nicht viel Anhnung.
Ich denke, da gäbe es kompetentere Hilfen.
-
- Beiträge: 6
- Registriert: Fr 26. Okt 2007, 12:27
- OS, Lazarus, FPC: Win (L 0.9.30 FPC 2.4.2)
- CPU-Target: 32Bit
Re: Wie arbeitet die LOCATE Anweisung?
Hallo wega,
war schon länger nicht mehr aktiv hier im Forum und wenn dann meist nur als stiller Mitleser. Hab mir Dein Programm trotzdem mal kurz angeschaut.
Soweit ich es verstanden habe möchstest Du über das Anklicken der Listen nach Vorname, Nachname, Ort suchen. Du verwendest aber im Locate als KeyField jeweils die Pers_ID. D.h. eigentlich müsste Deine Suche ja in etwa so erfolgen (Beispiel für Vorname mit Eingabe über ein normales Edit Feld):
Warum Du die DBLookupListBox zum Suchen verwendest hat sich mir nicht so ganz erschlossen. Die wäre doch eher gedacht zur Auswahl von Werten in einer LookupTabelle.
Gruss Mike
war schon länger nicht mehr aktiv hier im Forum und wenn dann meist nur als stiller Mitleser. Hab mir Dein Programm trotzdem mal kurz angeschaut.
Soweit ich es verstanden habe möchstest Du über das Anklicken der Listen nach Vorname, Nachname, Ort suchen. Du verwendest aber im Locate als KeyField jeweils die Pers_ID. D.h. eigentlich müsste Deine Suche ja in etwa so erfolgen (Beispiel für Vorname mit Eingabe über ein normales Edit Feld):
Code: Alles auswählen
locate('vorname', Edit1.text', [])
Gruss Mike
Re: Wie arbeitet die LOCATE Anweisung?
Hallo Mike,
Danke, dass Du einmal in mein Projekt hineingeschaut hast.
Das Key-Feld 'Pers_ID' ist schon richtig, da in den unterschiedlichsten Records die Vornamen, oder auch die Nachnamen gleich sein können.
Was aber garantiert unteschiedlich ist, das ist die 'Pers_ID'-Nummer.
Und mit dem Locate-Befehl/Anweisung will ich auf den "richtigen" Record zugreifen, da ich keinen Zugang zu "MoveTo" finde.
Na gut, dann muß man wahrscheinlich auf andere Felder wie geb.-Datum, Ort, Straße usw. zugreifen, um die richtige Person zu finden.
Vielen Dank für Deine Bemühungen und Deine Antwort.
Macht mir Hoffung, daß man hier auch ein normales Deutsch spricht.
Gruß Werner
Danke, dass Du einmal in mein Projekt hineingeschaut hast.
Das Key-Feld 'Pers_ID' ist schon richtig, da in den unterschiedlichsten Records die Vornamen, oder auch die Nachnamen gleich sein können.
Was aber garantiert unteschiedlich ist, das ist die 'Pers_ID'-Nummer.
Und mit dem Locate-Befehl/Anweisung will ich auf den "richtigen" Record zugreifen, da ich keinen Zugang zu "MoveTo" finde.
Na gut, dann muß man wahrscheinlich auf andere Felder wie geb.-Datum, Ort, Straße usw. zugreifen, um die richtige Person zu finden.
Vielen Dank für Deine Bemühungen und Deine Antwort.
Macht mir Hoffung, daß man hier auch ein normales Deutsch spricht.
Gruß Werner
-
- Beiträge: 6
- Registriert: Fr 26. Okt 2007, 12:27
- OS, Lazarus, FPC: Win (L 0.9.30 FPC 2.4.2)
- CPU-Target: 32Bit
Re: Wie arbeitet die LOCATE Anweisung?
Hallo Werner,
bitte schön, gern geschehen.
Hab gerade auch noch mal hier nachgeschaut:
http://www.freepascal.org/docs-html/fcl ... ocate.html
Wenn Du nach Pers_id und Vorname gleichzeitig suchen willst, dann lassen sich durch Semikolon getrennt auch mehrere KeyFields zur Suche angeben. Hab das jetzt nicht ausprobiert, aber mit dieser Kombination müsste sich auch ein mehrfach vorkommender Namenseintrag in Verbindung mit der Pers_id korrekt finden lassen.
Gruss Mike
bitte schön, gern geschehen.
Hab gerade auch noch mal hier nachgeschaut:
http://www.freepascal.org/docs-html/fcl ... ocate.html
Wenn Du nach Pers_id und Vorname gleichzeitig suchen willst, dann lassen sich durch Semikolon getrennt auch mehrere KeyFields zur Suche angeben. Hab das jetzt nicht ausprobiert, aber mit dieser Kombination müsste sich auch ein mehrfach vorkommender Namenseintrag in Verbindung mit der Pers_id korrekt finden lassen.
Gruss Mike
Re: Wie arbeitet die LOCATE Anweisung?
Hallo Mike,
Danke für Deine Antwort.
Theo brachte ebenfalls diese Idee ein. Ich habe es ohne Erfolg probiert.
Vielleicht interpretiere ich aber die Anweisung falsch, NICHTS IST AUSGESCHLOSSEN.
Ich lasse es erst einmal dabei, daß man über andere Selectionen wiem z.B. Ort die richtige Person findet.
mit Gruß
Werner
Danke für Deine Antwort.
Theo brachte ebenfalls diese Idee ein. Ich habe es ohne Erfolg probiert.
Vielleicht interpretiere ich aber die Anweisung falsch, NICHTS IST AUSGESCHLOSSEN.
Ich lasse es erst einmal dabei, daß man über andere Selectionen wiem z.B. Ort die richtige Person findet.
mit Gruß
Werner
-
- Beiträge: 6
- Registriert: Fr 26. Okt 2007, 12:27
- OS, Lazarus, FPC: Win (L 0.9.30 FPC 2.4.2)
- CPU-Target: 32Bit
Re: Wie arbeitet die LOCATE Anweisung?
Hallo Werner,
kurz angetestet mit zwei Edit Feldern und doppelten Nachnamen.
Locate funktioniert so korrekt und findet immer den richtigen Eintrag.
In Verbindung mit Deiner DBLoopup auf die gleiche Datasource funktioniert es aber nicht. Da müsstest Du schon mit mehreren Datasourcen arbeiten.
Gruss Mike
kurz angetestet mit zwei Edit Feldern und doppelten Nachnamen.
Code: Alles auswählen
Dbf1.Locate('PERS_ID;VORNAME', VarArrayOf([Edit1.Text, Edit2.Text]), [])
In Verbindung mit Deiner DBLoopup auf die gleiche Datasource funktioniert es aber nicht. Da müsstest Du schon mit mehreren Datasourcen arbeiten.
Gruss Mike
Re: Wie arbeitet die LOCATE Anweisung?
Hallo Mike,
Danke für deine Antwort.
OK, also doch eine Fehlinterpretation der Anweisung bei mir.
Nochmals Danke für den Hinweis.
mit Gruß
Werner
Danke für deine Antwort.
OK, also doch eine Fehlinterpretation der Anweisung bei mir.
Nochmals Danke für den Hinweis.
mit Gruß
Werner