Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme mit dbgrid!!! (https://www.delphipraxis.net/7890-probleme-mit-dbgrid.html)

plautzer 23. Aug 2003 20:13


Probleme mit dbgrid!!!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leutz,
ich fange gerade an mit delphi ein programm zu entwerfen mit dem ich mieter verwalten kann.

Es besteht aus 2 tabellen:
die erste ist für die daten der meiter und die 2te ist mit einen grid verknüpft wo jeweils die rechnung der meiter sind also was wann bezahlt wurde.

Mein problem ist jetzt das ich in das grid nur einen eintrag machen kann, ich habe ihn mit einen navigator verknüpft, einmal darf 'Neu' oder 'ADD' drücken dann kommt eine fehlermeldung..., '...EDBENGINEERROR... "Indexfehler"... Prozess wird umgehend abgebrochen'

das passiert jedes mal!!!


Ein anderes problem wäre wenn ich delphi ganz schliesse und dann das programm wieder neu lade und compiliere, sind alle zahlen daten und die daten im grid weg. Wenn ich nur auf compiler anhalte und wieder neu compiliere sind alle daten noch vorhanden.

Es wäre echt kalls wenn ihr mir damit ein bizzchen unter die arme greifen könntet.

Thx

Plautzer

[edit=sakura]Bild als Anhang hochgeladen. Das war viel zu groß ;-) Mfg, sakura[/edit]

sakura 23. Aug 2003 20:19

Re: Probleme mit dbgrid!!!
 
@Plautzer: Das Bild war ein wenig groß. Aber die DP schafft hier durch die Möglichkeit eine Attachments super Abhilfe. Es ist jetzt für alle zum Download als Anhang verfügbar ;-) Damit kannst Du es wieder von Deinem Server löschen.

...:cat:...

MrSpock 24. Aug 2003 11:38

Re: Probleme mit dbgrid!!!
 
Hallo Plautzer,

offensichtlich übernimmst du an einer Stelle deine Eingaben mit "Post". Zu diesem Zeitpunkt steht aber in dem (oder den) Schlüsselfeld(ern) Wert(e), die bereits in einem anderen Datensatz stehen, der sich schon in der Tabelle befindet. Das erzeugt einen Indexfehler, weil der Primärindex eindeutig sein muss.

Poste doch einmal den Code, der z.B. bei dem Add Button steht.

[edit=MrSpock]Ooohps, gerade gesehen, dass es dein erster Beitrag war: Deshalb noch: Herzlich willkommen im Delphi-PRAXIS Forum![/edit]

plautzer 24. Aug 2003 11:56

Re: Probleme mit dbgrid!!!
 
Danke erstmal für die Begrüssung.

Ich habe keine code für den add button, da der in navigator steckt.

Ich hatte erst alles Paradox tabellen, dann wurde mir geraten zu dbase für windows zu wechseln, komsicherweise funzt jetzt alle vom feinsten.

Was ist eigentlich der unterschied der beiden tabellenarten??

Ach und nochwas,
die anzahl der miete beträgt immer genau 100, darum möchte ich gern das schon 100 datenprofile erzeugt werden, kann man ds programmieren oder muss ich die jetzt von hand eintragen?? Dsa müsste man doch auch voreinstellen können oda??

Plautzer

MrSpock 24. Aug 2003 16:25

Re: Probleme mit dbgrid!!!
 
Hallo Plautzer,

wer immer dir empfohlen hat, auf dBase zu wechseln, sollte dir dafür seine Gründe nennen. Paradox deckt dBase zu 100% ab, bietet aber auch zusätzlich Funktionen wie: mehr Datentypen, referenzielle Integrität, Default Values, etc. Aus meiner Sicht ist deshalb Paradox im Vergleich zu dBase immer die bessere Lösung.

Dein Problem der Vorbesetzung eines Wertes kann in Paradox z.B. über die Datenbankoberfläche auf der Seite Gültigkeitsprüfungen im Feld "Vorgabe" gelöst werden. Dort schreibst du einfach den Wert 100 rein. Dann wird für den Fall, dass der Benutzer keinen Wert einträgt der hier eingestellte Wert benutzt.

