这里所说的CLI不是Command Line Interface 也不是 Common Language Infrastructure, 而是DB2 Call Level Interface 为什么总是在写这些代码呢 #include <sqlcli1.h> #include <sqlenv.h> int connectDB() { SQLHANDLE hdlEnv; // 环境句柄 SQLHANDLE hdlDB; // DB句柄 SQLRETURN cliRC; // CLI return code // 取得环境句柄 cliRC = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hdlEnv); // 设置环境属性 cliRC = SQLSetEnvAttr(hdlEnv, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0); // 取得DB句柄 cliRC = SQLAllocHandle(SQL_HANDLE_DBC, hdlEnv, &hdlDB); // 设置为auto commit cliRC = SQLSetConnectAttr(hdlDB, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_ON, SQL_NTS); // 连接到数据库 cliRC = SQLConnect(hdlDB, (SQLCHAR *)"DB name", SQL_NTS, (SQLCHAR *)"User name", SQL_NTS, (SQLCHAR *)"Password", SQL_NTS); if (cliRC != SQL_SUCCESS){ return(STS_DB_ERR); } return(STS_OK); }