AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TTable, TQuery ... was denn nun...?
Thema durchsuchen
Ansicht
Themen-Optionen

TTable, TQuery ... was denn nun...?

Ein Thema von golisan · begonnen am 4. Nov 2011 · letzter Beitrag vom 5. Nov 2011
Antwort Antwort
Seite 1 von 3  1 23      
golisan

Registriert seit: 17. Jan 2007
43 Beiträge
 
Delphi 2007 Professional
 
#1

TTable, TQuery ... was denn nun...?

  Alt 4. Nov 2011, 14:52
Datenbank: dbase • Version: 4 • Zugriff über: TTable/TQuery
Hallo liebes Forum,

jetzt habe ich mich fast zwei Tage lang von einem Problem zum nächsten gegooglet aber nun strecke ich die Flügel

Eigentlich möchte ich was ganz einfaches machen:

Eine Zeiterfassung. Eingegeben werden der
- Tag(Monat und Jahr wurde durch eine Vorauswahl bereits vorgegeben)
- Zeit von bis
- Kommentar

Ich habe mir über die Datenbankoberfläche eine dBase-Tabelle erstellt.

Auf einem Formular habe ich DBGrid und ein DBNavigator.
Das DBGrid zeigt die Tabelle(Daten) auch an.

Die Eingaben selber wollte ich aber nicht direkt im DBGrid vornehmen und so habe ich noch entspr.
DBEdits und ein DBMemo auf's Formular gepackt.

Das DBGrid habe ich auf ReadOnly=true gestellt.

Klickt man auf eine Zeile im Grid, werden die Daten in den Edits/Memo angezeigt und man
kann sie ändern.
Soweit so gut.

Jetzt soll das DBGrid die Daten natürlich richtig sortiert anzeigen.
1. Tag und
2. Uhrzeit von

So bin ich auf das TQuery gestoßen.

Das mit dem sortierten Anzeigen klappt zwar ABER ich kann die Daten nicht mehr ändern.

Wie mir Google verraten hat, ist ein DBGrid nicht mehr änderbar wenn ein ORDER BY im Spiel ist

Im Prinzip möchte ich einfach nur, dass nach jeder Datenbankaktion das DBGrid wieder neu sortiert wird.

Das kann doch nicht so schwierig sein.

Könnt' ihr mir einen Tipp geben?

Danke schon mal!
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: TTable, TQuery ... was denn nun...?

  Alt 4. Nov 2011, 15:28
Wie wäre es mit der alten Methode
Delphi-Quellcode:
// Update / Insert new Data
Query1.SQL.Text:='Insert .....';
Query1.Sql.ExecSql;

// get act. Data
Query1.SQL.Text:='Select ....';
query1.SQL.Open;
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: TTable, TQuery ... was denn nun...?

  Alt 4. Nov 2011, 15:36
Ich würde Dir eine moderne Datenbank empfehlen, wenn Du frickeln und fake willst kannst Du

Deine Query in einem Grid darstellen
die Felder die Du bearbeiten willst über ein TTable auf die gleiche Tabelle mit
Mastersource := Query_src MasterFields mit dem Indexfeld verbinden
und die Edits mit der Tabelle verbinden.
Jetzt kannst Du die Daten in den Edits verändern, hast nur das Problem dass man im Gitter nicht sieht, da ein Refresh nicht funktioniert musst Du im Prinzip im AfterPost der Tabelle dir das IndexFeld der Query merken, diese schliessen , neu öffnen und den Index wieder 'Locaten'
Delphi-Quellcode:
procedure TForm1.Table1AfterPost(DataSet: TDataSet);
var
 f:Double;
begin
  LockWindowUpdate(Handle);
  try
  f := Query1SpeciesNo.Value;
  Query1.close;
  Query1.Open;
  Query1.Locate('Species No',f,[]);
  finally
    LockWindowUpdate(0);
  end;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
golisan

Registriert seit: 17. Jan 2007
43 Beiträge
 
Delphi 2007 Professional
 
#4

AW: TTable, TQuery ... was denn nun...?

  Alt 4. Nov 2011, 17:35
erst mal Danke für eure Antworten.


Hmmmm... mit den Stichwort "alte Methode" kann ich nichts anfangen.

