Entwickler-Ecke

Datenbanken - TDatasSet BeforeOpen: Öffnen verhindern


spacerunner - Sa 20.10.07 11:20
Titel: TDatasSet BeforeOpen: Öffnen verhindern
Hallo,

ich stehe vor folgendem Problem: ich möchte vor dem Öffnen einer Datenbank / TDataSet eine Prüfung vornehmen und das Öffnen gegebenenfalls verhinden.

Ansatz: im BeforeOpen-Handler irgendetwas ausführen. damit kommt ich aber nicht weiter. gibt es irgendeine möglichkeit, das umzusetzen?

(zum konkreten problem: ich habe meine (vielen) datasets in designtime active, muss sie aber in runtime manuell aktivieren, nach bestimmtem vorgaben)

ich wäre für hilfe sehr dankbar!

mfg,
chris.-


raiguen - Mo 22.10.07 17:44
Titel: Re: TDatasSet BeforeOpen: Öffnen verhindern
user profile iconspacerunner hat folgendes geschrieben:
... ich habe meine (vielen) datasets in designtime active, ...


Generell sollte man nach Möglichkeit vermeiden, schon während der Designzeit Tabellen offen zu halten; hab mir immer wieder den eine oder anderen (zuerst nicht nachvollziehbaren) Fehler beiom Starten des Programm eingehandelt. Das was du vor hast, wird somit nicht funktionieren (nach meiner bescheidenen Kenntnis), weil die Tabellen während des FormCreate bereits aufgemacht werden und von daher weitere 'BeforeOpen'-Activitäten noch nicht zum Zuge kommen...

Besser ist es auf jeden Fall, die benötigen Tabellen während des Programmstarts bzw -laufes entsprechend zu aktivieren.


alzaimar - Mo 22.10.07 19:58

Die GExperts haben einen völlig unterschätzten Helfer, der innerhalb der IDE vor dem Kompilieren sicherstellt, das frei wählbare Eigenschaften einzelner Komponenten auch wirklich vordefinierte Werte annehmen.

Ich habe z.B. für TQuery und TTable die Eigenschaft 'Active' auf False und TDatabase.Connected auf False. Egal wie und wo ich mit den Tabellen zur Designzeit rumspiele, im Kompilat sind sie garantiert alle geschlossen.


Robert.Wachtel - Mo 22.10.07 21:25

user profile iconalzaimar hat folgendes geschrieben:
Die GExperts haben einen völlig unterschätzten Helfer [...]


:D Das freut mich zu hören. :D


raiguen - Mo 22.10.07 22:32

Okay... da ich GExperts wenig kenne und so gut wie garnicht damit arbeite (warum eigentlich :gruebel:) war/ist mir die von alzaimer genannte Möglichkeit natürlich nicht in den Sinn gekommen *zu meiner Schande gesteh* ist aber schön zu wissen, dass es sowas gibt :)


alzaimar - Di 23.10.07 07:28

Lass mal, ich hab mich beinahe 10 Jahre geärgert, das beim Kunden die SW bei der Installation hängen blieb, weil ich mal wieder vergessen habe, die TDatabase/TADOConnection/TSocketConnection vor dem Kompilieren zu schließen. Nur um dann irgendwann beim rumspielen auf diesen 'Set Component Properties' Typen zu stoßen... :dance2:


Robert.Wachtel - Do 25.10.07 01:20

:mrgreen: Genau so eine Situation war die Motivation für die Entstehung dieses Experten... ;)