plautzer 24. Aug 2003 16:57

Re: Probleme mit dbgrid!!!
 
Hmm,
auch wenn die paradox besser ist... meine probleme sind immernoch da, die bei der der dbase nicht habe... ich würde auch gern wieder wechseln, aber bist jetzt hab ich noch die probleme:

1. ich kann im grid nichts hinzufügen wie oben beschrieben.

2. ich möchte das aktuelle datum immer in einen dbedit anzeigen, ich habe das auch soweit geschafft --> 18. August 2003.
Doch nun habe ich in dem feld eine editmask eingefügt... !99/99/00;1
Nun wird das datum so angezeigt: 03.04.__!! Irgentwelche vorschläge??

Das wars erstma.

Vielen Dank.

Plautzer

MrSpock 24. Aug 2003 17:07

Re: Probleme mit dbgrid!!!
 
Hallo Plautzer,

wenn deine Anwendung noch nicht zu groß ist, schicke sie mir einfach mal zu oder hänge sie an dein nächstes Posting einmal an, dann können wir das Ganze einmal genauer anschauen. Paradox macht bei dem von dir beschriebenen Vorgehen eigentlich keine Probleme, deshalb müssten wir die Anwendung einmal sehen.

plautzer 24. Aug 2003 17:16

Re: Probleme mit dbgrid!!!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke,
echt geil das ihr das macht,
ich hoffe ihr könnts auch öffnen, da die tabellen eigntlich in das wrkdir von delphi common files rein muss.

Thx

Plautzer

Memo 25. Aug 2003 11:58

Re: Probleme mit dbgrid!!!
 
Zitat:

Zitat von plautzer
ich hoffe ihr könnts auch öffnen

Du bist wirklich ein lustiger Geselle. Da verstümmelst du deine Tabellen von Index-Dateien keine Spur, dafür jede Menge Tabellenoperationen auf Felder bezogen, die nicht existieren. Wer soll den Schotter testen?

plautzer 25. Aug 2003 15:49

Re: Probleme mit dbgrid!!!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hoffe das ist besser.

Gut, da habe ich noch kein plan davon,
ich weiss wirklich nicht auf was ihr gewiesen seit um das ding zu test.
Ich bitte darum das nächste mal nähere auskunft zu geben was noch gebraucht wird.

Danke.

Plautzer

Memo 25. Aug 2003 16:19

Re: Probleme mit dbgrid!!!
 
So, ich hab mir das mal angesehen. Der Fehler ist sehr einfach zu erklären. Im onClick des DBNav. steht
Delphi-Quellcode:
table3.Edit;
table3['id']:=table1['Whg'];
table3.Post;
Wenn Table3 leer ist funktioniert es genau einmal, dann wird der Wert des Feldes "Whg", sagen wir mal 1 in das Feld ID von Table3 eingetragen. Jetzt klickst du ein zweites mal und es wird versucht wieder 1 in Table3 einzutragen. Da das Feld ID einen Primärschlüssel besitzt muss der Wert aber eindeutig sein. Heißt also zweimal der Wert 1 iss nicht.
Auf den Rest vom Programm geh ich jetzt lieber nicht ein. Ist nicht bös gemeint, aber da brennt es an allen Ecken.

plautzer 25. Aug 2003 16:45

Re: Probleme mit dbgrid!!!
 
Danke erst.

Irgentwie muss aber doch den wert von WHG and die ID von table3 abgeben... sonst wird es doch später mit dem filtern nichts oda??

Das das programm keinen hauptpreis gewinnen iss mir auch klar, ich habe erst angefangen und probiere so viel ich kann.
Drum wäre es lieb webn ihr mich weiterhin unterstützen könntet und mir meine fehler zeigt und vorschläge machen würde was noch verbessert werden könntet.

MfG

Plautzer

plautzer 25. Aug 2003 16:45

Re: Probleme mit dbgrid!!!
 
Danke erstmal.

Irgentwie muss aber doch den wert von WHG and die ID von table3 abgeben... sonst wird es doch später mit dem filtern nichts oda??

