请问如何用sdk(c)实现数据库的连接
谢谢,请 问题点数:0、回复次数:1Top
1 楼skywater(宁镇子)回复于 2003-09-02 14:03:20 得分 0
你是想用ODBC或者ADO吧,一般情况下好像不叫sdk,而是API。
MSDN上有许多例子,我给你摘了一个,用ODBC连接到SQL Server。
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
#include <odbcss.h>
SQLHENV henv = SQL_NULL_HENV;
SQLHDBC hdbc1 = SQL_NULL_HDBC;
SQLHSTMT hstmt1 = SQL_NULL_HSTMT;
int main() {
RETCODE retcode;
UCHAR szDSN[SQL_MAX_DSN_LENGTH+1] = "MyDSN",
szUID[MAXNAME] = "sa",
szAuthStr[MAXNAME] = "MyPassword";
// Allocate the ODBC Environment and save handle.
retcode = SQLAllocHandle (SQL_HANDLE_ENV, NULL, &henv);
// Notify ODBC that this is an ODBC 3.0 application.
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,
(SQLPOINTER)SQL_OV_ODBC3,
SQL_IS_INTEGER);
// Allocate an ODBC connection handle and connect.
retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc1);
retcode = SQLConnect(hdbc1, szDSN, (SWORD)strlen(szDSN),
szUID, (SWORD)strlen(szUID),
szAuthStr, (SWORD)strlen(szAuthStr));
if ( (retcode != SQL_SUCCESS) &&
(retcode != SQL_SUCCESS_WITH_INFO) ) {
// Connect failed, call SQLGetDiagRec for errors.
}
else {
// Connects to SQL Server always return
// informational messages. These messages can be
// retrieved by calling SQLGetDiagRec.
}
// Allocate statement handles and do ODBC processing.
/* Clean up. */
SQLDisconnect(hdbc1);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
return(0);
}
详细的信息查询MSDN。Top



