Stored Procedure
Publicado por Patricia (2 intervenciones) el 26/08/2000 00:00:00
Alguien sabe como ejecutar un stored procedure almacenado en la base de datos Oracle desde visual C. La conedxión que utilizo es odbc.
Valora esta pregunta


0



#include <windows.h>
#include <sql.h>
#include <sqlext.h>
int main() {
// Establecer la conexión ODBC a la base de datos OracleSQLHENV env;
SQLHDBC dbc;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
SQLDriverConnect(dbc, NULL, (SQLCHAR*)"DSN=nombre_fuente_datos;UID=usuario;PWD=contraseña", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);
// Preparar la sentencia SQL para ejecutar el stored procedureSQLHSTMT stmt;
SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt);
SQLPrepare(stmt, (SQLCHAR*)"EXECUTE nombre_stored_procedure(?, ?)", SQL_NTS);
// Vincular los parámetros necesarios al stored procedure int parametro1 = 123;SQLBindParameter(stmt, 1, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, ¶metro1, 0, NULL);
char parametro2[50] = "ejemplo";
SQLBindParameter(stmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, sizeof(parametro2), 0, parametro2, sizeof(parametro2), NULL);
// Ejecutar la sentencia SQLSQLExecute(stmt);
// Recuperar los resultados, si los hay // ... // Cerrar la conexión a la base de datosSQLDisconnect(dbc);
SQLFreeHandle(SQL_HANDLE_DBC, dbc);
SQLFreeHandle(SQL_HANDLE_ENV, env);
return 0;
}