Das das programm keinen hauptpreis gewinnen iss mir auch klar, ich habe erst angefangen und probiere so viel ich kann.
Drum wäre es lieb webn ihr mich weiterhin unterstützen könntet und mir meine fehler zeigt und vorschläge machen würde was noch verbessert werden könntet.

MfG

Plautzer

Memo 25. Aug 2003 16:56

Re: Probleme mit dbgrid!!!
 
Zitat:

Zitat von plautzer
Irgentwie muss aber doch den wert von WHG and die ID von table3 abgeben... sonst wird es doch später mit dem filtern nichts oda??

Informiere dich mal über Master/Detailbeziehungen. Auch ein Einsteigerbuch oder Datenbanktut. kann nicht schaden. Ohne Grundlagenkenntnisse bleibt dein Programm immer ein gefährliches Stückwerk. Da möchte ich dann nicht der arme Mieter sein :mrgreen:

plautzer 25. Aug 2003 17:13

Re: Probleme mit dbgrid!!!
 
Ein buch habe ich mir schon angeschafft,
"Grund und profiwissen" von doberenz und Kowalski (Borland delphi 6).

Viel kann ich daruas nicht entnehmen, zumal da mit queries gearbeitet wird und ich mit tabellen arbeiten möchte.

Cu

Plautzer

plautzer 28. Aug 2003 17:26

Re: Probleme mit dbgrid!!!
 
Hi,
ich bin jetzt mal von Paradox 7 auf paradox 5 für windows umgestiegen,
damit klappt die sache jetzt auch.

Das blöde ist bloss das die einträge nicht richitg gespeichert wenn ich delphi komplett schliessen, dann das prog aufrufe und starte.. dann sind die einzt gespeicherten beiträge weg.

Nur wenn ich nebenbei die Datenbankoberfläche sowie die table1 geöffnet habe und ich die dann anklicke, dann erscheint erst der eintrag??
Kommt das jemanden bekannt vor??

THx

Plautzer

Memo 28. Aug 2003 17:38

Re: Probleme mit dbgrid!!!
 
Zitat:

Zitat von plautzer
ich bin jetzt mal von Paradox 7 auf paradox 5 für windows umgestiegen,
damit klappt die sache jetzt auch.

Hä. Verstehe ich nicht.
Zitat:

Zitat von plautzer
Das blöde ist bloss das die einträge nicht richitg gespeichert wenn ich delphi komplett schliessen, dann das prog aufrufe und starte.. dann sind die einzt gespeicherten beiträge weg.

Nur wenn ich nebenbei die Datenbankoberfläche sowie die table1 geöffnet habe und ich die dann anklicke, dann erscheint erst der eintrag??
Kommt das jemanden bekannt vor??

CachedUpdate ist False?

plautzer 28. Aug 2003 20:24

Re: Probleme mit dbgrid!!!
 
HI,
naich hatte erst ein paradox 7 tabelle erstellt mot der ich erst paar probleme hatte, jetzt habe ich eine neue paradox 5 tabelle erstellt und nun funzt alles vom feinsten!!!
Gibt es zwischen denen einen unterschied??

Dank dir es funzt :dancer:

Plautzer

Memo 29. Aug 2003 11:42

Re: Probleme mit dbgrid!!!
 
Zitat:

Zitat von plautzer
HI,
naich hatte erst ein paradox 7 tabelle erstellt mot der ich erst paar probleme hatte, jetzt habe ich eine neue paradox 5 tabelle erstellt und nun funzt alles vom feinsten!!!
Gibt es zwischen denen einen unterschied??

Na schau mal auf die Versionsnr. :freak:

plautzer 29. Aug 2003 15:37

Re: Probleme mit dbgrid!!!
 
wieso steht da bei der Paradox 5 das sie extra für windows sei??
Wie kommts noch das die mit der 5 alles besser klappt als mit der 7??

plautzer

Memo 29. Aug 2003 15:47

Re: Probleme mit dbgrid!!!
 
Zitat:

Zitat von plautzer
wieso steht da bei der Paradox 5 das sie extra für windows sei??

Weil 4 ,glaub ich, noch für DOS war.
Zitat:

Zitat von plautzer
Wie kommts noch das die mit der 5 alles besser klappt als mit der 7??

Weil du es dir einbildest.

