Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Die Felder einer Tabelle durchsuchen? (https://www.delphipraxis.net/47312-die-felder-einer-tabelle-durchsuchen.html)

smart 9. Jun 2005 09:32

Datenbank: Absolute Database • Version: 488 • Zugriff über: Datasource

Die Felder einer Tabelle durchsuchen?
 
Guten Morgen!

Ich muss schon wieder lästig sein! Wie kann ich die Felder einer Tabelle durchsuchen? Ich habe es mit einem „Suchendialog“ versucht, haut aber nicht hin.

Heike.

mschaefer 9. Jun 2005 09:54

Re: Die Felder einer Tabelle durchsuchen?
 
Moin smart,
hab mal einen Blick auf das Beispiel im Nachbarthread

Grüße // Martin

smart 9. Jun 2005 09:59

Re: Die Felder einer Tabelle durchsuchen?
 
Zitat:

Zitat von mschaefer
Moin smart,
hab mal einen Blick auf das Beispiel im Nachbarthread

Grüße // Martin

Hatte ich schon, vielen Dank für den Hinweis. Aber ich brauche es umgekehrt. In einem Editierfeld den Name eingeben und dann in der Tabelle raussuchen.

Treffnix 9. Jun 2005 10:05

Re: Die Felder einer Tabelle durchsuchen?
 
Zitat:

Zitat von smart
Zitat:

Zitat von mschaefer
Moin smart,
hab mal einen Blick auf das Beispiel im Nachbarthread

Grüße // Martin

Hatte ich schon, vielen Dank für den Hinweis. Aber ich brauche es umgekehrt. In einem Editierfeld den Name eingeben und dann in der Tabelle raussuchen.

:gruebel: Genau das wird doch da gemacht, oder hab ich jetzt was falsch verstanden? Der Benutzer gibt in ein Edit nen Wert an und du positionierst dann darauf indem du ein Locate auf edit.text machst.

smart 9. Jun 2005 10:19

Re: Die Felder einer Tabelle durchsuchen?
 
Zitat:

Zitat von Treffnix
gruebel: Genau das wird doch da gemacht, oder hab ich jetzt was falsch verstanden? Der Benutzer gibt in ein Edit nen Wert an und du positionierst dann darauf indem du ein Locate auf edit.text machst.

Du hast richtig verstanden! War mein Fehler, hatte TEdit nicht gefunden! Entschuldigung!

mschaefer 9. Jun 2005 10:26

Re: Die Felder einer Tabelle durchsuchen?
 
Ahm - Sorry,

hatte die Ränder verschwinden lassen und das Edit etwas getarnt.
Fand ich aber optisch ansprechend. Man könnte natürlich im Locate
weitere Felder einbinden und damit eine Kombinationssuche aufbauen.

Grüße // Martin

Treffnix 9. Jun 2005 10:27

Re: Die Felder einer Tabelle durchsuchen?
 
Zitat:

Zitat von smart
Du hast richtig verstanden!

Dann bin ich ja beruhigt. :mrgreen:
Zitat:

Zitat von smart
Entschuldigung!

Es sei dir verziehen ;)

smart 9. Jun 2005 10:37

Re: Die Felder einer Tabelle durchsuchen?
 
Ich bekomme immer diese Fehlermeldung.
Delphi-Quellcode:
[Fehler] Tabelle.pas(72): Undefinierter Bezeichner: 'loPartialKey'
[Fehler] Tabelle.pas(72): Inkompatible Typen: 'TLocateOption' und 'Integer'
Was ist 'loPartialKey' ?

mschaefer 9. Jun 2005 10:55

Re: Die Felder einer Tabelle durchsuchen?
 
Hallo smart,

IOPartialKey ist ein Schalter. Er stellt ein, dass auch Teilübereinstimmungen gefunden werden.
Möglicherweise verwendet Dein Datenbanksystem hier aber auch Integer als schalter (0/1/2).
Da hilft nur in der eigenen Hilfe nachschauen.

Das Projekt selbst habe ich eben mit D6 Prof. übersetzt, läuft aber so auch mit D3.

Grüße // Martin

Treffnix 9. Jun 2005 10:56

Re: Die Felder einer Tabelle durchsuchen?
 
loPartialKey ist in der Unit DB im Set TLocateOption definiert. Das bedeutet, dass das Locate auch auf Teilstrings anspringt.

Zeig mal dein Locate. Vielleicht haste was vertauscht?

smart 9. Jun 2005 16:30

Re: Die Felder einer Tabelle durchsuchen?
 
Ich habe es jetzt so gemacht.

