Buenas Noches .
Saludos a todos , he colocado este post, porque tengo un pequeño problema , deseo importar unas funciones de C++ que he creado en mi archivo pytiodvc.cpp, el cual utiliza como header tiniodbc.hpp, e utilizado el swig y bueno nada, y despues me dirigí al Boost y bueno no entendí nada, he intendo halar la función desde un archivo python utilizando el siguiente código:
el archivo pytiodbc.cpp que importo es uno realizado por mi para probar si podía llamar la funcion desde el C++, anexo el código.
lo que deseo es poder llamar esa función desde Python , por ejemplo con un código así:
Quisiera saber si esta manera es correcta ó por obligatoriedad tendría que útilizar el Swig ó Boost , espero su respuesta, y de antemano muchas gracias por la ayuda.
Saludos a todos , he colocado este post, porque tengo un pequeño problema , deseo importar unas funciones de C++ que he creado en mi archivo pytiodvc.cpp, el cual utiliza como header tiniodbc.hpp, e utilizado el swig y bueno nada, y despues me dirigí al Boost y bueno no entendí nada, he intendo halar la función desde un archivo python utilizando el siguiente código:
Código (python) [Seleccionar]
cdef extern from "pytiodbc.cpp":
openconn(char *dsn, char *user, char *pwd)
def connect(dsn,user,pwd)
python son de tipo str
if not isinstance(dsn,unicode):
if not isinstance(dsn,str):
raise ValueError("'dsn' requires text input, got %s" % type(text))
udsn=dsn.encode('UTF-8')
if not isinstance(user,unicode):
if not isinstance(user,str):
raise ValueError("'user' requires text input, got %s" % type(text))
uuser=user.encode('UTF-8')
if not isinstance(pwd,unicode):
if not isinstance(pwd,str):
raise ValueError("'user' requires text input, got %s" % type(text))
upwd=pwd.encode('UTF-8')
#Llamamos a la función definida en pytiodbc.cpp
ret=openconn(udsn,uuser,upwd)
el archivo pytiodbc.cpp que importo es uno realizado por mi para probar si podía llamar la funcion desde el C++, anexo el código.
Código (cpp) [Seleccionar]
#include "tiodbc.hpp"
#include <iostream>
using namespace std;
bool openconn(char *dsn, char *user, char *pwd);
bool openconn(char *dsn, char *user, char *pwd){
// Crea la conexión al ODBC
tiodbc::connection my_connection(dsn, user, pwd);
// Verifica que la conexión sea éxitosa
if (my_connection.connected())
return true;
else
return false;
// Se Desconecta
my_connection.disconnect();
}
lo que deseo es poder llamar esa función desde Python , por ejemplo con un código así:
Código (python) [Seleccionar]
import sys
import os
import pytiodbc
print "Ejemplo conectar a Base de datos"
resp = pytiodbc.connect ("DSN=Test","Test","Test")
print resp
os.system("pause")
Quisiera saber si esta manera es correcta ó por obligatoriedad tendría que útilizar el Swig ó Boost , espero su respuesta, y de antemano muchas gracias por la ayuda.