WEB开发网
开发学院软件开发VC 通过ODBC API实现对数据库的访问 阅读

通过ODBC API实现对数据库的访问

 2008-08-09 19:26:16 来源:WEB开发网   
核心提示: BOOL CDbOperator::GetUserIdFromObj_User(int arrUserId[], int& nUserCount){int nUserId = 0;nUserCount = 0;CString strSQL;SQLHSTMT hstmt ;SQLRETURN

BOOL CDbOperator::GetUserIdFromObj_User(int arrUserId[], int& nUserCount)
      
{
      
int nUserId = 0;
      
nUserCount = 0;
      
CString strSQL;
  
SQLHSTMT hstmt ;
      
SQLRETURN retcode; 
      
SQLINTEGER cbLenth = 0 ;
      
strSQL = "SELECT User_Iden FROM Obj_User";
      
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
      
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) 
      
  {
      
  SQLBindCol(hstmt, 1, SQL_C_ULONG, (SQLPOINTER)&nUserId, sizeof(nUserId), &cbLenth);
      
  if (SQLExecDirect(hstmt, (SQLCHAR*)(LPCTSTR)strSQL, SQL_NTS) == SQL_ERROR)
      
   {
      
   AfxMessageBox("数据操作失败!") ;
      
   SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
      
   return FALSE;
      
   }
      
   while((SQLFetch(hstmt) == SQL_SUCCESS) || (SQLFetch(hstmt) == SQL_SUCCESS_WITH_INFO))
      
   {
      
    arrUserId[nUserCount] = nUserId;
      
    nUserCount++; 
      
   }
      
   SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
      
   returnTRUE;
      
  }
      
else
      
 {
      
  AfxMessageBox("数据操作失败!") ;
      
  SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
      
  return FALSE;
      
  }
      
  return TRUE;
      
}

注意:在SQL SERVER数据库中,master数据库是占有统治地位的,它纪录了所有数据库的创建信息。故在创建一个新的数据库之前可以通过连接matser数据库,并在master数据库中执行创建数据库的SQL语句来创建一个新的数据库。为了防止数据库的重复创建,必须在创建之前判断你所创建的数据库是否已经存在。如果存在的话,则退出;否则创建新的数据库。Matster数据库中其中有张表sysdatabases纪录了所有已经创建的数据库名。如果能够在该表中查询出该名字的数据库,说明数据库已经创建;否则,不创建数据库。同时,Master数据库中有一张表sysobjects纪录了所有数据库的所有表名。所以可以通过查询这个表来判断你所创建的表是否已经存在。掌握了以上几个要素,就可以动态创建数据库。很神奇吧?

若想对ODBC API访问数据进一步了解,大家可以看看我的例子(例子仅仅是个模板,并没有优化代码)。其中,程序执行后,输入用户zhengyu和密码4352729后即可创建完数据库,就这么方便。大家也可以给我发邮件跟我交流。

执行结果如下:

通过ODBC API实现对数据库的访问

QQ:181484408

上一页  1 2 3 

Tags:通过 ODBC API

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接