Hi Hansa,
ich nehme mal folgendes Beispiel: ein Dataset soll Daten aus einer Tabelle Termine holen, und zwar für ein bestimmtes Datum (das ist der Parameter). Die Termine werden in einem Grid dargestellt. Was machen nun die Parameter?
- ADataset: TIBDataset Hier gebe ich an, welcher Dataset neu geladen werden soll, bei mehr als einem Dataset macht das schon Sinn.
APar: variant das ist in diesem Beispiel das Datum, kann in einem anderen Fall eine KundenID sein, daher variant. Man könnte hier zwar umformen, etwa in string, das widerspräche aber einer meiner Programmierregeln: einen Wert ausschließlich in seinem eigenen Format irgendwohin zu übergeben.
AID: longint Die Id des Datensatzes, der zuletzt vom Benutzer angewählt war. Ist ID > 0 wird nach dem Refresh versucht, den Recordpointer an dieselbe Stelle zu positionieren (alle meine Tabellen haben einen Unique Key, immer an erster Stelle, also Fields[0]). Auf diese Weise kann man z.B. in Mehrbenutzersystemen refreshen, ohne dass der Benutzer es merkt, er "bleibt" praktisch auf seinem Datensatz.
AType: integer Es muss geklärt werden, was mit der laufenden Transaktion passieren soll. Übergeben wird ein Integer 0 bis 4 als Konstante. Wird 0 übergeben (c_Idle), läuft die Transaction weiter, manchmal möchte man aber auch committen, dann müssen natürlich sämtliche Datenmengen, die an dieser Transaction hängen neu aktiviert werden.
Mehr ist es eigentlich nicht. Es wird noch gecheckt, ob der Dataset sich gerade im Editiermodus befindet, dann wird er zunächst noch gesichert. Ja und nun kann man jeden Dataset, der einen Parameter erwartet ganz bequem refreshen, ohne sich immer wieder um genannten Kram zu kümmern. Das Gleiche kann man dann auch für ein
Query anlegen, also RequeryQU1(AQuery: TIBQuery, ...
gruß, harrybo