Announcement

Collapse
No announcement yet.

In als Datumsfeld angelegten Tabelle nach Datumseinträgen suchen ..

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • In als Datumsfeld angelegten Tabelle nach Datumseinträgen suchen ..

    Hallo,

    folgendes Problem: Ich möchte eine Tabelle nach Datumseinträgen durchsuchen lassen. Ich benutze normalerweise queryinput, aber in diesem Fall funktioniert das nicht. Vermutlich, wegen der entsprechenden Formatierung. Weiß jemand Rat?
    mfg
    Torsten Wilberg

  • #2
    Hallo,

    etwas mehr Informationen brauchen wir schon, um die Frage sinnvoll beantwortet zu können: <br>
    a) Welche Datenbank wird verwendet? <br>
    b) Über welchen Weg (BDE, IBX, ADO, OBBC) erfolgt der Zugriff? <br>
    c) Welche Komponente (TTable, TQuery, TStoredProc, TIBSQL etc) liefert die Daten? <br>
    d) Wird ein SELECT verwendet oder ein Filter ausgenutzt?

    Wenn ein TQuery-Instanz verwendet wird und dort die SELECT-Anweisung einen Parameter für den Datumsert nutzt, so "meckert" Delphi bereits beim Compilieren, wenn ein unpassender Parametertyp übergeben wird

    Comment


    • #3
      Hallo Herr Kosch,

      vielen Dank für Ihre Antwort.
      zu a) Paradox 7.0, Wert 'D',
      zu b) der Zugriff erfolgt über die BDE,
      zu c) über eine TTable Komponente,
      zu d) das Feld Datum hat einen Index und über InputQuery wird eine Suchabfrage gestartet und Table.GotoNearest der Zeiger auf den gefundenen Eintrag gesetzt.
      Das Funtioniert wunderbar mit normalen Datenbankeinträgen, aber in diesem Fall meckert 'er': Im Feld Datum kein gültiger Eintrag.
      mfg
      Torsten Wilber

      Comment


      • #4
        Hallo,

        ich habe die Situation einmal nachgebaut: <br>
        1. Paradox 7-Tabellen verwendet einen AutoInc-Primärschlüssel und einen Sekundärindex auf die Datums-Spalte mit dem Namen "Datum"<br>
        2. In diese Tabellen werden 5 Beispieldatensätze eintragen <br>
        3. Programm verwendet eine TEdit-Instanz, in der das zu suchende Datum in der Schreibweise "03.03.2001" eingetragen wird. <br>
        4. Mit Doppelklick auf TTable wird der <i>Feldeditor</i> aufgerufen, um persistente TField-Instanzen für die Spalten anzulegen.<br>
        4. Programm sucht über <b>Locate</b> den exakten Datensatz und über <b>GotoNearest</b> den naheliegendsten:
        <pre>
        procedure TForm1.Button1Click(Sender: TObject);
        begin
        Table1.Locate('Datum', Edit1.Text, [loPartialKey]);
        end;

        procedure TForm1.Button2Click(Sender: TObject);
        begin
        with Table1 do
        begin
        IndexName := 'IdxDatum';
        SetKey;
        Table1Datum.AsDateTime := StrToDate(Edit1.Text);
        GotoNearest;
        end;
        end;
        </pre&gt

        Comment


        • #5
          Hallo Herr Kosch,

          vielen Dank für die Antwort. Ich werde es ausprobieren.
          mfg
          Torsten Wilber

          Comment

          Working...
          X