程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> ADO開發中如何得到表格字段名

ADO開發中如何得到表格字段名

編輯:關於VC++

在數據庫的開發過程中,常用的操作不僅有添加、修改、刪除記錄,還有對字段的操作,而獲得字段名就是其中的一種。獲得字段名之前必須先與數據庫建立連接,再打開相應的表,再得到表的字段集,下面以一程序為例,說明如何得到字段名。

新建一 VC MFCAppWizard(exe)工程,類型為Dialog based;

添加一按鈕名為“顯示字段”,添加一 Listbox控件;

創建 Access數據庫FTI.mdb;

運行效果如圖所示:

1.代碼說明

(1)在 stdafx.h 加入如下代碼引入 ADO 庫定義文件,

#import "c:\program files\common files\system\ado\msado15.dll" \
      no_namespace \
    rename ("EOF", "adoEOF")

(2)初始化COM庫,在BOOL CGetFieldNameApp::InitInstance()中添加AfxOleInit();

(3)在類 CgetFieldNameDlg 中添加兩個用於打開數據庫連接和打開記錄集的變量;

_ConnectionPtr m_pConnection;
  _RecordsetPtr m_pRecordset;

(4) 在CgetFieldNameDlg的構造函數中添加數據庫連接和記錄集初始化代碼;

m_pConnection.CreateInstance(__uuidof(Connection));
try
{
  m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\FTI.mdb",
      "",
      "",
      adModeUnknown
      );
}
catch(_com_error e)
{
  AfxMessageBox("數據庫連接失敗!");
}
m_pRecordset.CreateInstance(__uuidof(Recordset));

(5) 給Listbox控件添加控件變量m_FieldsList;

(6) 在按鈕的單擊事件中添加相應代碼;

_bstr_t  mStrSQL;
CString  strColName;
BSTR   bstrColName;
long   ColCount,i;
Field *  field = NULL;
HRESULT  hr;
Fields * fields = NULL;
LPCTSTR  nameField;

//打開記錄集,得到字段名,並將字段名信息添加到ListBox中
mStrSQL = "SELECT * FROM Images";
m_pRecordset->Open(mStrSQL,
    m_pConnection.GetInterfacePtr(),
    adOpenDynamic,
    adLockOptimistic,
    adCmdText);

hr = m_pRecordset->get_Fields (&fields);  //得到記錄集的字段集和

if(SUCCEEDED(hr))
  fields->get_Count(&ColCount);
//得到記錄集的字段集合中的字段的總個數
for(i=0;i<ColCount;i++)
{
  fields->Item[i]->get_Name(&bstrColName);  //得到記錄集//中的字段名
  strColName=bstrColName;
  nameField = strColName;
  m_FieldsList.AddString(nameField);
}
if(SUCCEEDED(hr))
  fields->Release();//釋放指針

(全文完)

本文配套源碼

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved