Autor Beitrag
mexx
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 12.09.07 10:33 
Situation:
FireBird v1.5 Datenbank
TwwQuery von InfoPower ähnlich wie TQuery

Query erhält Ihre Datenmenge über einen select-Aufruf auf eine Procedure der Firebirddatenbank. Zum Beispiel: select * from GET_DATENMENGE. Die Query hat eine Updatekompontente, die kein Insert- oder Update-Statement enthält, sondern einen ähnlichen Procedureaufruf wie SET_DATENMENGE. Diese Technik und die Datenbankproceduren GET... und SET... verwende ich an anderen Stellen erfolgreich. Aber bei der Query erhalte ich beim Ausführen der SET_DATENMENGE die Meldung "Tabelle ist Schreibgeschützt". Es gibt keine Unterschiede in den Eigenschaften der Query die nicht funktioniert und der Query, bei der diese Methode funktioniert. Woran kann das noch liegen? Bin für jede noch so unglaubliche Idee dankbar.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 12.09.07 10:42 
Hat der (Datenbank-)Benutzer Schreibrechte auf die Tabelle?

_________________
Markus Kinzler.
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 12.09.07 10:46 
Ja, an der DataBase, an der die besagte Query hängt, hängen auch andere Query, die diese Methode verwenden und bei denen funktioniert es. Also sind die Loginparameter korrekt.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 12.09.07 10:53 
Machen die Queries auch Updates auf die selbe Tabelle?
Man kann ja die Rechte pro Tabelle setzen.

_________________
Markus Kinzler.
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 12.09.07 10:56 
Ja, machen Sie. Die funktionierende Query führt die selbe Update-Procedure aus, wie die nicht funktionierende Query. Ich habe vor dem Ausführen des Updates einen Haltepunkt gesetzt und die Werte aus den Fields mal manuel im SQL-Editor eingetragen. Die Procedure wurde erfolgreich ausgeführt. Aber aus der Anwendung herraus erhalte ich die Schreibschutz-Meldung.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 12.09.07 10:59 
Stimmen die Transaktions-Einstellungen mit den Anderen Queries überein?
Hat die Komponente eine ReadOnly-Property?

_________________
Markus Kinzler.
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 12.09.07 11:02 
Zitat:
Stimmen die Transaktions-Einstellungen mit den Anderen Queries überein?

Die Einstellungen sind bei beiden identisch.

Zitat:
Hat die Komponente eine ReadOnly-Property?

Nein


Danke für Deine Ideen, vielleicht kommt so der zündente Gedanke.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 12.09.07 11:08 
Wie könnte man im Quelltext einer Datenbanktabelle zur Laufzeit oder in einer Transaktion einen Schreibschutz verpassen? Vielleicht passiert dies irgendwo ohne absicht.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 12.09.07 11:39 
Mein Chef hatte die zündente Idee. Hier die Lösung:

Die Parameter in der Update-Anweisung standen nicht mit den Fields der Query überein. In dem Procedureaufruf, welcher in der Updatemethode der TUpdate-Komponente stand, war ein Parameter hinterlegt, welcher im Fields der Query fehlte. Ich habe Ihn als berechnendes Feld hinzugefügt und zur Laufzeit mit einen Wert belegt. Die Meldung bzgl. des Schreibschutzes ist inhaltlich also nicht ganz richtig. "Parameter unvollständig" wäre treffender.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.