Difference between revisions of "Oracle/fr"
(Created page with "{{Oracle}} {{Infobox databases/fr}} == Interface de bas niveau du serveur Oracle == The low level Oracle server interface exists of one unit, '''oraoci''', which is a strai...") |
|||
Line 4: | Line 4: | ||
== Interface de bas niveau du serveur Oracle == | == 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. | |
− | * '''oraclew''' | + | Il y a deux programmes exemples : |
− | * '''test01''' | + | |
+ | * '''oraclew''' contient quelques routines utilitaire pour l'interface Oracle, pour une gestion plus facile des ensembles résultats. Nécessite l'unité Classes de la FCL. | ||
+ | * '''test01''' un simple programmme de test pour montrer l'interface. | ||
== Accès direct à Oracle == | == Accès direct à Oracle == |
Revision as of 07:24, 24 May 2017
│
English (en) │
español (es) │
français (fr) │
日本語 (ja) │
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 :
- oraclew contient quelques routines utilitaire pour l'interface Oracle, pour une gestion plus facile des ensembles résultats. Nécessite l'unité Classes de la FCL.
- test01 un simple programmme de test pour montrer l'interface.
Accès direct à Oracle
You can directly connect Lazarus and Oracle by using Oracle Data Access Components (ODAC). It is a library of components that provides native connectivity to Oracle from Lazarus (and Free Pascal) on Windows, Mac OS X, iOS, Android, Linux, and FreeBSD for both 32-bit and 64-bit platforms. The ODAC library is designed to help programmers develop faster and more native Oracle database applications.
This Lazarus component is free to download.
Accès POO à Oracle
Built over the low-level interface, the SQLDB framework supplied with FPC supports accessing Oracle (using TOracleConnection); see also Lazarus_Database_Overview#Lazarus_and_Oracle
Lazarus also has a component: TOracleConnection
- Hostname: as with other sqldb connectors, use hostname or IP address. Leave empty if you use a TNSNAMES.ORA net service name in DatabaseName
- Username/password: same as with other sqldb connectors
- DatabaseName:
- instance/SID of the Oracle server you want to connect to or
- net service name in a TNSNAMES.ORA file
Résolution de problèmes
Jeu de caractères Client et serveur
To get info about what character set/NLS settings are active, you can run the following program.
Please don't forget to fill out correct server name, username, password and database name before compiling.
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
If you see this error message, you might want to try
- removing a trailing semicolon - ; - if you have it in a SELECT statement
- adding a trailing semicolon (e.g. in CALL or EXECUTE statements)
See this thread which applies to .Net but may apply to SQLDB as well: [1]
Revenir vers Liste des paquets.