用VC++6.0的嵌入式SQL Server写一段简单的代码
时间: 2024-05-10 19:16:28 浏览: 74
以下是一个简单的示例代码,通过 VC++6.0 嵌入式 SQL Server 连接到本地数据库,并执行一些简单的查询操作:
```cpp
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
int main()
{
// Initialize environment handle
SQLHENV henv;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
// Initialize connection handle
SQLHDBC hdbc;
SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
SQLDriverConnect(hdbc, NULL, (SQLCHAR*)"DRIVER={SQL Server};SERVER=(local);DATABASE=DatabaseName;UID=UserName;PWD=Password;", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);
// Execute query and retrieve results
SQLHSTMT hstmt;
SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
SQLExecDirect(hstmt, (SQLCHAR*)"SELECT * FROM TableName", SQL_NTS);
// Process query results
SQLLEN nRowCount = 0;
SQLLEN nColCount = 0;
SQLNumResultCols(hstmt, &nColCount);
while (SQLFetch(hstmt) == SQL_SUCCESS)
{
for (int i = 1; i <= nColCount; i++)
{
SQLCHAR szValue[256] = { 0 };
SQLLEN nValueLen = SQL_NTS;
SQLGetData(hstmt, i, SQL_C_CHAR, szValue, sizeof(szValue), &nValueLen);
printf("%s\t", szValue);
}
printf("\n");
nRowCount++;
}
// Free resources
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
return 0;
}
```
注意,上述代码需要根据实际情况修改数据库连接字符串、查询语句、表名、列数、列类型等参数。同时,需要引入 `sql.h` 和 `sqlext.h` 头文件,并连接 `odbc32.lib` 库。
阅读全文