Delphi-Quellcode:
Form1.ABSTable1.IndexName := ComboBox1.Text;
Form1.ABSTable1.SetKey;
Form1.ABSTable1.Fields[ComboBox1.ItemIndex].AsString := Edit1.Text;
  if not Form1.ABSTable1.GotoKey then
    ShowMessage('nicht gefunden');
In ComboBox1.Text ist der Feldname.

Vielen Dank, an Euch alle!

Sharky 9. Jun 2005 18:13

Re: Die Felder einer Tabelle durchsuchen?
 
Hai Heike,

nur so am Rande. Ich würde an deiner Stelle mit Querys arbeiten und nicht mit den Tables. Ich finde diese wesentlich flexibler.

smart 9. Jun 2005 20:02

Re: Die Felder einer Tabelle durchsuchen?
 
Zitat:

Zitat von Sharky
Hai Heike,

nur so am Rande. Ich würde an deiner Stelle mit Querys arbeiten und nicht mit den Tables. Ich finde diese wesentlich flexibler.

Hallo Stephan!

Hätte ich gerne gemacht. Habe ich leider nicht hinbekommen. Immer so dumme Fehlermeldungen in der Art, wie „IndexFeld stimmt nicht über ein“. Ich habe ja noch nicht aufgegeben. Ich bin es weiter mit Querys am versuchen. Aber so hatte ich wenigstens schon ein kleinen Erfolg.

mschaefer 9. Jun 2005 22:25

Re: Die Felder einer Tabelle durchsuchen?
 
Moin, ohje ziemlich Spätmoin,

sag mal, mußt Du eigentlich mit der "Absolut Database" arbeiten. Irgendwie schleicht mich der Verdacht, das dieses System doch etliche Einschränkungen hat und erhlich gesagt weicht es auch in der Ansteuerung offensichtlch von den anderen Desktopdatenbanken soweit ab, dass unser Hilfestellung hier nicht wirklich existiert. Vielleicht könnten wir Dich überreden ein etwas erwachseneres System anzutesten?(!)?

Grüße bis morgen // Martin

Sharky 10. Jun 2005 07:03

Re: Die Felder einer Tabelle durchsuchen?
 
Hai Martin,

die ABD hat mit Locate keine Probleme ;-) Ich habe deinen Code aus dem anderen Thread oben mit ABD getestet.
Ausser das mir bei dieser Zeile:
Delphi-Quellcode:
ABSTable1.Locate(ABSTable1.Fields[0].DisplayName , VarArrayOf([Edit1.Text]),[loPartialKey]);
Ein Fehler an den Kopf geworfen wird :cry:
Zitat:

Im Projekt Project1.exe ist eine Exception der Klasse EABSException mit der Meldung 'Unsupported Variant Type 8204 - Native error: 30113' aufgetreten.
Wenn ich es so mache geht es:
Delphi-Quellcode:
ABSTable1.Locate(ABSTable1.Fields[0].DisplayName , Edit1.Text,[loPartialKey]);
Warum der Fehler kommt muss ich einmal prüfen.

mschaefer 10. Jun 2005 08:07

Re: Die Felder einer Tabelle durchsuchen?
 
Uhps ein Frühmorgenhai !

Hallo Stephan,

sieht fast so aus, als ob hier keine Arrayimplementierung vorhanden ist. Folglich könnte dann nur auf ein Feld gesucht werden.
Naja ich beobachte das heute mal. Habe leider Buchhaltungstach und da ist Delphi limitiert...

Grüße // Martin


{Edit: Lass das Compilerschwert man stecken...)

Sharky 10. Jun 2005 08:12

Re: Die Felder einer Tabelle durchsuchen?
 
Zitat:

Zitat von mschaefer
...Stefan,

Dafür habe ich schon Menschen getötet!
Zitat:

sieht fast so aus, als ob hier keine Arrayimplementierung vorhanden ist.
Ich werde mal den Support fragen. In der Hilfe zu ABD steht nämlich ein Beispiel:
OnlineHilfe

Delphi-Quellcode:
with CustTable do
  Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver','P']), loPartialKey);


Also sollte es wohl gehen.

smart 10. Jun 2005 08:53

Re: Die Felder einer Tabelle durchsuchen?
 
Zitat:

Zitat von Sharky
Wenn ich es so mache geht es:
Delphi-Quellcode:
ABSTable1.Locate(ABSTable1.Fields[0].DisplayName , Edit1.Text,[loPartialKey]);
Warum der Fehler kommt muss ich einmal prüfen.

Hi, guten morgen.

Klappt bei mir auch!


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz