Fragen zu Oracle Server (FireDAC)
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:
- TFDPhysOracleDriverLink.GetOracleHomes – um eine Liste der bekannten Oracle-Homes abzurufen.
- TFDPhysOracleDriverLink.GetTNSServices – um eine Liste der TNS-Aliase aus dem primären Oracle-Home abzurufen.
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.