• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    VC用Ado接口連接和使用數據庫及注意事項

    來源:懂視網 責編:小采 時間:2020-11-27 22:42:06
    文檔

    VC用Ado接口連接和使用數據庫及注意事項

    VC用Ado接口連接和使用數據庫及注意事項:一、閱讀本文所需注意的其它事項 1、進行方法調用時,所傳遞的參數的類型的轉換(可能存在比本文更簡便的處理方法但我未發現) 2、每個源文件的每行注釋說明了其文件名 3、請關注相關頭文件包含關系 4、請關注文中所有中文注釋 5、更多的內容請參閱 VC
    推薦度:
    導讀VC用Ado接口連接和使用數據庫及注意事項:一、閱讀本文所需注意的其它事項 1、進行方法調用時,所傳遞的參數的類型的轉換(可能存在比本文更簡便的處理方法但我未發現) 2、每個源文件的每行注釋說明了其文件名 3、請關注相關頭文件包含關系 4、請關注文中所有中文注釋 5、更多的內容請參閱 VC

    一、閱讀本文所需注意的其它事項
      1、進行方法調用時,所傳遞的參數的類型的轉換(可能存在比本文更簡便的處理方法但我未發現)
      2、每個源文件的每行注釋說明了其文件名
      3、請關注相關頭文件包含關系
      4、請關注文中所有中文注釋
      5、更多的內容請參閱 "VC安裝目錄\Include\adoint.h"文件,adoint即ActiveX Data Object
      InterFace(菜 鳥請勿驚慌,這僅僅只是個名稱)

    二、下面的源文件與您的數據庫應用程序不直接相關,但其目標代碼(生成的.obj文件)是您必需的,請參考
      file://Ado.cpp文件///////////////////////////////////////////
      #include
      #include
      #include
      該文件使用方法:新建一個空的MFC工程,將此文件添加到該工程中,編譯生成Ado.obj文件,再將此.obj文件添加到您的數據庫應用程序.該源文件在您的數據庫應用程序中是不需要的。

    三、下面是與您的數據庫應用程序源文件相關代碼(非所有代碼)
    代碼如下:


      file://1、ado.h文件////////////////////////////////////////
      #ifndef __ADO__H__LZG
      #define __ADO__H__LZG
      #include
      #include
      #include
      #endif
      file://2、stdafx.h文件////////////////////////////////////////
      #if _MSC_VER > 1000
      #pragma once
      #endif // _MSC_VER > 1000
      #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
      #include // MFC core and standard components
      #include // MFC extensions
      #include // MFC Automation classes
      #include // MFC support for Internet Explorer 4 Common Controls
      #include "ado.h" file://請注意這里
      #ifndef _AFX_NO_AFXCMN_SUPPORT
      #include
      file://3、數據庫應用程序.h文件///////////////////////////////////////////////
      file://以下為用到的若干相關數據庫引用變量(聲明在其頭文件中)
      ADOField* pfd;
      ADOFields* pfds;
      CString m_dbfile;
      ADORecordset* prs;
      ADOConnection* pdb;
      file://4、數據庫應用程序.cpp文件/////////////////////////////////////////////
      #include "stdafx.h"
      #include "數據庫應用程序.h"
      file://這里添加其它相關頭文件
      file://以下為該.cpp文件中若干自定義或非自定義的方法,與數據庫連接相關
      file://其中每一條語句都有含義,請關注其中的注釋
      BOOL CBKDlg::InitDataEnv()
      {
       file://下面定義了一個簡單的連接字符串,當然還有更復雜的
       CString s=_T("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=d:\\data\\資料借閱管理.mdb");
       ::CoInitialize (NULL);//初始化COM環境
       CoCreateInstance(CLSID_CADOConnection,
       NULL,
       CLSCTX_INPROC_SERVER,
       IID_IADOConnection15,
       (LPVOID*)&pdb
       );//初始化一個ADO連接
      CoCreateInstance(CLSID_CADORecordset,
       NULL,
       CLSCTX_INPROC_SERVER,
       IID_IADORecordset,
       (LPVOID*)&prs
       );//初始化一個ADO數據集
      CoCreateInstance(CLSID_CADOField,
       NULL,
       CLSCTX_INPROC_SERVER,
       IID_IADOFields,
       (LPVOID*)&pfds
       );//初始化一個ADO數據域集合(域即是Fox中的字段,下同)
      CoCreateInstance (CLSID_CADOField,
       NULL,
       CLSCTX_INPROC_SERVER,
       IID_IADOField,
       (LPVOID*)&pfd
       );//初始化一個ADO數據域集合中的一個域
      file://打開上述ADO連接
      pdb->Open((unsigned short*)(LPCSTR)s,(unsigned short*)"",(unsigned short*)"",0);
       file://打開上述ADO數據集,但它的連接參數是使用的上述字符串
      file://應當存在以上面的連接替換該字符串的方法,但我沒找到
      prs->Open(COleVariant(_T("資料信息")),COleVariant(s),adOpenKeyset,adLockOptimistic,adCmdTable);
      file://數據集的域不存在打開與否,只需直接到已打開的數據集中引用即可,詳情請見
      
      file://CBKDlg::OnBeforeColUpdateDatagrid方法
      m_dg.ClearFields ();//MS DATAGRID 控件(Activex)的數據清空
      m_dg.SetRefDataSource(prs); file://上述控件與數據集的綁定
      return TRUE;
      }
      BOOL CBKDlg::DestroyWindow()
       {
        // TODO: Add your specialized code here and/or call the base class
        m_dg.SetRefDataSource(NULL);
        long state;
        file://下面的處理可能存在邏輯上的錯誤,不過關閉數據集與數據連接的語法是正確的
        if(!FAILED(prs->get_State(&state)))
         if(state!=adStateClosed)
          {
           prs->Close();
           prs=NULL;
          }
         if(!FAILED(pdb->get_State(&state)))
          if(state!=adStateClosed)
          {
           pdb->Close();
           pdb=NULL;
          }
         ::CoUninitialize ();//釋放COM環境
         return CDialog::DestroyWindow();
        }
        void CBKDlg::OnBeforeColUpdateDatagrid(short ColIndex, VARIANT FAR* OldValue, short FAR* Cancel)
       {
        file://該事件(方法)在MS DATAGRID 控件(ActiveX)的單元數據更新前發生
        file://該事件您可能用不著,但其中的代碼您可能用得著
        COleVariant v((LPCSTR)m_dg.GetText ());//獲取上述控件當前單元格的數據
        CString fieldname=m_dg.GetColumns().GetItem(COleVariant(ColIndex)).GetCaption();
        DataTypeEnum fieldtype;//描述ADO數據類型的枚舉類型
        prs->get_Fields(&pfds);//從數據集中獲得數據域集合
        pfds->get_Item (COleVariant(fieldname),&pfd);//從數據域集合中獲得特定名稱的域
        pfd->get_Type (&fieldtype);//從上述域中獲取其數據類型,如整型或字符串型
        switch (fieldtype){
         case adSmallInt:
         case adInteger:
              break;
         case adDate:
              break;
         case adCurrency://Data type describing for Money ,Understand?
              break;
         case adVarChar://對應于VB中的String類型和VC中的CString類型
              break;
         default:
              break;
         }
        }//該方法來源于MS DataGrid ActiveX控件的事件,無具體的處理代碼,望海涵

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    VC用Ado接口連接和使用數據庫及注意事項

    VC用Ado接口連接和使用數據庫及注意事項:一、閱讀本文所需注意的其它事項 1、進行方法調用時,所傳遞的參數的類型的轉換(可能存在比本文更簡便的處理方法但我未發現) 2、每個源文件的每行注釋說明了其文件名 3、請關注相關頭文件包含關系 4、請關注文中所有中文注釋 5、更多的內容請參閱 VC
    推薦度:
    標簽: 接口 數據庫 vc
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 中文字幕亚洲精品无码| 亚洲AV无码久久精品蜜桃| 亚洲AV无码成人精品区狼人影院 | 国产精品一区二区av| 欧美精品福利在线视频 | 久久这里只有精品视频99| 56prom精品视频在放免费| 国精无码欧精品亚洲一区| 亚洲精品无码午夜福利中文字幕| 精品无码国产污污污免费网站国产| 九九精品免视看国产成人| 国精品无码一区二区三区左线| 香蕉依依精品视频在线播放| 精品日本一区二区三区在线观看| 91精品国产高清久久久久久91| 国产在线精品一区二区不卡| 成人国内精品久久久久一区| 久久久无码人妻精品无码| 精品国产品香蕉在线观看75| 九九精品在线观看| 国产成人精品久久免费动漫| 国产午夜精品免费一区二区三区| 中文字幕日韩精品有码视频| 在线成人精品国产区免费| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲国产av无码精品| 亚洲精品456播放| 亚洲国产精品一区二区第四页| 精品伦精品一区二区三区视频| 精品无码久久久久久久久久| 精品一区二区无码AV| 久久精品无码专区免费| 欧洲精品一区二区三区在线观看 | 精品一区二区三区在线观看视频 | 国产精品女同一区二区| 国产午夜无码精品免费看动漫| 国产精品禁18久久久夂久| 成人精品视频99在线观看免费| 97精品伊人久久大香线蕉app| 国产91精品在线观看| 精品一区二区三区在线视频|