C/Visual C - Stored Procedure

 
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Ejecutar un stored procedure en Oracle desde Visual C++ utilizando ODBC

Publicado por Alejandro (913 intervenciones) el 28/08/2024 00:20:48
Para ejecutar un stored procedure almacenado en una base de datos Oracle desde Visual C++ utilizando una conexión ODBC, puedes seguir los siguientes pasos:

1. Establece una conexión a la base de datos Oracle utilizando la API ODBC. Puedes utilizar la función `SQLConnect` para establecer la conexión proporcionando los detalles de conexión, como el nombre de la fuente de datos, el nombre de usuario y la contraseña.

2. Prepara la sentencia SQL que ejecutará el stored procedure. Puedes utilizar la función `SQLPrepare` para preparar la sentencia SQL y luego utilizar la función `SQLBindParameter` para vincular los parámetros necesarios al stored procedure.

3. Ejecuta la sentencia SQL utilizando la función `SQLExecute`. Esto enviará la solicitud al servidor Oracle y ejecutará el stored procedure.

4. Recupera los resultados, si los hay, utilizando la función `SQLFetch` o `SQLGetData`. Esto te permitirá obtener cualquier resultado devuelto por el stored procedure.

5. Cierra la conexión a la base de datos utilizando la función `SQLDisconnect`.

Aquí tienes un ejemplo básico de cómo podrías ejecutar un stored procedure en Oracle desde Visual C++ utilizando una conexión ODBC:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
 
int main() {
   // Establecer la conexión ODBC a la base de datos Oracle
   SQLHENV 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 procedure
   SQLHSTMT 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, &parametro1, 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 SQL
   SQLExecute(stmt);
 
   // Recuperar los resultados, si los hay
   // ...
 
   // Cerrar la conexión a la base de datos
   SQLDisconnect(dbc);
   SQLFreeHandle(SQL_HANDLE_DBC, dbc);
   SQLFreeHandle(SQL_HANDLE_ENV, env);
 
   return 0;
}

Recuerda que este es solo un ejemplo básico y que puedes personalizarlo según tus necesidades. Asegúrate de tener los controladores ODBC adecuados instalados y configurados para la conexión a la base de datos Oracle.

Espero que esta información te sea útil para ejecutar un stored procedure en Oracle desde Visual C++ utilizando una conexión ODBC. ¡Buena suerte, Patricia!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar