Red de conocimientos turísticos - Información de alquiler - Cuando se utiliza ODBC para acceder a Excel en lenguaje C, ¿qué parámetros se necesitan para conectar los caracteres de conexión de la fuente de datos utilizando el método SQLDriverConnect?

Cuando se utiliza ODBC para acceder a Excel en lenguaje C, ¿qué parámetros se necesitan para conectar los caracteres de conexión de la fuente de datos utilizando el método SQLDriverConnect?

"CONDUCTOR MICROSOFT EXCEL (*.XLS)".

Luego, siga los pasos a continuación:

1. Agregue al archivo StdAfx.h:

#include lt; afxdb.hgt

#include lt; odbcinst.hgt;

2. Cree un archivo Excel directamente a través de ODBC e inserte datos en la tabla (nombre de archivo provisional: Demo.xls)

//Crear y escribir en un archivo Excel

void CRWExcel::WriteToExcel()

{

Base de datos CDatabase;

CString sDriver = "CONDUCTOR MICROSOFT EXCEL (*. XLS )"; // Controlador de instalación de Excel

CString sExcelFile = "c:\\demo.xls"; // Archivo de Excel a crear

CString sSql;

TRY

{

// Crea una cadena para el acceso

sSql.Format("DRIVER={s};DSN='' ''; FIRSTROWHASNAMES=1; READONLY=FALSE; CREATE_DB=\"s\"; DBQ=s",

sDriver, sExcelFile, sExcelFile);

// Crear base de datos (ambas tablas de Excel) archivos)

if( base de datos.OpenEx(sSql, CDatabase::noOdbcDialog) )

{

// Crear estructura de tabla (nombre, edad)

sSql = "CREAR TABLA de demostración (Nombre TEXTO, NÚMERO de edad)";

base de datos.ExecuteSQL(sSql);

// Insertar valor<); p> sSql = "INSERTAR EN DEMO (Nombre, Edad) VALORES (''Xu Jingzhou'', 26)"

base de datos.ExecuteSQL(sSql);

sSql = " INSERT INTO demo (Nombre, Edad) VALUES (''Xu Zhihui'', 22)";

base de datos.ExecuteSQL(sSql);

sSql = "INSERT INTO demo (Nombre , Edad) VALUES (''Guo Hui'', 27)";

base de datos.ExecuteSQL(sSql);

}

// Cerrar la base de datos

base de datos.Close();

}

CATCH_ALL(e)

{

TRACE1(" El controlador de Excel no está instalado: s", sDriver);

}

END_CATCH_ALL;

}

> 3. Lea el archivo Excel directamente a través de ODBC (nombre de archivo provisional: Demo.xls)

//Lea el archivo Excel

void CRWExcel::ReadFromExcel()

{

Base de datos CDatabase

CString sSql;

CString sItem1, sItem2

CString sDriver;

CString sDsn;

CString sFile = "Demo.xls"; //El nombre del archivo de Excel a leer

//Recuperar si el controlador de Excel está instalado " Controlador de Microsoft Excel (*.xls)"

sDriver = GetExcelDriver();

if (sDriver.IsEmpty())

{

// Controlador de Excel no encontrado

AfxMessageBox("¡Controlador de Excel no instalado!"

return

}

); // Crea una cadena para el acceso

sDsn.Format("ODBC;DRIVER={s};DSN='''';DBQ=s", sDriver, sFile);

TRY

{

// Abre la base de datos (archivo Excel)

base de datos.Open(NULL, false, false, sDsn);

CRecordset recset(amp; base de datos);

// Establece la declaración de consulta para lectura.

sSql = "SELECT Nombre, Edad "

" FROM demo "

"ORDER BY Name ";

// Ejecutar instrucción de consulta

recset.Open(CRecordset:: forwardOnly, sSql, CRecordset:: readOnly );

// Obtener resultados de la consulta

while (!recset.IsEOF())

{

//Leer Excel interno valor

recset.GetFieldValue("Nombre ", sItem1);

recset.GetFieldValue("Edad", sItem2);

recset.MoveNext();

}

/

/ Cerrar la base de datos

database.Close();

}

CATCH(CDBException, e)

{

// Cuando se produce una excepción durante la operación de la base de datos...

AfxMessageBox("Error de la base de datos: " e-gt; m_strError

}

END_CATCH;

}

4. Obtener la función del controlador de Excel en ODBC

CString CRWExcel::GetExcelDriver()

{

char szBuf[2001];

WORD cbBufMax = 2000;

WORD cbBufOut

char *pszBuf = szBuf

CString sDriver;

// Obtiene el nombre del controlador instalado (la función está en odbcinst.h)

if (!SQLGetInstalledDrivers(szBuf, cbBufMax, amp; cbBufOut ))

return "";

// Recuperar si el controlador instalado tiene Excel...

hacer

{

if (strstr(pszBuf, "Excel") != 0)

{

//¡Encontrado!

sDriver = CString(pszBuf

ruptura

}

pszBuf = strchr(pszBuf, ''\0'')

}<; /p >

while (pszBuf[1] != ''\0'');

return sDriver;

}

Presta atención a agregando archivos de encabezado! También es necesario configurar la fuente de datos. Porque ya sea de acceso u otras bases de datos como SQL, instalan y configuran la fuente de datos para la máquina del servidor durante el proceso de instalación. Si quieres utilizar la función, ¡debes pensarlo un poco!