AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Refresh meiner Db nach Änderung der Tabelle funzt nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Refresh meiner Db nach Änderung der Tabelle funzt nicht

Offene Frage von "torud"
Ein Thema von torud · begonnen am 14. Feb 2006 · letzter Beitrag vom 15. Feb 2006
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Refresh meiner Db nach Änderung der Tabelle funzt nicht

  Alt 14. Feb 2006, 09:27
Datenbank: Access • Zugriff über: JET
Hallo Wissende,

ich habe eine Access-DB, die aus mehreren Tabellen besteht. Meine sogenannte Haupttabelle heisst Medien.

Sie hat die Felder: Index, Titel usw.

Die andere Tabelle heisst Filme
Sie unter anderem die Felder: Index, MedienIndex, Titel, Sportart

Es gibt eine Beziehung zwischen beiden Tabellen - und zwar zwischen
Medien Feld(Index) und Filme Feld(MedienIndex)

Nun mein Problem. Der User muss in der MedienTabelle den Index neu vergeben. Dies klaptt ganz gut und so von mir realisiert.

Delphi-Quellcode:
        DataModule1.ADOTable1.Edit;
        DataModule1.ADOTable1.FieldByName('Index').Text:=ed_nr_ds.Text;
        DataModule1.ADOTable1.FieldByName('Titel').Text:=ed_titel_ds.Text;
        DataModule1.ADOTable1.Post;
Wenn ich nun auf das in dem DB-Grid auf den geänderten Datensatz klicke, werden leider nicht mehr wie vorher in dem zweiten DB-Grid die zum Medium gehörenden Filme angezeigt, zumindest nicht bei dem geänderten Medium. Starte ich das Programm neu, klappt es aber.

Muss ich nun nach jeder Änderung die Connection zur DB zurücksetzen und neu aufbauen, nur damit das funktioniert oder gibt es da eine einfachere Lösung?

Und wie kann ich nach dem Post, das geänderte Medium im DBGrid als aktuell setzen? Bisher habe ich das über die RecordNo gemacht. Da sich aber der index ändert, ändert sich auch die RecordNo.

Folgendes führe ich noch aus, wenn sich die MedienTabelle ändert...

Delphi-Quellcode:
       if DataModule1.ADOTable1.RecordCount > 0 then
         begin
          DataModule1.ADOTable2.Filtered:=False;
          DataModule1.ADOTable2.Filter:='MedienIndex ='+QuotedStr(DataModule1.ADOTable1.FieldByName('Index').AsString);
          DataModule1.ADOTable2.Filtered:=True;
         end;
Danke für nen Tipp...
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Refresh meiner Db nach Änderung der Tabelle funzt nicht

  Alt 14. Feb 2006, 10:15
Daran ist der performanceoptimierente Cach der JET-Engine schuld.
Du mußt ihn selbst Löschen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Refresh meiner Db nach Änderung der Tabelle funzt nicht

  Alt 14. Feb 2006, 11:19
hm, das scheint gar nicht so einfach, wie im Artikel beschrieben, denn ich erhalte beim Compilieren eine Fehlermeldung

Undefinierter Bezeichner 'Active Connection'

und springt dann in die Zeile:

Delphi-Quellcode:
function TReplica.Get_ActiveConnection: IDispatch;
begin
  Result := DefaultInterface.ActiveConnection;
end;
Das Ganze passiert in der Unit: JRO_TLB

Und selbst wenn ich die gesamte Connection schliesse und wieder erneut öffne, klappt es nicht. Erst wenn ich das Programm als Ganzes neu starte, ist alls aktualisiert vorhanden. Gibt es noch einen anderen Weg, oder wer kann mir helfen es doch noch hinzubekommen?
Danke
Tom
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#4

Re: Refresh meiner Db nach Änderung der Tabelle funzt nicht

  Alt 15. Feb 2006, 06:02
keiner eine idee?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Refresh meiner Db nach Änderung der Tabelle funzt nicht

  Alt 15. Feb 2006, 09:12
Verwende die Methode Requery (auch bei AdoTable!), um die Datenmenge zu aktualisieren, eventuell mußt du dir den aktuellen Datensatz merken und via Locate den Cursor neu positionieren.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#6

Re: Refresh meiner Db nach Änderung der Tabelle funzt nicht

  Alt 15. Feb 2006, 10:00
Hallo Mikhal,

Zitat:
Verwende die Methode Requery (auch bei AdoTable!), um die Datenmenge zu aktualisieren, eventuell mußt du dir den aktuellen Datensatz merken und via Locate den Cursor neu positionieren.
Folgendes mache ich derzeit, ohne dass es zum Erfolg führt.

Delphi-Quellcode:
        DataModule1.ADOTable1.Edit;
        DataModule1.ADOTable1.FieldByName('Index').Text:=ed_nr_ds.Text;
        DataModule1.ADOTable1.FieldByName('Titel').Text:=ed_titel_ds.Text;
        DataModule1.ADOTable1.Post;

        DataModule1.ADOTable1.Requery;
        DataModule1.ADOTable2.Requery;

        DataModule1.ADOTable1.Active:=false;
        DataModule1.ADOTable2.Active:=false;

        DataModule1.ADOTable1.Active:=true;
        DataModule1.ADOTable2.Active:=true;

        form1.db_sortieren;
        
        DataModule1.ADOTable1.Insert;
        DataModule1.ADOTable1.Cancel;
        form1.db_sortieren;
Requery habe ich schon seit gestern drin, ohne dass es wirklich hilft.

Das mit dem Datensatz merken ist irgendwie gar nicht so einfach, da sich ja Index ändert. Das heisst, ich müsste irgendwie erstmal nach dem neuen Index suchen, oder? Im Notfall würde ich das über eine Schleife machen, finde das aber selbst polnisch. Aber dieses Problem ist eher sekundär.
Danke
Tom
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Refresh meiner Db nach Änderung der Tabelle funzt nicht

  Alt 15. Feb 2006, 10:16
Also das mit dem Locate funktioniert einwandfrei!

Bleibt nur noch das Problem mit dem RefreshCache
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:01 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