Cześć, en el siguiente manual intentaremos conectarnos desde C++ a una base de datos Oracle:
Descargamos los paquetes de la página de Oracle
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
Instalamos:
# rpm -ivh oracle-instantclient12.2*
El siguiente codigo se conecta a el server 192.168.0.10 y selecciona un registro donde el campo ldnum es igual a 1529. para liego desplegarlo en un print sencillo. Solo imprime 1 registro pero podría desplegar muchos resultados por el while.
Por ultimo lo compilamos g++
#g++ -I/usr/include/oracle/12.2/client64 odbcc++1.cpp -L/usr/lib/oracle/12.2/client64/lib/ -locci -lclntsh -o odbc1
Descargamos los paquetes de la página de Oracle
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
Instalamos:
# rpm -ivh oracle-instantclient12.2*
El siguiente codigo se conecta a el server 192.168.0.10 y selecciona un registro donde el campo ldnum es igual a 1529. para liego desplegarlo en un print sencillo. Solo imprime 1 registro pero podría desplegar muchos resultados por el while.
#include <iostream>
#include <occi.h>
using namespace oracle::occi;
using namespace std;
int main(){
string user ="usuario1";
string pass ="clave_segura";
string SID ="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=192.168.0.10)(Port=1521))(CONNECT_DATA=(SID=xe)))";
Environment *env = Environment::createEnvironment(Environment::DEFAULT);
Connection *conn = env->createConnection(user,pass,SID);
Statement *stmt = conn->createStatement(" select id,nombre,mail,dir from tabla1 where lnum = '1529' ");
ResultSet *rs = stmt->executeQuery();
while(rs->next()){
string id = rs->getString(1);
string nombre = rs->getString(2);
string mail = rs->getString(3);
string dir = rs->getString(4);
cout <<"-->"<<id<<","<<nombre<<","<<mail<<","<<dir<< "\n";
}
stmt->closeResultSet(rs);
conn->terminateStatement(stmt);
env->terminateConnection(conn);
Environment::terminateEnvironment(env);
return 0;
}
Por ultimo lo compilamos g++
#g++ -I/usr/include/oracle/12.2/client64 odbcc++1.cpp -L/usr/lib/oracle/12.2/client64/lib/ -locci -lclntsh -o odbc1
y ejecutamos:
#./odbc1
Espero lo disfruten.
Comentarios
Publicar un comentario