Sign in Join
Wiki copytemporary

Oracle/fr

English · Español · Français · 日本語

Interface de bas niveau du serveur Oracle

L'interface de bas niveau du serveur Oracle existe d'une unité, oraoci, qui est une traduction directe des fichiers d'en-tête de l'interface d'Oracle.

Il y a deux programmes exemples :

Accès direct à Oracle

Vous pouvez connecter directement Lazarus et Oracle en utilisant Oracle Data Access Components (ODAC). C'est une bibliothèque de composants qui fournissent une connectivité native à Oracle depuis Lazarus (et Free Pascal) sur Windows, Mac OS X, iOS, Android, Linux, et FreeBSD pour les plates-formes 32-bit et 64-bit. La bibliothèque ODAC est conçue pour aider les programmeurs à développer plus facilement et de façon native des applications natives Oracle.

Ce composant Lazarus est libre en téléchargement.

Accès POO à Oracle

Construit par dessus l'interface de bas-niveau, le framework SQLdb fourni avec FPC prend en charge l'accès à Oracle (en utilisant TOracleConnection qui fonctionne aussi pour Lazarus), voir aussi Lazarus et Oracle.

Note: Les versions FPC/Lazarus x64 sur Windows n'incluent pas de connecteur Oracle. Si vous l'activez et le testez avec succès, SVP veuillez soumettre un correctif avec le changement, il pourra être ainsi inclus.

Résolution de problèmes

Jeu de caractères Client et serveur

Pour obtenir de l'info quel jeu de caractères/réglages NLS est actif, vous pouvez exécuter le programme suivant : SVP, n'oubliez pas de remplir de manière correcte le nom de serveur, le nom d'utilisateur, le mot de passe et le nom de base de données avant de compiler.

pascal
program oracharset;

{ Shows client and server character set/NLS info}
{ PLEASE EDIT PASSWORDS ETC BELOW. }

{$mode objfpc}{$H+}

uses {$IFDEF UNIX} {$IFDEF UseCThreads}
  cthreads, {$ENDIF} {$ENDIF}
  Classes,
  SysUtils,
  sqldb,
  oracleconnection;

var
  Col: integer;
  Conn: TOracleConnection;
  Tran: TSQLTransaction;
  Q: TSQLQuery;
begin
  Conn := TOracleConnection.Create(nil);
  Tran := TSQLTransaction.Create(nil);
  Q := TSQLQuery.Create(nil);
  try
    // * EDIT IDENTIFYING INFO AS NEEDED*
    Conn.HostName := '';
    Conn.UserName := 'system';
    Conn.Password := '';
    Conn.DatabaseName := 'XE';
    // *END IDENTIFIYING INFO*
    Conn.Transaction := Tran;
    Q.DataBase := Conn;
    Conn.Open;
    Tran.Active := true;

    writeln('Server character set info:');
    Q.SQL.Text := 'SELECT value$ FROM sys.props$ WHERE name like ''NLS_%'' ';
    Q.Open;
    Q.First;
    while not (Q.EOF) do
    begin
      writeln('*****************');
      for Col := 0 to Q.Fields.Count - 1 do
      begin
        try
          writeln(Q.Fields[Col].DisplayLabel + ':');
          writeln(Q.Fields[Col].AsString);
        except
          writeln('Error retrieving field ', Col);
        end;
      end;
      Q.Next;
    end;
    Q.Close;

    writeln('');
    writeln('Client character set info:');
    Q.SQL.Text := 'SELECT * FROM NLS_SESSION_PARAMETERS ';
    Q.Open;
    Q.First;
    while not (Q.EOF) do
    begin
      writeln('*****************');
      for Col := 0 to Q.Fields.Count - 1 do
      begin
        try
          writeln(Q.Fields[Col].DisplayLabel + ':');
          writeln(Q.Fields[Col].AsString);
        except
          writeln('Error retrieving field ', Col);
        end;
      end;
      Q.Next;
    end;
    Q.Close;
    // *END EXAMPLE BUG TESTING CODE*
    Conn.Close;
  finally
    Q.Free;
    Tran.Free;
    Conn.Free;
  end;
  writeln('Program complete. Press a key to continue.');
  readln;
end.

ORA-00911 : invalid character

Si vous voyez ce message d'erreur, vous pourriez essayer :

Voir ce fil de discussion qui s'applique à .Net mais qui pourrait s'appliquer aussi bien à SQLdb : 1

Revenir vers Liste des paquets.


From the Free Pascal wiki, page "Oracle/fr", as it stood on 2020-02-23 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.