C/Visual C - URGENTE: Bases de datos e impresión (VC6)

 
Vista:

URGENTE: Bases de datos e impresión (VC6)

Publicado por Mariano Pedraza (2 intervenciones) el 09/11/2000 00:00:00
Quisiera saber si alguien me puede ayudar en alguna (o todas) de las siguientes cosas:
- Manejar código SQL en VC6 para realizar consultas a una base de datos en Access (ODBC), SELECT WHERE
- Imprimir variables (las que se extraen del query de la tabla)
- Imprimir ciertos registros obtenidos en el SELECT WHERE
- Imprimir reportes en VC

Si alguien me pudiera ayudar se lo agradecería muchisimo
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

Consultas SQL en VC6 para base de datos Access (ODBC) con SELECT WHERE

Publicado por Alejandro (913 intervenciones) el 04/09/2024 00:03:04
¡Claro, Mariano! Estoy aquí para ayudarte con todas tus consultas. Permíteme responder a cada una de tus solicitudes:

1. Manejar código SQL en VC6 para realizar consultas a una base de datos en Access (ODBC), SELECT WHERE:
Sí, es posible utilizar código SQL en VC6 para realizar consultas a una base de datos en Access a través de ODBC. Puedes utilizar la función `SQLExecDirect` para ejecutar consultas SQL en VC6. Aquí tienes un ejemplo de cómo realizar una consulta SELECT con una cláusula WHERE en VC6:

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
38
SQLHENV henv;
SQLHDBC hdbc;
SQLHSTMT hstmt;
SQLRETURN retcode;
 
// Inicializar el entorno
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);
 
// Establecer la conexión a la base de datos
SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
SQLDriverConnect(hdbc, NULL, "DSN=nombre_de_tu_DSN;UID=usuario;PWD=contraseña", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);
 
// Preparar la consulta SQL
SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
SQLPrepare(hstmt, "SELECT columna1, columna2 FROM tabla WHERE columna3 = ?", SQL_NTS);
 
// Asignar valor al parámetro de la consulta
SQLINTEGER valor = 123;
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &valor, 0, NULL);
 
// Ejecutar la consulta
SQLExecute(hstmt);
 
// Recorrer los resultados de la consulta
SQLCHAR columna1[256];
SQLCHAR columna2[256];
while (SQLFetch(hstmt) == SQL_SUCCESS) {
    SQLGetData(hstmt, 1, SQL_C_CHAR, columna1, sizeof(columna1), NULL);
    SQLGetData(hstmt, 2, SQL_C_CHAR, columna2, sizeof(columna2), NULL);
    // Realizar las operaciones necesarias con los datos obtenidos
}
 
// Liberar los recursos
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);

Recuerda reemplazar "nombre_de_tu_DSN", "usuario" y "contraseña" con los valores correspondientes de tu base de datos.

2. Imprimir variables (las que se extraen del query de la tabla):
Para imprimir variables en VC6, puedes utilizar la función `printf` de la biblioteca estándar de C. Por ejemplo:

1
2
int variable = 123;
printf("El valor de la variable es: %d\n", variable);

Esto imprimirá el valor de la variable en la consola de salida.

3. Imprimir ciertos registros obtenidos en el SELECT WHERE:
Una vez que hayas obtenido los registros de la consulta SELECT WHERE, puedes utilizar la función `printf` para imprimir los valores de los campos de cada registro. Por ejemplo:

1
2
3
4
5
while (SQLFetch(hstmt) == SQL_SUCCESS) {
    SQLGetData(hstmt, 1, SQL_C_CHAR, columna1, sizeof(columna1), NULL);
    SQLGetData(hstmt, 2, SQL_C_CHAR, columna2, sizeof(columna2), NULL);
    printf("Registro: columna1=%s, columna2=%s\n", columna1, columna2);
}

Esto imprimirá los valores de los campos "columna1" y "columna2" de cada registro obtenido en la consulta.

4. Imprimir reportes en VC:
Para imprimir reportes en VC6, puedes utilizar la función `printf` para imprimir los datos en el formato deseado. Puedes utilizar caracteres especiales como espacios y líneas nuevas para formatear el reporte. Por ejemplo:

1
2
3
4
5
6
printf("Reporte:\n");
printf("==========\n");
printf("Nombre: %s\n", nombre);
printf("Edad: %d\n", edad);
printf("Dirección: %s\n", direccion);
printf("=====================\n");

Esto imprimirá un reporte con los datos proporcionados en el formato especificado.

Espero que esta información te sea útil y que puedas realizar las tareas que necesitas en VC6.
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