学习VC++深入浅出——ODBC编程

来源:互联网 发布:2016淘宝双十一数据 编辑:程序博客网 时间:2024/06/06 15:41
 学习VC++深入浅出——ODBC编程
    try
    
{
        m_TestSet.Open(CRecordset::snapshot,NULL);
    }

    
catch(CDBException *e)
    
{
        MessageBox(
"未能打开客户信息库!");
        e
->Delete();
        PostMessage(WM_QUIT);
        
return false;
    }
    
    
return TRUE;  // return TRUE  unless you set the focus to a control
}

class CTestSet : public CRecordset
{
public:
    CTestSet(CDatabase
* pDatabase = NULL);
    DECLARE_DYNAMIC(CTestSet)

// Field/Param Data
    
//{{AFX_FIELD(CTestSet, CRecordset)
    CString    m_ID;
    CString    m_name;
    
long    m_age;
    
//}}AFX_FIELD


// Overrides
    
// ClassWizard generated virtual function overrides
    
//{{AFX_VIRTUAL(CTestSet)
    public:
    
virtual CString GetDefaultConnect();    // Default connection string
    virtual CString GetDefaultSQL();    // Default SQL for Recordset
    virtual void DoFieldExchange(CFieldExchange* pFX);  // RFX support
    
//}}AFX_VIRTUAL

// Implementation
#ifdef _DEBUG
    
virtual void AssertValid() const;
    
virtual void Dump(CDumpContext& dc) const;
#endif
}
;


IMPLEMENT_DYNAMIC(CTestSet, CRecordset)

CTestSet::CTestSet(CDatabase
* pdb)
    : CRecordset(pdb)
{
    
//{{AFX_FIELD_INIT(CTestSet)
    m_ID = _T("");
    m_name 
= _T("");
    m_age 
= 0;
    m_nFields 
= 3;
    
//}}AFX_FIELD_INIT
    m_nDefaultType = snapshot;
}



CString CTestSet::GetDefaultConnect()
{
    
return _T("ODBC;DSN=test");
}


CString CTestSet::GetDefaultSQL()
{
    
return _T("[dbo].[Person]"/*"[dbo].[Studnet]"*/);
}


void CTestSet::DoFieldExchange(CFieldExchange* pFX)
{
    
//{{AFX_FIELD_MAP(CTestSet)
    pFX->SetFieldType(CFieldExchange::outputColumn);
    RFX_Text(pFX, _T(
"[ID]"), m_ID);
    RFX_Text(pFX, _T(
"[name]"), m_name);
    RFX_Long(pFX, _T(
"[age]"), m_age);
    
//}}AFX_FIELD_MAP
}


/////////////////////////////////////////////////////////////////////////////
// CTestSet diagnostics

#ifdef _DEBUG
void CTestSet::AssertValid() const
{
    CRecordset::AssertValid();
}


void CTestSet::Dump(CDumpContext& dc) const
{
    CRecordset::Dump(dc);
}

#endif //_DEBUG



void CTestODBCDlg::OnButtonInquiry() 
{
    
// TODO: Add your control notification handler code here
    if(!m_TestSet.IsEOF())
    
{
        m_Age 
= m_TestSet.m_age;
        m_ID 
= m_TestSet.m_ID;
        m_Name 
= m_TestSet.m_name;
    }

    UpdateData(
false);
}


void CTestODBCDlg::OnBtnInput() 
{
    
// TODO: Add your control notification handler code here
    if(!m_TestSet.IsEOF())
    
{
        m_TestSet.m_age
=m_Age;
        m_TestSet.m_ID
=m_ID;
        m_TestSet.m_name
=m_Name;
    }

    UpdateData();
}

原创粉丝点击