plautzer 30. Aug 2003 11:42

Re: Probleme mit dbgrid!!!
 
Zitat:

Zitat von Memo
Weil du es dir einbildest.

ich habe bei meinen programm die tabelle gewechselt, einmal paradox 5 und dann paradox 7... mit den selben einstellungen konnte ich bei paradox 5 neue einträge hinzufügen etc. die wurden dann auch gespeichert... mit paradox 7 konnte ich zwar auch neue moeter hinzufügen dennoch bleiben die nicht erhalten bei der nächsten öffnung des programmes, quasi nich trichtig gespeichert. Und nur einbildung kann das nicht sein.

Ich gern noch vorgespeicherte profile haben.. also das schon 100 ids vorgetragen sind... wie kann man das machen??

Plautzer

plautzer 31. Aug 2003 16:14

Re: Probleme mit dbgrid!!!
 
HI,

ich verstehe es einfach nicht, ich kann weder auf dauer in meiner tabelle löschen, editieren... immer wenn ich das programm neue öffne.. sind genau die exakten werte da??
Hat dafür jemand ne erklärung auf lager... eigentlich darf es doch net gebn oda??

ich habe hier ein schleife um auf die 100 einträge zu kommen, doch klappt einfach nicht, da eine fehlermeldung wegen string/integer kommt:

var i:integer
begin
for i:=1 to 100 do
begin
Table1.Edit;
Table1.Fields['Whg'].AsInteger:=i;
Table1.Post;
end;
end;

wie kann ich das funktionstüchtig machen??

Danke

Plautzer

harrybo 1. Sep 2003 16:13

Re: Probleme mit dbgrid!!!
 
Hi plautzer,

ich glaube, es gibt zwei Probleme in Deinem Code. Erstens scheint Dein Feld 'Whg' nicht vom Typ integer zu sein. Das müsstest Du erst mal korrigieren. Alternativ kannst Du natürlich auch die Zahl mit QuotedStr(i) in einen String umwandeln. Zweitens, wenn Du mit "auf hundert Einträge kommen" meinst, dass 100 Datensätze erzeugt werden sollen, solltest Du statt Table1.Edit besser Table1.Append verwenden (Edit schreibt immer in den aktuellen, also in denselben Datensatz). Außerdem kannst Du mal versuchen, das Feld mit FieldByName anzusprechen.
Delphi-Quellcode:
var i:integer
begin
  for i:=1 to 100 do
    with Table1 do begin
      Append;
      FieldByName('Whg').AsInteger := i;
      Post;
    end;
end;

plautzer 1. Sep 2003 18:20

Re: Probleme mit dbgrid!!!
 
Hey,
danke es funzt. :)

Doch das problem mit dem speichern besteht immernoch.
Ich kann nichts auf dauer löschen, editieren hinzufügen.
Es speichert einfach nicht!!!!

What to do??


Plautzer

harrybo 1. Sep 2003 18:25

Re: Probleme mit dbgrid!!!
 
Hi Plautzer,

kannst Du mal Deinen aktuellen Code hier reinposten? Sonst fischen wir hier im Trüben.

plautzer 1. Sep 2003 18:35

Re: Probleme mit dbgrid!!!
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, DB, StdCtrls, Mask, DBCtrls, DBTables, ExtCtrls, Grids,
  DBGrids;

