| Autor |
Beitrag |
M4X1
      
Beiträge: 22
Win 2000, XP
Turbo Delphi 2006 Prof, Delphi 2007 Ent, Prof
|
Verfasst: Do 10.01.08 15:58
Hallo,
dieses Thema ist zwar schon mehrmals diskutiert worden, jedoch laut Suche noch nicht im Zusammenhang mit DOA. Ich entschuldige mich schonmal im Voraus, sollte es doch schon für den Fall eine Lösung geben.
Ich greife mit der DOA-Komponente auf eine Oracle 9i DB zu und habe das ganze an ein DBGrid geknüpft. Die Session funktioniert einwandfrei und Datensätze werden alle angezeigt. Read-Only habe ich auch auf false gesetzt sowe dgEditing beim DBGrid auf True.
Hier finde ich keine weiteren Konfigurationsmöglichkeiten mehr, wie ich dem DBGrid sagen kann, die mich Datensätze ändern/entfernen/anfügen lassen im Form. Selbiges Problem habe ich auch beim DBCtrlGrid feststellen müssen. Der DBNavigator deaktiviert auch alle Editier-Funktionen. -.- Woran könnte das liegen??
Danke schonmal für euere Hilfe.
Bye
M4X1
_________________ Es gibt Tage, an denen verliert man, und es gibt Tage, an denen gewinnen die anderen.
|
|
hazard999
      
Beiträge: 162
Win XP SP2
VS 2010 Ultimate, CC.Net, Unity, Pex, Moles, DevExpress eXpress App
|
Verfasst: Do 10.01.08 16:05
Hallo,
ReadOnly-Forward-Cursor?
r u
René
_________________ MOV EAX, Result;MOV BYTE PTR [EAX], $B9;MOV ECX, M.Data;MOV DWORD PTR [EAX+$1], ECX;MOV BYTE PTR [EAX+$5], $5A;MOV BYTE PTR [EAX+$6], $51;MOV BYTE PTR [EAX+$7], $52;MOV BYTE PTR [EAX+$8], $B9;MOV ECX, M.Code;MOV DWORD PTR [EAX+$9], ECX
|
|
M4X1 
      
Beiträge: 22
Win 2000, XP
Turbo Delphi 2006 Prof, Delphi 2007 Ent, Prof
|
Verfasst: Do 10.01.08 16:27
Danke für den Tipp.
Wie es scheint, unterstützen die DOA-Kompos diese Art des Cursors nicht. Zumindest gibt mir die Hilfe nicht viel her.
Das habe ich zu Cursor unter DOA gefunden:
| Zitat: |
Declaration
property Cursor: TCursor;
Description
Determines the shape of the mouse cursor while executing SQL statements. Only crDefault, crHourGlass and crSQLWait are useful here.
|
Wie es scheint muss es da einen anderen weg geben oder gehe ich das mit dem ReadOnly-Forward-Cursor falsch an? 
_________________ Es gibt Tage, an denen verliert man, und es gibt Tage, an denen gewinnen die anderen.
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 10.01.08 16:44
Wie sieht denn dein SQL-Statement aus?
Wenn du dort ein View aufrufst oder joins verwendest, kannst du einstellen was du willst, es bleibt R/O.
|
|
M4X1 
      
Beiträge: 22
Win 2000, XP
Turbo Delphi 2006 Prof, Delphi 2007 Ent, Prof
|
Verfasst: Do 10.01.08 16:51
Hatte ich auch schonmal im Auge. Selbst mit einem einfachen:
Quelltext
Views verwende ich nicht. Dafür habe ich noch keine Verwendung gefunden.
Danke trotzdem.
_________________ Es gibt Tage, an denen verliert man, und es gibt Tage, an denen gewinnen die anderen.
|
|
Agawain
      
