AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Verwendung von Post/Insert/Open /Close.. Daten nicht sichtb.
Thema durchsuchen
Ansicht
Themen-Optionen

Verwendung von Post/Insert/Open /Close.. Daten nicht sichtb.

Ein Thema von spoona · begonnen am 26. Mai 2005 · letzter Beitrag vom 31. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2      
spoona

Registriert seit: 2. Mär 2005
48 Beiträge
 
#1

Verwendung von Post/Insert/Open /Close.. Daten nicht sichtb.

  Alt 26. Mai 2005, 13:43
Datenbank: Interbase • Version: 6 • Zugriff über: IB Table
Hallo,
ich habe mal wieder ein Problem.
Ich habe ne Datenbank auf die ueber das Netzwerk zugegriffen wird.Wenn ich jetzt die Daten von dem einen Rechner aendere und auf dem anderen Rechner ansehen will,dann sehe ich die Aenderung nur auf dem PC, wo sie vorgenommen wurde. Ok, es macht vielleicht auch Sinn,da erst nach Beendigung des Programmes die Daten fuer alle User in der DB sichtbar werden. Es liegt wohl daran,dass ich beim programmstart alle tables oeffne und beim beenden erst alle wieder schliesse, dann wird wohl erst ein Commit ausgefuehrt. Aber ich will doch nach jeder Aenderung,also nach jedem Post, die Aenderung auch sehen, ohne das Programm neu zu starten.
Allgemeine Programmstruktur :
Programmstart
Delphi-Quellcode:
  Table1.open
  Table2.open
  Table3.open
  //Insert Datensatz
  Table1.Insert
   // DBEditfelder werden gefuellt
  Table1.Post
  //Navigieren in den Datensaetzen
 // In meiner Transaction bzw . Rechner sehe ich Aenderung/Andere rechner sehen diese nicht
//Beenden des Programmes
  Table1.Close
  Table2.close
  Table3.close
Ist hier vielleicht etwas, was ich grundlegend falsch mache?
Vielen Dank fuer Eure Hilfe
Gruss Spoona

[edit=MrSpock]Code Tags eingefügt. Mfg, MrSpock[/edit]
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: Verwendung von Post/Insert/Open /Close.. Daten nicht sic

  Alt 26. Mai 2005, 13:52
Du must die Transaktion neustarten
Also
Delphi-Quellcode:
  IBTransaction.Close;
  IBTransaction.Open;
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Verwendung von Post/Insert/Open /Close.. Daten nicht sic

  Alt 26. Mai 2005, 13:55
Hallo spoona,

du musst die Transaktion "committen". Ich empfehle ein CommitRetaining, da du dann mit der Transaktion noch weiter arbeiten kannst. Dann ist die Änderung in die Datenbank permanent übertragen, aber d.h. noch nicht, dass sie sofort auf dem anderen Rechner sichtbar wird. Wenn dieser mit einem Snapshot arbeitet, sieht er die Änderung nicht sofort!
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
spoona

Registriert seit: 2. Mär 2005
48 Beiträge
 
#4

Re: Verwendung von Post/Insert/Open /Close.. Daten nicht sic

  Alt 26. Mai 2005, 14:34
Hallo vielen Dank fuer die Antwoten.
Ich glaube es heisst Transaction.activ, da eine close funktion nicht implementiert ist.Oder?

Und mit dem Commitretaining funktioniert es soweit,das zumindest gleich alles in
die DB geschrieben wird(Ich mache also ein Commit direkt nach dem Post!!???).
Habe es vorher alles mit nem commit probiert,danach wurde aber kein datensatz mehr angezeigt. Mein delphi programm ist auf allen rechnern installiert, aber leider bekomme ich GAR KEINE Aenderung auf den anderen Rechnern. Habe noch refresht,aber das funktioniert auch nicht.
Was meinst du mit Snapshot? Die Einstellung kann ich bei dem Transaction Editor auswaehlen.Habe aber nichts von den vieren ausgewaehlt(Snapshot,Read_Commited,Read-Only Table Stability, Read-Write Table Stability).Was kann ich jetzt machen?

