Red de conocimiento informático - Problemas con los teléfonos móviles - VC debe proporcionar código para conectarse a la base de datos SQL SERVER

VC debe proporcionar código para conectarse a la base de datos SQL SERVER

No sé cuál es su experiencia para esta pregunta. En términos generales, primero compila un archivo llamado ODBCTest.c

Crea un nuevo proyecto de aplicación de consola Win32 en VC 6.0 y nombra el proyecto ODBCTest

Luego, agregue el archivo ODBCTest.c ya escrito a los archivos fuente del proyecto, compílelo y ejecútelo. Una vez completada la ejecución, los datos de la tabla Student en SQL Server son la copia de seguridad de la tabla Student en Kingbase.

Código fuente experimental. A continuación se muestra el código fuente con algunos comentarios como referencia.

#include

#include

#include

#include

#include

#include

#include

#include

#include

#definir SNO_LEN 30

# definir NAME_LEN 50

#define DEPART_LEN 100

#define SSEX_LEN 5

intmain()

{

/* Paso 1: Definir identificadores y variables

// Las variables que comienzan con king representan conexiones a variables KINGBASEES

// Las variables que comienzan con server son variables de conexión de SQLSERVER

SQLHENV kinghenv, serverhenv;

SQLHDBC kinghdbc, serverhdbc; // Identificador de conexión

SQLHSTDBC kinghdbc, serverhdbc;

SQLHSTDBC kinghdbc, serverhdbc;

SQLHDBC kinghdbc, serverhdbc;

Sno[SNO_LEN];

SQLINTEGER sAge

SQLINTEGER cbAge = 0, cbSno = SQL_NTS, cbSex = SQL_NTS, cbName = SQL_NTS, cbDepart = SQL_NTS;

/* Paso 2 Inicialice el entorno*/

ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, amp; kinghenv);

ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE y kinghenv);

ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE y serverhenv);

ret = SQLSetEnvAttr(kinghenv, SQL_ATTR_ODBC_VERSION , (void*)SQL_OV_ODBC3, 0);

ret = SQLSetEnvAttr(serverhenv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);

/* No. Paso 3: Establecer un conexión*/

ret = SQLAllocHandle(SQL_HANDLE_ DBC, kinghenv, amp; kinghdbc);

ret = SQLAllocHandle(SQL_HANDLE_DBC, serverhenv, amp; serverhdbc);

p>

ret = SQLConnect(kinghdbc,

"KINGBASEES ODBC",SQL_NTS,

"SYSTEM",SQL_NTS,

p>

"MANAGER", SQL_NTS);

If (!SQL_SUCCEEDED(ret))//devuelve un valor de error si la conexión falló

devuelve -1; p>

ret = SQLConnect(serverhdbc,

"SQLServer",SQL_NTS,

"sa",SQL_NTS,

"sa", SQL_NTS) ;

if (!SQL_ SUCCEEDED(ret))//Si la conexión falla, devuelve un valor de error

return-1;

/* Paso 4: Mango de declaración de inicialización*/

ret = SQLAllocHandle(SQL_HANDLE_STMT, kinghdbc, amp.kinghstmt);

ret = SQLSetStmtAttr(kinghstmt, SQL_ATTR_ROW_BIND_TYPE, (SQLPOINTER)SQL_BIND_BY_COLUMN, SQL_IS_INTEGER) ;

p>

ret = SQLAllocHandle(SQL_HANDLE_STMT, serverhdbc, amp; serverhstmt);

/* Paso 5: Ejecute la declaración de dos maneras */

/* Usando parámetros Declaración preparada */

ret = SQLPrepare(serverhstmt, "INSERT INTO STUDENT (SNO, SNAME, SSEX, SAGE, SDEPT) VALUES (, , , ,)", SQL_NTS);

if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_ INFO)

{

ret = SQLBindParameter(serverhstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, SNO_LEN, 0, sSno , 0, &cbSno);cbSex);

ret = SQLBindParameter(serverhstmt, 4, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &sAge, 0, &cbAge);

ret = SQLBindParameter(serverhstmt, 5, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR.DEPART_LEN, 0, & sAge, 0, & cbAge.DEPART_LEN, 0, sDepart, 0, & cbDepart);

}

/* Ejecutar sentencia SQL*/

ret = SQLExecDirect(kinghstmt, "SELECT * FROM STUDENT", SQL_NTS

if (ret == SQL_SUCCESS || ret); == SQL_SUCCESS_WITH_INFO)

{

ret = SQLBi

ndCol(kinghstmt, 1, SQL_C_CHAR, sSno, SNO_LEN, y cbSno);

ret = SQLBindCol(kinghstmt, 2, SQL_C_CHAR, sName, NAME_LEN, y cbName); ret = SQLBindCol(kinghstmt, 3, SQL_C_CHAR, sSex, SSEX_LEN, & cbSex);

ret = SQLBindCol(kinghstmt, 4, SQL_C_LONG, &sAge, 0, &cbAge);

ret = SQLBindCol(kinghstmt, 4, SQL_C_LONG, &sAge, 0, &cbAge);

p>

ret = SQLBindCol(kinghstmt, 5, SQL_C_CHAR sDepart, DEPART_LEN, amp; cbDepart);

}