Beiträge: 460
win xp
D5, MySQL, devxpress
|
Verfasst: Do 10.01.08 17:43
M4X1 hat folgendes geschrieben: | Danke für den Tipp.
Wie es scheint, unterstützen die DOA-Kompos diese Art des Cursors nicht. Zumindest gibt mir die Hilfe nicht viel her.
Das habe ich zu Cursor unter DOA gefunden:
| Zitat: |
Declaration
property Cursor: TCursor;
Description
Determines the shape of the mouse cursor while executing SQL statements. Only crDefault, crHourGlass and crSQLWait are useful here.
|
Wie es scheint muss es da einen anderen weg geben oder gehe ich das mit dem ReadOnly-Forward-Cursor falsch an?  |
Mit Cursor ist hier nicht der Mauszeiger gemeint, sondern der Datensatzzeiger.
Der Hilfetext, den Du hier zitierst, bezieht sich auf den Mauszeiger.
Kenn mich mit DOA nicht aus, aber vielleicht hielft Dir die hier zu findende Info weiter.
www.protech-ndh.de/P...twickler/1/index.htm
insbesondere das hier:
�Oracle-Speziell� ist auch die Implementierung von �toten� oder �lebenden� Ergebnismengen. Lebende Ergebnismengen werden durch die Angabe der ROWID im SQL �Statement erzeugt.
SELECT A.ROWID,A.* FROM ADRESSE A
Wird die RowID nicht angegeben, kann die Ergebnismenge nicht bearbeitet werden. Die Ausführung eines in einem OracleDataSet definierten SQL-Statements erfolgt in der Regel über die bekannte Methode Open.
_________________ Gruß Aga
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 10.01.08 17:59
Normalerweise reicht es, dass die Tabelle einen Primary-Key hat.
Alternativ kann man natürlich auch die Rowid ins Select mit einbauen.
|
|
M4X1 
      
Beiträge: 22
Win 2000, XP
Turbo Delphi 2006 Prof, Delphi 2007 Ent, Prof
|
Verfasst: Fr 11.01.08 08:44
Guten Morgen und Vielen Dank für die Hilfe,
Agawain hat folgendes geschrieben: |
Mit Cursor ist hier nicht der Mauszeiger gemeint, sondern der Datensatzzeiger.
Der Hilfetext, den Du hier zitierst, bezieht sich auf den Mauszeiger.
|
Das habe ich schon verstanden, nur waren die "Maus"-Cursor die einzigen, die ich finden konnte unter DOA. ^^ Und von Datensatzzeigern war keiner auffindbar. Zumindest keiner, den ich für das DBGrid setzen könnte, damit ich darin Daten ändern kann.
Agawain hat folgendes geschrieben: |
insbesondere das hier:
�Oracle-Speziell� ist auch die Implementierung von �toten� oder �lebenden� Ergebnismengen. Lebende Ergebnismengen werden durch die Angabe der ROWID im SQL �Statement erzeugt.
SELECT A.ROWID,A.* FROM ADRESSE A
Wird die RowID nicht angegeben, kann die Ergebnismenge nicht bearbeitet werden. Die Ausführung eines in einem OracleDataSet definierten SQL-Statements erfolgt in der Regel über die bekannte Methode Open. |
Hmm... Werde ich gleich mal versuchen.
Agawain hat folgendes geschrieben: | Normalerweise reicht es, dass die Tabelle einen Primary-Key hat.
Alternativ kann man natürlich auch die Rowid ins Select mit einbauen. |
Ich nutze in jeder Tabelle entweder Primary oder Foreign Keys. Hier stellt sich die Frage, ob ich bei den Tabellen, bei denen ich nur Foreign Keys drin habe, auch noch einen Extra PK brauche. Wobei ich hier dann einfach die RowID nehmen kann. Werd ich gleichmal testen.
_________________ Es gibt Tage, an denen verliert man, und es gibt Tage, an denen gewinnen die anderen.
|
|
M4X1 
      
Beiträge: 22
Win 2000, XP
Turbo Delphi 2006 Prof, Delphi 2007 Ent, Prof
|
Verfasst: Fr 11.01.08 09:48
Also der Tipp mit der ROWID war bahnbrechend. Primery Keys oder Foreign Keys haben keine Wirkung aufs Grid, wenn man Daten ändern will. Allein die ROWID muss im Select aufgenommen werden, damits funktioniert.
Und für alle die, die meinen, eine ROWID im Grid würde sich nicht gut machen, kann ich nur sagen, dass die nichtmal angezeigt wird.
Es funktioniert dann auch der Navigator und möglicherweise auch das DBCtrlGrid usw..
Ich hätte nie geglaubt, dass Oracle da in gewisser weise so strickt sein kann, da ja eigentlich PKs vorhanden sind neben der ROWID. Bei den FKs kann ichs ja gerade noch verstehen, da bei 1:n-Beziehungen der Key mehrmals vorkommt und eine Eindeutigkeit verloren geht. Nur in den meisten Tabellen nutze ich zudem auch PKs um weiterzuverknüpfen und dadurch besteht eigentlich wieder eine Eindeutigkeit. Naja, versteh einer Oracle...
Nochmal vielen dank von mir an alle Helfer.
Bye
M4X1
_________________ Es gibt Tage, an denen verliert man, und es gibt Tage, an denen gewinnen die anderen.
|
|
|