Vielen Dank fuer Eure Hilfe
Gruss Spoona
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Verwendung von Post/Insert/Open /Close.. Daten nicht sic

  Alt 26. Mai 2005, 15:13
Also PC1 mach Post dann

Transaction.Commit;

Und PC2 will neue Daten haben dann

Transaction.Active:=false;
Transaction.Active:=True;
Table.Open;

Neue Daten da.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
spoona

Registriert seit: 2. Mär 2005
48 Beiträge
 
#6

Re: Verwendung von Post/Insert/Open /Close.. Daten nicht sic

  Alt 27. Mai 2005, 10:03
Hallo,

danke fuer die Antwort, aber irgendwie geht das nicht so wie ich will.
Also ich habe es so :

ButtonSaveDataset begin //Wird an PC 1 gedrueckt
....
Frm_Database.TB_Contact.Post;
Frm_Database.TR_Database.CommitRetaining;
...
end;

ButtonRefreshDataset begin// Wird an PC 2 gedrueckt

Frm_Database.TR_Database.Active:=false;
Frm_Database.TR_Database.Active:=True;
Frm_Database.TB_Contact.Open;
end;

Wenn ich die Transaction deaktieviere und aktiviere, dann werden gar keine daten mehr angezeigt.Also alles weg.....
Vielen Dank fuer deine Hilfe
Gruss Spoona
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

Re: Verwendung von Post/Insert/Open /Close.. Daten nicht sic

  Alt 27. Mai 2005, 10:09
Du msut die Tabellen wieder öffenen nachdem due die Transaction restartet hast (Die schliessen dann nämlich alle)
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
spoona

Registriert seit: 2. Mär 2005
48 Beiträge
 
#8

Re: Verwendung von Post/Insert/Open /Close.. Daten nicht sic

  Alt 27. Mai 2005, 11:47
Hallo,

danke.Jo dat geht jetzt. Habe nen Mastersource und hatte das nicht bedacht.
Vielen Dank. So habe noch ne andere Frage. Wie kann ich pruefen,ob der Datensatz gerade von jemand anderen bearbeitet wird?Also ich wollte ne fehlermeldung geben, wenn ich in insert oder edit -Mode gehe und der datensatz bereits von jemand anderen bearbeitet wird.

Danke gruss Spoona
  Mit Zitat antworten Zitat
spoona

Registriert seit: 2. Mär 2005
48 Beiträge
 
#9

Re: Verwendung von Post/Insert/Open /Close.. Daten nicht sic

  Alt 27. Mai 2005, 12:03
Hallo,

also ich packe jetzt alle postst und Commits in ein try except block
Dann sollte es damit doch vernuenftig abgefangen sein?!
Naja aber besser wuerde ich es schon finden, wenn man ne Meldung bekommt,nachdem man den Edit Button gedrueckt hat und nicht erst,wenn m,an speichern will. Vielleicht eine Idee?
Danke

Gruss Spoona
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#10

Re: Verwendung von Post/Insert/Open /Close.. Daten nicht sic

  Alt 27. Mai 2005, 12:28
Hallo,

wenn Du ne Meldung bekommen willst, wenn Du den Edit-Buttons drückst, dann kannst Du dir ne neue Table anlegen, wo alle DS vermerkt werden, die sich gerade in der Bearbeitung finden. Oder Du machst ein Update, wenn Du die Bearbeiten-Button drückst.

Das kannst Du doch auch von der Transaction steuern lassen. Hast Du in der Transaction auch den IdleTimer gesetzt, wenn nicht würde ich das noch maachen. Denn wenn mehrere Clients mit der DB arbeiten wollen und einer klickt auf bearbeiten und geht los, kann keiner mehr die Daten bearbeiten.
Gruß

Albi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:35 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