字体
第(3/6)页
关灯
   存书签 书架管理 返回目录
择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;

    //初始化COM

    ::CoInitialize(NULL);

    枫叶文学网www.fywxw.com

    第12 章 数据库开发

    ·361·

    //创建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 tablesNcoms;

    CString kooky;

    //先将List Box 清空

    m_ListBox.ResetContent();

    //将控件中的值保存到变量中

    UpdateData( TRUE);

    try

    {

    //创建实例

    m_Recordset.CreateInstance(__uuidof(Recordset));

    //以只读方式打开结果集,得到表名信息

    m_Recordset = m_Connection->OpenSchema (adSchemaTables,vtMissing,vtMissing);

    //如果结果集没有结束

    whil
上一页 目录 下一页