Thema: Delphi Probleme mit dbgrid!!!

Einzelnen Beitrag anzeigen

Benutzerbild von harrybo
harrybo

Registriert seit: 26. Nov 2002
Ort: Aachen
87 Beiträge
 
Delphi 6 Enterprise
 
#28

Re: Probleme mit dbgrid!!!

  Alt 1. Sep 2003, 20:54
Hi plautzer, hier meine Lösungsvorschläge:

1.) schreibe die Prozedur setButtons um, indem Du dort 4 Boolean Parameter definierst und bei jedem Aufruf den Zustand für die Buttons übergibst, das erspart die die Case Struktur und Du kannst vor allem die Prozedur in Deinen Navigations Prozeduren (prior, next etc.) verwenden.

2.) Du filterst in den Navigations Prozeduren. Warum? Kannst Du meiner Meinung nach weglassen.

3.) Die erste Zeile von storeClick(Sender: TObject); muss heißenif Table1.State in [dsInsert, dsEdit] then Table1.Post; 4.) In deleteClick setzt Du die Tabelle auf Edit, was unüblich ist, denn die Tabelle wird automatisch auf Edit gesetzt, wenn über DBGrid oder DBField editiert wird.

5.) newClick(Sender: TObject) sollte so lauten:
Delphi-Quellcode:
table1.Append;
table1['Mietbegin']:=formatdatetime('dd.mm.yyyy', now);
Gepostet werden sollte auch nichts, da der Anwender ja weiter Daten eingeben soll, die Tabelle bleibt also im Status dsInsert (s. Punkt 3.).

6.) Die erste Zeile von cancelClick(Sender: TObject); muss heißenif Table1.State in [dsInsert, dsEdit] then Table1.Cancel; 7.) Was DBNavigator1Click machen soll ahne ich zwar, kann ich aber aus Deinem Code nicht nachvollziehen.

8.) Button3Click schließlich ist wohl Dein Testbutton. Programmiertechnisch zwar ok, allerdings, das Feld ist ein TAutoIncField, in das sich Paradox wahrscheinlich nicht reinpfuschen lässt, da das DBMS den Eintrag selbst vornimmt, das heißt, Du brauchst Dich darum nicht zu kümmern (oder Du setzt einen Server wie Firebird oder Interbase ein, dort gibt es so komische Felder erst mal nicht). Versuche es also mal damit, dass Du ein anderes Feld beschreibst, z.B. Name.

9.) A propos Name, hier wäre es sinnvoll wenn es eine eigene Tabelle "Mieter" gäbe, damit man für einem Mieter mehrere Datensätze pflegen kann. So könnte festgehalten werden, in welchen Zeiträumen ein Mieter welche Konditionen hatte (Mietzins u.a. kann sich ändern).

10.) Zu guter Letzt: Eine Telefonnummer als IntegerField wird über kurz oder lang Probleme machen. Erstens passen nicht alle Nummern dort rein (z.B.34567), zweitens, versuch mal eine 0 oder ein + voranzustellen ;-). Ein TStringField ist hier also günstiger.

Hoffe, das hilft Dir weiter, viel Erfolg
Harry Boldt
Gruß, harrybo
  Mit Zitat antworten Zitat