type
  TMietverwaltung = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Table1: TTable;
    Table2: TTable;
    Table1Whg: TAutoIncField;
    Table1Name: TStringField;
    Table1Vorname: TStringField;
    Table1Mietbegin: TDateField;
    Table1Bemerkung: TStringField;
    Table1Telefon: TIntegerField;
    Table1Bruttomiete: TCurrencyField;
    Table1Nettomiete: TCurrencyField;
    Table1Nebenkosten: TCurrencyField;
    Table1Kaltwasser: TCurrencyField;
    Table1Warmwasser: TCurrencyField;
    Table1Mll: TCurrencyField;
    Table1Fernwrme: TCurrencyField;
    Table1Antenne: TCurrencyField;
    Table1HMservice: TCurrencyField;
    Label1: TLabel;
    E_whg: TDBEdit;
    DataSource1: TDataSource;
    Label2: TLabel;
    E_name: TDBEdit;
    Label3: TLabel;
    E_vorname: TDBEdit;
    Label4: TLabel;
    E_mietbeg: TDBEdit;
    Label5: TLabel;
    E_Bemerk: TDBEdit;
    Label6: TLabel;
    E_tel: TDBEdit;
    Label7: TLabel;
    E_brutto: TDBEdit;
    Label8: TLabel;
    E_netto: TDBEdit;
    Label9: TLabel;
    E_neben: TDBEdit;
    Sp_schlies: TSpeedButton;
    Sp_off: TSpeedButton;
    DBGrid1: TDBGrid;
    first: TBitBtn;
    prior: TBitBtn;
    next: TBitBtn;
    last: TBitBtn;
    store: TButton;
    delete: TButton;
    new: TButton;
    cancel: TButton;
    Table2Id: TIntegerField;
    Table2Datum: TDateField;
    Table2Bruttomiete: TCurrencyField;
    Table2Bezahlt: TStringField;
    DataSource2: TDataSource;
    Button1: TButton;
    Button2: TButton;
    DBNavigator1: TDBNavigator;
    Button3: TButton;
    procedure Sp_offClick(Sender: TObject);
    procedure Sp_schliesClick(Sender: TObject);
    procedure firstClick(Sender: TObject);
    procedure priorClick(Sender: TObject);
    procedure nextClick(Sender: TObject);
    procedure lastClick(Sender: TObject);
    procedure storeClick(Sender: TObject);
    procedure deleteClick(Sender: TObject);
    procedure newClick(Sender: TObject);
    procedure cancelClick(Sender: TObject);
    procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
    procedure FormShow(Sender: TObject);
    procedure E_nameChange(Sender: TObject);
    procedure Button3Click(Sender: TObject);

  private
    procedure setbuttons(m: Byte);
  public
    { Public-Deklarationen }
  end;

var
  Mietverwaltung: TMietverwaltung;
  pos: TBookmark;
implementation

uses Unit2;

{$R *.dfm}

procedure TMietverwaltung.Sp_offClick(Sender: TObject);
begin
sp_schlies.Visible:=true;
sp_off.Visible:=false;
form2.Show;
end;

procedure TMietverwaltung.Sp_schliesClick(Sender: TObject);
begin
sp_schlies.Visible:=false;
sp_off.Visible:=true;
form2.close;
end;

procedure TMietverwaltung.setbuttons(m: Byte);
begin
 case m of
        0:begin
           new.Enabled:=false;
           store.Enabled:=false;
           delete.Enabled:=false;
           cancel.Enabled:=false;
          end;
        1:begin
           new.Enabled:=true;
           store.Enabled:=false;
           delete.Enabled:=true;
           cancel.Enabled:=false;
          end;
        2:begin
           new.Enabled:=false;
           store.Enabled:=true;
           delete.Enabled:=false;
           cancel.Enabled:=true
          end
     end
end;

procedure TMietverwaltung.firstClick(Sender: TObject);
begin
Table1.first;
first.Enabled:=false;
prior.Enabled:=false;
next.Enabled:=true;
last.Enabled:=true;
table2.Filtered:=false;
table2.Filter:='id = '+Table1.Fields[0].AsString;
table2.Filtered:=true;
end;

procedure TMietverwaltung.priorClick(Sender: TObject);
begin
Table1.prior;
next.Enabled:=true;
last.Enabled:=true;
if table1.Bof then firstclick(self);
table2.Filtered:=false;
table2.Filter:='id = '+Table1.Fields[0].AsString;
table2.Filtered:=true;
end;

procedure TMietverwaltung.nextClick(Sender: TObject);
begin
Table1.next;
prior.Enabled:=true;
first.Enabled:=true;
if table1.Bof then lastclick(self);
table2.Filtered:=false;
table2.Filter:='id = '+Table1.Fields[0].AsString;
table2.Filtered:=true;
end;

procedure TMietverwaltung.lastClick(Sender: TObject);
begin
Table1.last;
first.Enabled:=True;
prior.Enabled:=True;
next.Enabled:=false;
last.Enabled:=false;
table2.Filtered:=false;
table2.Filter:='id = '+Table1.Fields[0].AsString;
table2.Filtered:=true;
end;

