Fragen zu Oracle Server (FireDAC)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu FAQ (FireDAC)

Dieses Thema enthält eine Liste mit Fragen und Antworten zu Oracle Server.

F1: Ich möchte meine Anwendung auf einen PC übernehmen, auf dem bereits ein Oracle-Client ausgeführt wird, deshalb möchte ich keine Registrierungsschlüssel verwenden. Ich möchte einen Pfad und TNS_Admin-Variablen festlegen, die nur für meine Anwendung gelten.

A: Speichern Sie einfach die Datei "tnsnames.ora" in demselben Ordner wie Oracle Instant Client. Sie brauchen nichts anderes tun, wie z. B. TNS_Admin oder TNS_Names anzugeben. Wenn Sie keine TNS-Aliase verwenden müssen, dann speichern Sie eine leere "tnsnames.ora"-Datei.

F2: Ich erhalte den Fehler "Cannot initialize OCI environment" (OCI-Umgebung kann nicht initialisiert werden) in D2009. Was ist falsch?

A: FireDAC kann im Unicode-Modus, der für D2009 erforderlich ist, OCI nicht initialisieren. Wahrscheinlich ist der Grund hierfür eine alte Version des Oracle-Clients. Lösungsvorschlag:

  • Aktualisieren Sie die Oracle-Client-Software mindestens auf die Version 9.0.
  • Oder verwenden Sie ein Nicht-Unicode-Delphi (<= D2007).

F3: Ich muss eine Verbindung mit einem Oracle 8.0.5-Server herstellen. Ist das möglich?

A: Anhand der folgenden Übersicht können Sie die richtigen Oracle-Client- und Delphi-Versionen auswählen:

  • Für FireDAC mit Delphi 2009 oder höher ist mindestens der Oracle 8.1.5-Client erforderlich, weil ab Oracle 8.1.5 der Client korrekt mit Unicode arbeitet.
  • FireDAC mit Delphi 2007 oder früher erfordert mindestens den Oracle 8.0.3-Client.

F4: Wie kann ich mit Oracle eine Tabelle sperren?

A: Das allgemeine Gerüst für diese Aufgabe könnte folgendermaßen aussehen:

 FDConnection1.StartTransaction;
 try
   FDConnection1.ExecSQL('LOCK TABLE ...');
   .........
   FDConnection1.Commit;
 except
   FDConnection1.Rollback;
   raise;
 end;

F5: Wie kann ich eine Liste der Oracle-Dienste, wie FireDAC im Anmeldedialogfeld, abrufen?

A: Verwenden Sie:

F6: Wird die Oracle-Objekterweiterung unterstützt?

A: Nein, gegenwärtig nicht. Eine Möglichkeit zur Umgehung dieses Problems wäre, PL/SQL-Kapselungsprozeduren und Funktionen zu erstellen. Mit dieser Methode können Sie dann mit Oracle Advanced Queuing arbeiten.