用SQLConfigDataSource設定odbc

來源:互聯網
上載者:User

10.9.1   自動註冊DSN  
   
    無論是用ODBC還是DAO類,在訪問ODBC資料來源以前,都必須先註冊DSN。通過調用函數SQLConfigDataSource,可以實現自動註冊DSN。當然,用DAO可以直接存取一些常用的資料庫,而不必通過ODBC來訪問(參見10.8.3)。  
   
    清單10.14的代碼示範了註冊DSN的過程。該段代碼先用SQLConfigDataSource註冊一個名為MYDB的FoxPro   2.5資料來源,然後調用CDatabase::Open函數與該資料來源串連。注意在使用這段代碼時,要包含afxdb.h標頭檔,讀者可以把該檔案放到stdafx.h中。  
   
     
   
  清單10.14   自動註冊DSN  
   
  #include   “afxdb.h”  
   
  .   .   .  
   
  CDatabase   db;  
   
  if(!SQLConfigDataSource(NULL,ODBC_ADD_DSN,   "Microsoft   FoxPro   Driver   (*.dbf)",    
   
  "DSN=MYDB/0"  
   
  "DefaultDir=c://mydir/0"  
   
  "FIL=FoxPro   2.5/0"  
   
  "DriverId=280/0"))  
   
  {  
   
  AfxMessageBox("Can't   add   DSN!");  
   
  return   ;  
   
  }  
   
  TRY  
   
  {  
   
  db.Open("MYDB");  
   
  }  
   
  CATCH(CDBException,   e)  
   
  {  
   
  AfxMessageBox(e->m_strError);  
   
  return;  
   
  }  
   
  END_CATCH  
   
    在註冊DSN時,SQLConfigDataSource函數的第二個參數應該是ODBC_ADD_DSN,第三個參數指定了ODBC驅動程式,它的寫法可以參照ODBC管理器的驅動程式頁。第四個參數說明了資料來源的各種屬性,它是由一系列子串構成,每個子串的末尾必須有一個“/0”。最重要的屬性是“DSN=資料來源名”,其它屬性包括預設目錄以及驅動程式版本資訊。在上例中,使用FoxPro   2.5的版本,所以DriverId應該是280,對應地,FoxPro   2.6的DriverId是536,FoxPro   2.0的是24。  
   
    如果讀者對SQLConfigDataSource函數的第四個參數的設定方法不清楚,那麼可以開啟Windows的註冊表看一看登入過的DSN的各項屬性。運行RegEdit可以開啟註冊表,然後依次開啟HKEY_CURRENT_USER->Software->ODBC->ODBC.INI,就可以看到登入的DSN,開啟各DSN,則可以看到該DSN的各項屬性,讀者可以仿照DSN屬性來設定第四個參數。  
   
  DSN的名字必須唯一,因此如果要註冊的DSN已被註冊過,那麼SQLConfigDataSource就修改原來DSN的屬性。  

 

(1)在StdAfx.h檔案中添加  
  #include   <afxdb.h>  
  #include   <afxtempl.h>  
  #include   <odbcinst.h>  
  (2)在適當位置添加  
  //建立ODBC資料來源  
   
  //建立ODBC資料來源  
  if   (AfxMessageBox("選擇是否建立資料來源sss",   MB_YESNO)   !=   IDYES)  
  return   ;  
   
  //建立方法3  
  if(SQLConfigDataSource(m_pMainWnd->m_hWnd,ODBC_ADD_DSN,"Microsoft   Access   Driver   (*.mdb)",  
  "DSN=Personnel/0"  
  "DBQ=C://My   Documents//dq.mdb/0"  
  "Description=ODBC資料來源/0"  
  "DataDirectory=C://My   Documents/0"  
  "/0"))  
  AfxMessageBox("建立成功!");  
  else  
  AfxMessageBox("取消建立或建立失敗!");

 

把/0換成/1,完成整個字串後,再把/1換成/0

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.