isDesc = FALSE;
}
最后要将各控件和它们对应的变量关联起来,代码如下:
void CAdoTestView::DoDataExchange(CDataExchange* pDX )
·359 ·
…………………………………………………………Page 371……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAdoTestView)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
DDX_Control(pDX; IDC_LISTBOX; m_strListBox);
DDX_Control(pDX; IDC_DATAGRID; m_strDataGrid);
DDX_Text(pDX; IDC_CONNECTION_STRING; m_strConnection);
DDX_Text(pDX; IDC_EXECUTE_STRING; m_strSQL);
}
(2 )编写各消息响应函数
前面已经说过,在编写 ADO 的程序时,要用 try 和 catch,否则 ADO 调用错误有可能使
程序崩溃,一定要随时记得捕捉__error 例外以及其他错误。因此首先编写捕获例外时的
处理函数。为类 CAdoTestView 添加 public 成员函数 void GenerateError(HRESULT hr; PWSTR
pwszDescription) ,代码如下:
void CAdoTestView::GenerateError(HRESULT hr; PWSTR pwszDescription )
{
CString m_strError;
m_strError。Format(〃Run…time error ’%d (%x)’〃; hr; hr);
m_strError += 〃nr〃;
m_strError += pwszDescription;
AfxMessageBox(m_strError);
}
接下来为各个按钮添加响应函数。首先为用来设定数据源的按钮添加响应函数:打开
“ClassWizard ”对话框,在“Class name ”下拉菜单中选择 CAdoTestView,在 Object IDs 下
拉列表中选择 IDC_SOURCE ,在“Messages ”下拉列表中选择 BN_CLICKED ,单击“Add
Function ”,采用默认的函数名,然后依次单击“OK ”和“Edit Code ”按钮,定位到函数
CAdoTestView::OnSource(),代码如下:
void CAdoTestView::OnSource()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
HRESULT hr;
IDataSourceLocatorPtr m_dlPrompt = NULL;
_ConnectionPtr m_Conn = NULL;
//初始化
::CoInitialize(NULL);
·360 ·
…………………………………………………………Page 372……………………………………………………………
第 12 章 数据库开发
//创建 IDataSourceLocatorPtr 的实例
hr = m_dlPrompt。CreateInstance(__uuidof(DataLinks));
//弹出数据连接的对话框
m_Conn = m_dlPrompt…》PromptNew();
if (m_Conn!=NULL)
{
//将连接字符串复制到 m_strConnect 中
m_strConnection。Format(〃%s〃; (char*)m_Conn…》ConnectionString);
//将变量中的值保存到控件中
UpdateData(FALSE);
}
}
编写好设置数据源的代码,接下来该为“连接”按钮编写响应函数了。在编写此函数之
前,先要编写数据库表名的函数。因为当连接成功时,在 List Box 控件中会显示出数据库中
所有表的名称。为类 CAdoTestView 添加一个函数 void getTables() ,它是 public 的,用来显
示表名。代码如下:
void CAdoTestView::getTables()
{
_bstr_t tablesNames;
CString kooky;
//先将 List Box 清空
m_ListBox。ResetContent();
//将控件中的值保存到变量中
UpdateData( TRUE);
try
{
//创建实例
m_Recordset。CreateInstance(__uuidof(Recordset));
// 以只读方式打开结果集,得到表名信息
m_Recordset = m_Connection…》OpenSchema (adSchemaTables;vtMissing;vtMissing);
//如果结果集没有结束
while (!m_Recordset…》adoEOF)
{
//得到表项的名字
tablesNames = m_Recordset…》GetCollect(〃TABLE_NAME〃);
kooky = (char*) tablesNames;
//如果是表项,则加到 ListBox 中
if (kooky。Left(4) != 〃MSys〃)
m_ListBox。AddString( kooky );
//移到下一个表项
·361 ·
…………………………………………………………Page 373……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
m_Recordset…》MoveNext();
}
}
//捕获例外__error
catch (__error &e)
{
GenerateError(e。Error(); e。Description());
}
//捕捉其他例外
catch(。。。) {}
//将变量中的值保存到控件中
UpdateData( FALSE );
//最后将结果集置为空
m_Recordset = NULL;
}
现在为“连接”按钮编写响应函数 。具体步骤与为“数据源”按钮添加响应函数的一致,
只是 Object IDs 下拉列表中选择 Connect 按钮的 ID :IDC_CONNECT ,代码如下:
void CAdoTestView::OnConnect()
{
// TODO: Add your control notification handler code here
//更新变量值
UpdateData(TRUE);
try
{
//创建实例
m_Connection。CreateInstance(__uuidof(Connection));
//根据连接字符串开启数据连接
小说推荐
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 其他
- 最新章:第37章
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 其他
- 最新章:第31章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 其他
- 最新章:第214章
- C语言设计
- 作者:谭浩强1 C 语言概述1.1 C语言的发展过程1.2 当代最优秀的程序设计语言1.3 C语言版本1.4 C语言的特点1.5 面向对象的程序设计语言1.6 C和C+1.7 简单的C程序介绍1.8 输入和输出函数1.9 C源程序的结构特点1.10书写程序时应遵循的规则1.11C语言的字符集1.12
- 文学名著
- 最新章:第45章
- 设计成婚:不入豪门
- 作者:海未央《设计成婚2:名门新娘》作品介绍《名门新娘》介绍:她是骆家收养的孤女,性格因为受他的影响,变得有些古灵精怪,也懂得是非之分!他说他的一切只为他而努力,可是为什么要拒绝自己呢?什么?没有满十八岁?那今天生日,够十八岁了吧?什么,还太小?太过分了,这不是耍着自己玩吗?嘿嘿,有个邪恶的老师,那
- 魔法玄幻
- 最新章:第196章
- 玄学,从入门到放弃
- 《玄学,从入门到放弃》作者:李传言文案:周诣一手拿着卜卦,一手拿着《演员的自我修养,叹息良久。他本是百年前观天占星的玄术师,谁知却一朝重生现代。他只想平淡地生活下去,可天不遂人愿,他注定将在这末法时代掀起波澜!成就一代影帝!谢千仇沉默地看着他…大师,你卦和书都拿倒了#玄学,从入门到放弃,入土,删库跑
- 魔法玄幻
- 最新章:第86章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章
- 要你言听计从
- 作者:决明第一章哈士奇,没有护卫看家的本领,对主人、客人甚至是闯空门的恶人都一样友善,咬着皮球跟小偷一块玩你丢我捡也不用太惊讶,时常被人认为忠诚度不足。贺世祺背靠在冰冷玻璃落地窗前,一整间屋子都是伸手不见五指的黑暗,也好,反正他现在什么也不需要看到,只要耳朵还有听觉就好,顺便听听贴在耳边的手机里还要
- 都市言情
- 最新章:第28章