Einzelnen Beitrag anzeigen

Honie

Registriert seit: 27. Sep 2003
Ort: Bielefeld
39 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: IB Komponenten (IBUpdateSql)

  Alt 13. Okt 2003, 07:50
@Hansa

Habe D7 Enterprise. Ich benutze die Interbase Express 6 Komponenten. Das IBUpdateSQL Objekt steht direkt
bei den Interbase Komponenten. (Ist aber bei D7 neu geordnet worden - bei D5 war es auf jedenfall woanders, falls es überhaupt schon existierte.

@kiar

Muß ich die ApplyUpdates Methode von TIBDatabase aufrufen? Ich rufe commitretaining des IBDataSets auf, damit
ich den Transaktionskontext nicht verliere. Dadurch werden m.E. auch die Daten zurückgeschrieben.

Status:
Ich hab es weitestgehend zum laufen bekommen, aber ein paar Sachen sind mit noch unklar (obwohl sie funktionieren - soetwas hasse ich).

1. Wie kann ich vermeiden, dass ich im ModifySQL der IBUpdateKomponente eine Leerzeile einfügen muss, damit
IBDataset in dsEditmodes geht? Ich erzeuge ModifySQL dynamisch erst innerhalb des OnUpdateRecord Events der IBDataSet Komponente.

2.Sind die SQL-Strings innerhalb der IBDataSet Komponente überflüssig, wenn ich ein IBUpdateSQL Objekt benutze? Bei Modify,Delete und Insert wäre es mir ja klar - aber warum existiert ein RefreshSQL innerhalb
des IBUpdateSQL Objektes?

3. Wenn ich per IBUpdateSQL eine IBDataSet einfüge und dies innerhalb des OnUpdateRecord Events erzeuge, brauche ich dann ja kein OnNewRecord Event, da ich per UpdateKind = ukInsert innerhalb des OnUpdateRecord Events ja schon das Hinzufügen erledige. Oder?

4. Wenn ich per IBDataSet1.Post die Änderungen eintrage, ist es dann richtig, das dann als erstes
ein OnUpdateRecord Event erzeugt wird und dann abhängig vom Wert des Parameters UpdateAction auch noch die ModifySQL Anweisung des IBUpdateSQL Objektes ausgeführt wird? Oder wird diese immer ignoriert, wenn eine Methode dem OnUpdateRecord Event zugeordnet ist?


Mich würde auch interessieren, wie Ihr prinzipiell das Problem löst, wenn Ihr Änderungen auf nicht aktualisierbare Datenmengen ausführen wollt.

Gruß
und Danke für die Antworten.
  Mit Zitat antworten Zitat