Ir al contenido principal

Conectar a Oracle desde C++

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.

#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

Entradas populares de este blog

Instalar Queuemetrics desde 0.

Cześć. Queuemetrics a pesar de estar casi personalizada su  instalación a Centos, también puede instalarse en otros sistemas operativos, de hecho en cualquier Linux podría hacerse. A continuación describo los pasos para hacerlo. En este demo se usó Suse. Descargar los siguientes paquetes: - Queuemetrics(obviamente XD)      link http://queuemetrics.loway.it/download.jsp      formato tar.gz - Mysql connector      link https://dev.mysql.com/downloads/connector/j/      formato  "platform independent" tar.gz      debe registrarse previamente. - Tomcat      link http://tomcat.apache.org/      formato tar.gz      en este manual se instaló la version 8.5.37 - JDK      link https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html      formato tar.gz      version linux x64 In...

Vtiger clic-to-call Asterisk

Cześć, Jak Sie Masz ludzie?. He vuelto con un nuevo manual muy sencillo de integración Asterisk con el popular Vtiger a traves de un conector en Java. Dependencias previas, bueno tener Asterisk 11 y Vtiger 7.3 funcionando, si las tienen, sin mas preambulos manos a la obra. Instalar dependencias.  #yum -y install java-11-openjdk-devel Descargar conector #cd /usr/src/ # mkdir VtigerAsteriskConnector_1.4.2 #cd VtigerAsteriskConnector_1.4.2 #wget https://sourceforge.net/projects/salesplatform/files/addons/SPAsteriskConnector-1.4.2.zip/download  -O SPAsteriskConnector-1.4.2.zip # unzip SPAsteriskConnector-1.4.2.zip Editar la configuración del archivo conf/SPVtigerAsteriskConnector.properties los siguientes parametros: AsteriskUsername   = vtigerclient1 AsteriskPassword   = vtiger2020 VtigerSecretKey = vtiger2020* Agregar a manager.conf [vtigerclient1] secret = vtiger2020 deny=0.0.0.0/0.0.0.0 permit=0.0.0.0/0.0.0.0 read = system,call,log,verbo...

Asterisk con WebRTC, TLS, libsrtp

  Cześć !! En esta ocasión vamos a explicar cómo configurar Asterisk para que desde un teléfono web podamos sacar y recibir llamadas. Se usará los siguientes componentes de Asterisk: libsrtp tls Asterisk module http Antes que nada debemos tener un teléfono web(obviamente), en el laboratorio vamos a usar Sipml5 en el siguiente link : https://www.doubango.org/sipml5/call.htm El siguiente paso es instalar libsrtp del enlace: https://github.com/cisco/libsrtp . #git clone https://github.com/cisco/libsrtp.git #cd libsrtp #./configure #make && make install Luego verificamos tener los siguientes módulos activos para compilar en menuconfig de Asterisk: res_crypto res_http_websocket res_srtp Comunmente si res_crypto no está selecionable, le falta la dependencia openssl-devel o su equivalente dependiendo del sistema que tengan. Cuando estemos seguros que están cargados en Asterisk continuamos con la instalación de los certificados locales(Si usa Lets'encrypt omitir la generación de c...