procedure TMietverwaltung.storeClick(Sender: TObject);
begin
if Table1.State=dsEdit then Table1.Post;
setbuttons(1);
table1.Refresh
end;

procedure TMietverwaltung.deleteClick(Sender: TObject);
begin
if messagedlg('Wollen sie den mieter wirklich löschen??',
mtwarning,[mbyes, mbno], 0) = mryes then
begin
Table1.Delete;
Table1.Edit
end
end;

procedure TMietverwaltung.newClick(Sender: TObject);
begin
table1.Edit;
table1['Mietbegin']:=formatdatetime('dd.mm.yyyy', now);
table1.post;
setbuttons(2);
table2.Filtered:=false;
table2.Filter:='id = '+Table1.Fields[0].AsString;
table2.Filtered:=true;
end;

procedure TMietverwaltung.cancelClick(Sender: TObject);
begin
if Table1.State=dsEdit then Table1.Cancel;
setbuttons(1);
table1.Refresh
end;





procedure TMietverwaltung.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
table2.Edit;
table2['id']:=table1['Whg'];
table2.Post;
end;

procedure TMietverwaltung.FormShow(Sender: TObject);
var i:integer;
begin

setbuttons(1);

end;


procedure TMietverwaltung.E_nameChange(Sender: TObject);
begin
setbuttons(2)
end;

procedure TMietverwaltung.Button3Click(Sender: TObject);
var i:integer;
begin
  for i:=1 to 100 do
    with Table1 do begin
      Append;
      FieldByName('Whg').AsInteger := i;
      Post;
    end;
end;

end.

Thx, leude.

Plautzer

harrybo 1. Sep 2003 20:54

Re: Probleme mit dbgrid!!!
 
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ßen
Delphi-Quellcode:
if 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ßen
Delphi-Quellcode:
if 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

plautzer 2. Sep 2003 18:05

Re: Probleme mit dbgrid!!!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen vielen dank.

Ich habe das Meiste geändert was du gesagt hast,
was ich nicht kapiert habe ist das mit der dritten Tabelle??
Ich habe bis jetzt 2 tabellen... einmal für die daten und einmal für die rechnung.

Das speichern funzt trotzdem net.
Ich werde mal das prog hochladen.. vielleicht hilft das.

Hättet ihr noch einen vorschlag wie ich das grid leer bekommen... wenn ich einen mieter hinzufüge???

Thx.

Plautzer

Memo 2. Sep 2003 18:38

Re: Probleme mit dbgrid!!!
 
Zitat:

Zitat von Memo
CachedUpdate ist False?

Darf ich mich mal selber zitieren? Warum liest du nicht was ich dir schon vor einer Zeit geschieben habe? Deine Daten verpuffen. Oder informiere dich über Transaction.

plautzer 2. Sep 2003 21:04

Re: Probleme mit dbgrid!!!
 
Ich habe deinen Rat schon befolgt und Cachedupdate auf true gestellt,
doch es speichert nicht. Wenn ich es auf flase lassen da speichert er, aber nur bis zum nächsten neustart!!


Cu

Plautzer

plautzer 4. Sep 2003 17:56

Re: Probleme mit dbgrid!!!
 
HI,
ich abe mich mal ein bizzl schlau gemacht,
verschiedene tuts gelesen etc. doch das ist kein unterschied zu dem was ich gemacht habe.
Ich habe mal nur die eine tabelle(die selbe mit der ich meinem prog auch arbeite) + navigator auf ein neues projekt gemacht... dort funzt die sache vom feinsten, ausser das editieren... das geht trotz speichern auch nicht.

Ich meine man kann doch garn icht soviel falsch machen.
Nur die tabelle.. richtig einstellen.. wie man es in ein buch oder tutorial lesen kann und das wars dann auch schon.

Macht ihr irgetnwas anders??
Mit dem buch horlöand 6 müsste ich doch ganz gut dran sein und habe auch alles durchgelesen und befolgt.

Das programm treibt mich noch ind ie verzweiflung... irgentwann muss es doch mal laufen!!

