文档库 最新最全的文档下载
当前位置:文档库 › ODBC C语言读写Excel

ODBC C语言读写Excel

ODBC C语言读写Excel
ODBC C语言读写Excel

#include

#include

#include

#include

#include

int main()

{

HANDLE hEnv = SQL_NULL_HANDLE;

HANDLE hDbc = SQL_NULL_HANDLE;

HANDLE hStmt = SQL_NULL_HANDLE;

SQLINTEGER nRe = 0;

SQLCHAR szConnectStr[255] = { "Driver={Microsoft Excel Driver

(*.xls)};dbq=E:\\a.xls;READONLY=FALSE;" };

SQLCHAR szOutStr[255] = { 0 };

SQLSMALLINT nOutLen;

SQLCHAR szSqlStr[255] = { 0 };

nRe = ::SQLAllocHandle(SQL_HANDLE_ENV, NULL, &hEnv);

if (nRe == SQL_SUCCESS)

{

nRe=::SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLINTEGER

*)SQL_OV_ODBC3, SQL_INTEGER);

if (nRe == SQL_SUCCESS)

{

nRe = ::SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);

if (nRe == SQL_SUCCESS)

{

nRe = SQLDriverConnect(hDbc,NULL, szConnectStr, _countof(szConnectStr), szConnectStr, 255, &nOutLen, SQL_DRIVER_NOPROMPT);

//nRe = SQLConnect(hDbc, (SQLCHAR *)"a", 1, NULL, 0, NULL, 0);

if (nRe == SQL_SUCCESS || nRe == SQL_SUCCESS_WITH_INFO)

{

nRe = ::SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt);

if (nRe == SQL_SUCCESS)

{

SQLINTEGER nLen = (SQLINTEGER)sprintf((char *)szSqlStr, "%s", "alter table demo add nickname char(20)");

nRe = ::SQLExecDirect(hStmt, szSqlStr, nLen);

if (nRe == SQL_SUCCESS)

{

/* while (::SQLFetch(hStmt) != SQL_NO_DATA)

{

SQLCHAR szTmpStr[255] = { 0 };

SQLINTEGER nTmpLen;

::SQLGetData(hStmt, 1, SQL_C_CHAR, szTmpStr, 255, &nTmpLen);

printf("%s\n", szTmpStr);

}

*/

}

else

{

printf("EcecDirect false!\n");

}

}

else

{

printf("hstmt false!\n");

}

::SQLDisconnect(hDbc);

}

else

{

printf("connect false!\n");

}

::SQLFreeHandle(SQL_HANDLE_DBC, hDbc);

}

else

{

printf("hDbc false!\n");

}

}

else

{

printf("hEnvAttr false!\n");

}

SQLFreeHandle(SQL_HANDLE_ENV,hEnv);

}

else

{

printf("hEnv false!\n");

}

getchar();

return 0;

}

相关文档