Modernere Datenbank?

Ich habe Delphi 5 und da ist dBase oder Paradox dabei... sind beide wahrscheinlich gleich "unmodern"
Oder wäre Paradox besser?

Hab' schon mal was gelesen von wegen einen zweiten Index definieren und nach dem sortieren.

Ich hatte auch schon die Überlegung statt einem DBGrid ein "normales" StringGrid zu nehmen.
Beim Start alle Werte für einen Monat einlesen(sind ja nicht so viele), dann kann der User die Daten ändern und beim
Schliessen der Form, lösche ich die Daten für den Monat und schreibe das StrinGrid komplett in die DB.

Aber das wäre nur der Plan B
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: TTable, TQuery ... was denn nun...?

  Alt 4. Nov 2011, 18:01
Das mit dem Index ist einen Versuch wert. Mit Delphi 5 wirst Du wenn Du Dir ADOExpress nicht dazukaufst am ehesten in Richtung Firebird o.ä. gehen, hierfür gibt es aber kompetentere Forenmitglieder...
Mit den ganzen BDE-Krankheiten habe ich mich in den letzen 10 Jahren nur noch zu Migrationszwecken auseinandergesetzt.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: TTable, TQuery ... was denn nun...?

  Alt 4. Nov 2011, 19:16
Hmm, naja, es kommt auf den Umfang und Einsatzzweck an.

Die BDE ist definitiv veraltet und für ein ernsthaftes Projekt nicht mehr zu empfehlen.
Aber sie hat auch ihre Vorteile.
Sie ist einfach einsetzbar und bringt als Tool zum Bearbeiten die Datenbankoberfläche mit.

Also wenn Du die Datenbank nur lokal nutzen willst und schon angefangen hast, dann spricht nicht unbedingt etwas gegen die Weiternutzung.
Parallel sollte man aber auch schon mal zu Firebird und Co. schielen...

Wenn BDE, dann ist es nahezu egal ob Paradox oder DBase. Ich meine, Paradox bot ein paar mehr Möglichkeiten der Indizierung.

Wenn Du TTable benutzt und in der Tabelle mehrere Indexe definiert hast, dann kannst Du im TTable einfach einen Index zur Sortierung auswählen.
Außerdem kann man auch Datensätze filtern lassen. Du jast quasi damit einen Live-Zugang in die komplette Tabelle und kannst da noch etwas dran rum schrauben.

Das ist eine einfache, aber keine sehr professionelle Lösung (und taugt eher nur für kleine, lokale Projekte). Du musst entscheiden, was Dir wichtiger ist.
Zum Testen und Erfahrungen machen kann es jedenfalls nicht schaden.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
golisan

Registriert seit: 17. Jan 2007
43 Beiträge
 
Delphi 2007 Professional
 
#7

AW: TTable, TQuery ... was denn nun...?

  Alt 4. Nov 2011, 23:26
So, ich habe es gelöst:

1. habe ich Paradox verwendet
2. habe ich mir einen SekundärIndex erstellt, der die gewünschten Sortierfelder enthält
3. im TTable, welches mit dem DBGrid verknüpft ist, den SekundärIndex angegeben.

Jetzt tut es erst mal ... bis zum nächsten Problem

Danke an euch!
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: TTable, TQuery ... was denn nun...?

  Alt 4. Nov 2011, 23:40
Schön, aber trotzdem dran denken, dass es eigentlich "richtigere" Lösungen gibt (für´s nächste Projekt)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
golisan

Registriert seit: 17. Jan 2007
43 Beiträge
 
Delphi 2007 Professional
 
#9

AW: TTable, TQuery ... was denn nun...?

  Alt 5. Nov 2011, 00:03
Ja, es gibt sicherlich "richtigere" Lösungen aber ich möchte ja keine Kernkraftwerke damit steuern
Ist nur für den "Hausgebrauch"
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: TTable, TQuery ... was denn nun...?

  Alt 5. Nov 2011, 00:18
und eigentlich ist es gar nicht schlecht, sich von den Anfängen her zu entwickeln.
Viele der älteren hier im Forum sind mit der BDE "groß" geworden, habe viele Seiten Code noch in Assembler entwickelt, sicher kein Nachteil.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz