Announcement

Collapse
No announcement yet.

TTable und TQuery

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

  • TTable und TQuery

    hallo,

    folgendes problem: ich habe eine datenbankmaske mit delphi 5 erstellt, die auf eine paradoxdatenbank zugreift. die maske besitzt zwei zustände.

    1. für die dateneingabe greifen die dbedit, dbgrid und dbnavigator komponenten auf ttable zu.

    2. für die "datenansicht", also nur-lesen und sql-abfragen, greifen die dbtext, dbdrid und dbnavigator komponenten auf tquery zu.

    wenn man beim lesen der db ist, einen datensatz auswählt, dann in den bearbeitungsmodus wechselt, ist dieser datensatz nicht identisch mit dem ausgewählten.

    frage: wie kann ich tquery mit ttable synchonisieren? oder gibt es auch die möglichkeit über tquery in eine db zu schreiben?

    gruss matthias

  • #2
    Du musst in deiner Query-SQL-Anweisung folgende Zeile einfügen:
    where name =:name, wobei nach der Eingabe der SQL-Anweisung noch der Parameter genauer angegeben werden muss. Ab in den Objektinspector, Parameter anklicken. Dort erscheint dann name. Diesen muss du näher spezifizieren. Ebenfalls mit dem Objectinspector. Dann die Querykomponente active auf true setzen. Im Programm dann eine Zuweisung table1.name :=query.params[0].asstring unterbringen. Dann funktionierts

    Comment


    • #3
      danke für die antwort. aber da kann ich nicht folgen. gibt es die lösung irgendwo genauer erklärt?

      gruss matthias dame

      Comment


      • #4
        Hallo Matthias,<br>
        schmeis TQuery raus und verwende nur TTable mit Filter.<br>
        Dietma

        Comment


        • #5
          hallo dietmar, <br>
          danke für die antwort. wenn ich es anders nicht hinbekomme, nehme ich eben den filter. die sql-abfragen sind (glaube ich) vielseitiger einsetzbar.<br>
          gruss matthia

          Comment


          • #6
            Hallo, hier ist ein Ausschnitt aus meinem Programm, der dieses Problem löst:
            <pre>
            procedure TForm1.Button1Click(Sender: TObject);
            var
            akt_Datensatz : TBookmark;
            begin
            case Button1.Tag of
            0: begin
            Button1.Caption := 'Tabelle &bearbeiten';
            Button1.Tag := 1;
            Label3.Font.color := clRed;
            Label3.Caption := 'SQL';
            if Query1.Active then Query1.close;
            Query1.SQL.clear;
            Query1.SQL.add('select * from '+Dateiname);
            Table1.DataBaseName := Datenpfad;
            DataSource1.DataSet := Query1;
            Query1.open;
            Label4.caption := IntToStr(Query1.recordcount)+ ' Datensätze';
            end;
            1: begin
            if Dateiname <> '' then begin
            {Jetzt ist die Tabelle im Zugriff.}
            Button1.Caption := 'SQL &bearbeiten';
            Button1.Tag := 0;
            Label3.Font.color := clNavy;
            Label3.Caption := 'Tabelle';
            {Bookmark auf den Datebnsatz setzen.}
            akt_Datensatz := Query1.GetBookmark;
            if Table1.active then Table1.close;
            Table1.DataBaseName := Datenpfad;
            Table1.TableName := Dateiname;
            DataSource1.DataSet := Table1;
            Table1.open;
            Table1.GotoBookmark(akt_Datensatz);
            Table1.FreeBookmark(akt_Datensatz);
            Label4.caption := IntToStr(Table1.recordcount)+ ' Datensätze';
            end else begin
            Label7.Caption := 'Bitte erst eine Datei auswählen!';
            end;
            end;
            end;
            end;
            </pre>
            Den kompletten Quellcode kannst du auf http://www.delphi-download.de under SQL-Monitor finden.

            mfg Klaus-Peter Fitzne

            Comment

            Working...
            X