Autor Beitrag
Smartyx
Hält's aus hier
Beiträge: 3


Delphi 7
BeitragVerfasst: Do 20.01.05 15:17 
Hallo Leute,

sitz grad an ner Datenbankanwendung (Oracle).
Die Verbindung steht mit Hilfe von TTable und TDataSource, durch die Datensätze bewege ich mich mit dem TDBNavigator.

Wenn ich einen Datensatz mit "+" einfüge und in die entsprechenden TDBEdit- oder TDBMemo-Felder etwas eintrage und das abspeichere, kann ich zwar wie gewohnt alle bereits eingefügten Datensätze sehen, aber den neuen/die neuen (je nachdem wieviele ich einfüge) nicht.

Wenn ich die Anwendung schließe und neu starte, dann sind die neuen Datensätze auch sichtbar.

Ein weiteres Problem besteht darin, dass wenn ich den Refresh-Button vom TDBNavigator betätige, eine Fehlermeldung erscheint:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Anwendung.exe ist eine Exception der Klasse EDBEngineError aufgetreten. Meldung: 'Operation wird nicht unterstützt - Tabelle ist nicht eindeutig indiziert.'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

Kann man dieses Refresh des TDBNavigators auch manuell hervorrufen?
Dass "TDBEdit1.Refresh;" zwar syntaktisch funktioniert weiß ich, dadurch werden die neuen Datensätze aber auch nicht angezeigt!!!

Oder: Wie kann ich die Ursach zu der oben ganannten Fehlermeldung beseitigen

Schon mal vielen Dank im Voraus für die Hinweise/Vorschläge/Kritiken....
___________________________________________
Greez & Thnx, Smartyx
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 20.01.05 15:32 
Herzlich willkommen :welcome:

Wenn ich das richtig sehe, greifst du über die BDE auf die Oracle zu. Da habe ich mich ganz schnell von gelöst. Es gibt einfach zu viele Dinge, die die BDE da nicht hinbekommt. (Wie du gemerkt hast)

Das Refresh funktioniert selbst bei anderen Native-Komponenten nicht in jedem Fall. Als Workaround kannst du die Table schließen und wieder öffnen.

Folgende Empfehlung:
Besorge dir Native-Komponenten für den Zugriff auf Oracle.
Falls die Fehlermeldung beim Refresh stimmt, überdenke dein Datenbank-Design.
Benutze für Oracle möglichst Query-Komponenten. So schwierig ist SQL auch nicht.
Smartyx Threadstarter
Hält's aus hier
Beiträge: 3


Delphi 7
BeitragVerfasst: Do 20.01.05 16:20 
Hallo,

erst mal vielen Dank für deine freundliche Begrüßung und die schnelle Antwort.

Dass ich einiges mit TQuery realisieren muss, ist mir klar (Sortieren, suchen usw.).
Aber ich wollte nicht allzuviel damit machen. Doch du hast recht, so schwer ist SQL auch nicht :wink:

Aber eine Frage hätte ich noch. Was meinst du mit den Native-Komponenten? Was ist das? Wie komme ich da ran?

_____________________________
Greez & Thnx, Smartyx
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 20.01.05 16:28 
Mit nativen Komponenten umgehst du die BDE, da diese den direkten Zugriff auf die Datenbank kennen.
Ich nutze die DOA-Komponenten ([url]www.allroundautomati....com/doa.html[/url]). Kosten allerdings was.
Falls du Oracle 8 benutzt, kannst du die NCOCI nehmen. Kannst du bei [url=www.torry.net]Torry[/url] runterladen. Die kosten zwar nix, werden aber auch nicht weiterentwickelt. Für Oracle 9 funktionieren die schon nicht mehr.
Es gibt noch andere Anbieter, aber kostenlose kenne ich keine weiteren.
Smartyx Threadstarter
Hält's aus hier
Beiträge: 3


Delphi 7
BeitragVerfasst: Mo 24.01.05 10:41 
Titel: Ergänzung in eigener Sache...
Hallo,

für alle die es interessiert:

Das Anzeigen der gerade getätigten Änderungen in der Datenbank können durch die Eigenschaft "CachedUpdates" von TTAble angezeigt werden (auf "True" setzen).

_________________
Greez & Thnx, Smartyx