QQ登录

只需一步,快速开始

289上位机VC MFC使用ADO实现表的字段操作

[ 复制链接 ]

289上位机VC MFC使用ADO实现表的字段操作

289上位机VC MFC使用ADO实现表的字段操作

ADO实现表的字段操作
功能展示
在ADO编写数据库程序是对表字段的操作也是很常用的功能,我们当前例程实现对不同表的字段获取 功能,效果如图,程序运行时会初始化连接例程根目录的数据库文件,在组合框中选择不同的表名,再点击<显示已选择表字段>可以在列表框中显示出所选表的字段名;

要点提示
在ADO中可以直接使用Recordset对象的成员函数Open()打开记录集,Open 方法的原型为: HRESULT Recordset15::Open ( const _variant_t & Source, const _variant_t & ActiveConnection,
enum CursorTypeEnum CursorType, enum LockTypeEnum LockType, long Options )
1Source 是数据查询字符串 2ActiveConnection是已经建立好的连接(我们需要用Connection对象指针来构造一个 _variant_t对象) 3CursorType光标类型
4LockType锁定类 型
5.option可以取以下值 adCmdText: 表明CommandText是文本命令 adCmdTable:表明CommandText是一个表名 adCmdProc:表明 CommandText是一个存储过程 adCmdUnknown:未知
更多类型可以查阅MSDN手册

从记录集中得到的值都是VARIANT类型,在VC提供有两方法转换:1.直接通过GetCollect(字段名)或m_pRecordset->Fields->GetItem(字段名)获得当前记录variant类型值,再进行转换为所需值;2通过映射返回的值同变量进行捆绑,以方便值类型的转换;

实现功能
1.新建基于对话框的应用程序
2.在App类的InitInstance()函数中添加代码AfxOleInit();//初始化COM,创建ADO连接等操作
3.在stdafx.h中加入ADO支持库
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")
4.在主对话框中添加连接对象指针 _ConnectionPtr m_pConnection; _RecordsetPtr m_pRecordset;
在OnInitDialog()函数中进行初始化操作
CComboBox *pComboBox = (CComboBox *)GetDlgItem(IDC_COMBO1);
//组合框添加表名称
pComboBox->AddString("students");
pComboBox->AddString("news");
pComboBox->AddString("class");
pComboBox->SetCurSel(0);
m_pConnection.CreateInstance(__uuidof(Connection));
try
{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb",
"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!");
}
m_pRecordset.CreateInstance(__uuidof(Recordset));
5.在程序退出函数OnDestroy()中进行关闭连接释放操作
void CGkbc8Dlg::OnDestroy()
{
CDialog::OnDestroy();
m_pConnection->Close();
m_pConnection.Release();
}
6.按照例程界面添加组合框IDC_COMBO1 ,列表框IDC_LIST1 ,按钮,关联按钮的点击函数
void CGkbc8Dlg::OnDisplay()
{
CListBox *pListBox = (CListBox *)GetDlgItem(IDC_LIST1);
pListBox->ResetContent();

CComboBox *pComboBox = (CComboBox *)GetDlgItem(IDC_COMBO1);
CString str,sCombo;
pComboBox->GetLBText(pComboBox->GetCurSel(),sCombo);
str.Format("SELECT * FROM %s",sCombo);

_bstr_t mStrSQL;

CString strColName;
BSTR bstrColName;
long ColCount,i;
//Field * field = NULL;
HRESULT hr;
Fields * fields = NULL;
LPCTSTR nameField; //LPCTSTR nameField;  
//打开记录集,得到字段名,并将字段名信息添加到ListBox中  

mStrSQL = str;//"SELECT * FROM students";
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->get_Name(&bstrColName);
//得到记录集//中的字段名
strColName=bstrColName;
nameField = strColName;
pListBox->AddString(nameField);
}

if(SUCCEEDED(hr))
fields->Release();//释放指针
m_pRecordset->Close();
}
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:289.上位机VC MFC使用ADO实现表的字段操作.zip 
文件大小:600.04 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!




回复

使用道具 举报

快速回复 返回列表 客服中心 搜索