Entwickler-Ecke

Datenbanken - Aktualiesierungs Problem der Datenbank


Becks16 - Do 09.06.05 13:26
Titel: Aktualiesierungs Problem der Datenbank
Hallo

Ich möchte einen Datensatz speichern und ihn dann gleich sehen wenn ich mir die Datensätze angucke. Ich kann sie erst sehen wenn ich das Programm beendet habe und es neu gestartet habe.

Ich habe es schon versucht mit Query.Refresh da kackt er bei ab und dann hab ich die Query geschlossen und wieder geöffnet das geht auch nicht da kann ich mir immer nur den ersten datensatz angucken...

gibt es noch andere Varianten ???

mfg


alzaimar - Do 09.06.05 20:41

Wieso kannst Du dir bei einem close/open nur den ersten Datensatz angucken?
Versuch mal das hier:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Procedure csRefresh (aDS: TDataset);
Var
  B : TBookmark;

Begin
  aDS.GetBookmark (B);      // Datensatzzeiger merken
  aDS.DisableControls;      // Anzeige blockieren
  Trya
    aDS.Close;              // Daten neu laden
    aDS.Open;
  Finally
    Try 
      aDS.GotoBookmark (B); // Zum gespeicherten Datensatz
    Except                  // Könnte aber schiefgehen (wenn er gelöscht wurde)
      End;
    aDS.FreeBookmark (B);   // Speicher freigeben
    aDS.EnableControls;     // Blockierung aufheben
   End;
End;


Becks16 - Fr 10.06.05 08:12

Das klappt auch nicht .....bei dieser Zeile meckert er rum

Quelltext
1:
aDS.GetBookmark (B);      // Datensatzzeiger merken                    


er sagt zuviele Parameter ich hab dann das B in den Klammern raus genommen und dann lief es durch es hat aber nicht geklappt.....

mfg


jasocul - Fr 10.06.05 08:25

Ich vermute mal, dass du zwei Queries benutzt. Die eine zum Bearbeiten und die andere zum Anzeigen. Kann es sein, dass du bei der falschen das Refresh machst?
Und was haben Bookmarks damit zu tun? :gruebel:


Becks16 - Fr 10.06.05 08:28

Also ich habe 3 Querys einmal eine für die Tabelle Film(unit1) eine Query für die Tabelle verleiher(Unit3) und ein Query für die tabelle Verleihliste(Unit2)ich habe diese Prozedur jetzt bei Unit2 rein kopiert ....

mfg


jasocul - Fr 10.06.05 08:31

Das kann ja alles sein, aber da ich das Projekt nicht kenne, sind mir die Zusammenhänge zwischen den Queries auch nicht klar.
Mach doch nach dem Post ein Refresh auf alle Queries. Sollte dann der neue Datensatz angezeigt werden, weißt du, dass du das falsche Query für den Refresh verwendet hattest.
Das richtige dann herauszufinden dürfte bei 3 Queries nicht so schwierig sein. :wink:


Becks16 - Fr 10.06.05 08:34

Ja ok ..aber warum meckert er rum und sagt zu viele Parameter


Quelltext
1:
 aDS.GetBookmark (B);      // Datensatzzeiger merken                    


wenn ich das be raus nehme läuft er ja durch

mfg


jasocul - Fr 10.06.05 08:37

GetBookmark ist eine Funktion!

Delphi-Quelltext
1:
 B := aDS.GetBookmark;      // Datensatzzeiger merken                    

Das hat aber mit deinem Problem nichts zu tun.


Becks16 - Fr 10.06.05 08:41

aha ..naja ich habe es jetzt überall eingefügt und es geht nicht musste wie gesagt das (B) überall raus nehmen sonst kam die Fehlermeldungt zu viele Parameter.....

mfg


alzaimar - Fr 10.06.05 09:17

Hab ich rumgeschlampt? Tschuldigung.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Procedure csRefresh (aDS: TDataset);
Var
  B : TBookmark;

Begin
  B := aDS.GetBookmark;     // Datensatzzeiger merken
  aDS.DisableControls;      // Anzeige blockieren
  Trya
    aDS.Close;              // Daten neu laden
    aDS.Open;
  Finally
    Try 
      aDS.GotoBookmark (B); // Zum gespeicherten Datensatz
    Except                  // Könnte aber schiefgehen (wenn er gelöscht wurde)
      End;
    aDS.FreeBookmark (B);   // Speicher freigeben
    aDS.EnableControls;     // Blockierung aufheben
   End;
End;


Becks16 - Fr 10.06.05 09:22

Ist doch nicht schlimm es hat geklappt ich danke auch ....

mfg


Becks16 - Sa 11.06.05 13:22

ich hab das jetzt zuhause in meinen programm rein gemacht und da läuft es nicht er sagt immer zu undefinierter bezeichner TDataset und TBookmark ... was ist das für ein fehler ...

mfg