MfG

Plautzer

Mattin 4. Sep 2003 19:09

Re: Probleme mit dbgrid!!!
 
Hi, ich hätte folgenden Vorschlag zu machen. Nämlich erstmal zu überlegen wie man das angeht.

In der ersten Datenbank stehen die Mieter.In der zweiten Datenbank sollen die Kosten der Mieter eingetragen werden. Dazu brauchst Du einen einen Bezug der den Kostensatz des Mieters identifiziert.

Erweitere die Datenbank Kosten mit einem neuen Feld "MieterNr [Integer].
Beim anlegen des Datensatz ordnest Du dann die MieterNr dem Feld zu.

Bsp.:

Mieter.DB:

MieterNr Interger
Name String
etc......

Kosten.DB:

KostenNr Integer
MieterNr Integer
etc......


Beim Anlegen (Buttonklick)
KostenDaten.Append;
KostenDatenMieternr.Value := MieterDatenMieterNr.Value
KostenDaten.Post;

Somit wird eine Verbindung zwischen dem Datensatz aus der KostenDatenbank möglich.

Filter nun die KostenDaten nach der MieterNummer

KostenDaten.Filter := '('+ 'MieterNr =' + '''' + IntToStr(MieterDatenMieterNr.Value) + '''' + ')';

Ich hoffe ich konnte ein bisschen helfen......

plautzer 4. Sep 2003 21:13

Re: Probleme mit dbgrid!!!
 
Ich glaube genau so habe ich das gemacht.
In der tabelle kosten habe ich das feld NR, welches dann der wert von whg bekommt.

table2.Edit;
table2['id']:=table1['Whg'];
table2.Post;


Und gefiltert wird es immer dann wenn man ein pfeil drückt siehe:

procedure TMietverwaltung.firstClick(Sender: TObject);
begin
Table1.first;
first.Enabled:=false;
prior.Enabled:=false;
next.Enabled:=true;
last.Enabled:=true;
table2.Filtered:=false;
table2.Filter:='id = '+Table1.Fields[0].AsString;
table2.Filtered:=true;
end;

Danke aber erstmal.. ich werde mal deine formel anschauen.. vielleicht war ja was bei meinen falsch!!!

MfG

Plautzer

plautzer 7. Sep 2003 12:31

Re: Probleme mit dbgrid!!!
 
Hi,
wie ich schon vermutet hatte war das nur eine anders schreibweise von dem was ich scon hatte. sorry.

Ich sitze aber immernoch fest.
Ich kann einfach nciht nachvollziehn wieso das ganze nicht geht.. zumindest wenn ich ne ganz simple tabelle mit nur einen name habe müsste das doch funzen oda?? viel kann man doch nicht falsch machen.
Ich hoffe ihr könnt mir noch bizzl helfen, danke.

Plautzer

plautzer 8. Sep 2003 18:18

Re: Probleme mit dbgrid!!!
 
Hi,

nachdem ich nun hunderte stunden nur an einem scheiss problem gesessen habe das ich am ende als total primitiv erwies!! :oops:

Es hatte einfach das gefehlt:

procedure TMietverwaltung.FormCreate(Sender: TObject);
begin
table1.Open;
table2.Open;
end;

det wars.

Sonst geht alles bis aufs löschen. da will er nicht so richtig!!
Warum??- da muss ich wohl nochmals hundert stunden verbringen um das rauszufinden :roll:

Eine frage hätte ich trotzdem noch:

wenn ich diesen code verwende:

Code:
KostenDaten.Append;
KostenDatenMieternr.Value := MieterDatenMieterNr.Value
KostenDaten.Post;
dann ist ja dsa problem das ich immer nur eine KostenDatenMieternr einer MieterDatenMieterNr zuordner kann.. wenn es mehr KostenDatenMieterNr sind kommt ein Indexfehler!!
Wie kann ich den vermeiden???

Sonst geht alles bis aufs löschen. da will er nicht so richtig!!
Warum??- da muss ich wohl nochmals hundert stunden verbringen um das rauszufinden :roll:

MfG

Plautzer


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 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-2025 by Thomas Breitkreuz