C ++ ADO

Source: Internet
Author: User

Although it is relatively simple, it is still a bit complicated for beginners. record it. Write a class for C ++ database operations.
1 ADOConn. h
01 # if! Defined (afx_adoconn_h000056a56674_91dc_43bb_bd09_9a0c8995161e00000000ded _)
02 # define afx_adoconn_hsf-56a56674_91dc_43bb_bd09_9a0c8995161e00000000ded _
03
04 # import "C: \ Program Files \ Common Files \ System \ ado \ msado15.dll" no_namespace \
05 rename ("EOF", "adoEOF") rename ("BOF", "adoBOF ")
06 # if _ MSC_VER> 1000
07 # pragma once
08 # endif // _ MSC_VER> 1000
09 class ADOConn
10 {
11 public:
12 ADOConn (void );
13 ~ ADOConn (void );
14
15
16 // Add a pointer to the Connection object
17 _ ConnectionPtr m_pConnection;
18 // Add a pointer to the Recordset object
19 _ RecordsetPtr m_pRecordset;
20 // _ RecordsetPtr & GetRecordSet (_ bstr_t bstrSQL );
21/* // close the ADO class for future use */
22 void OnInitADOConn (void );
23 void ExitConnect (void );
24 // open the record set
25 _ RecordsetPtr & GetRecordSet (_ bstr_t bstrSQL );
26 };
27 # endif //! Defined (afx_adoconn_h000056a56674_91dc_43bb_bd09_9a0c8995161e00000000ded _)

ADOConn. cpp
01 # include "StdAfx. h"
02 # include "ADOConn. h"
03
04
05 ADOConn: ADOConn (void)
06 {
07}
08
09
10 ADOConn ::~ ADOConn (void)
11 {
12}
13
14
15 /// close the ADO class for future use
16 void ADOConn: OnInitADOConn (void)
17 {
18: CoInitialize (NULL );
19 try
20 {
21 // create a connection object
22 m_pConnection.CreateInstance ("ADODB. Connection ");
23 // set the connection string
24 _ bstr_t strConnect = "uid =; pwd =; DRIVER = {Microsoft Access Driver (*. mdb)}; DBQ = Grades. mdb ;";
25 // set the SERVER and UID and PWD according to the actual situation"
26/* m_pConnection-> Open (strConnect, _ T ("admin"), _ T ("owenyang"), adModeUnknown );*/
27 m_pConnection-> Open (strConnect, "admin", "owenyang", adModeUnknown );
28}
29 catch (_ com_error e)
30 {
31 // Display error message
32 AfxMessageBox (e. Description ());
33}
34}
35
36
37 void ADOConn: ExitConnect (void)
38 {
39 // close the record set and Connection
40 if (m_pRecordset! = NULL)
41 {
42 m_pRecordset-> Close ();
43
44}
45 m_pConnection-> Close ();
46: CoUninitialize ();
47}
48
49
50 // open the record set
51 _ RecordsetPtr & ADOConn: GetRecordSet (_ bstr_t bstrSQL)
52 {
53 // TODO: insert return statement here
54 try
55 {
56 if (m_pConnection = NULL)
57 {
58 OnInitADOConn ();
59}
60 // create record object
61 m_pRecordset.CreateInstance (_ uuidof (Recordset ));
62 // retrieve table records
63 m_pRecordset-> Open (bstrSQL, m_pConnection.GetInterfacePtr (), adOpenDynamic,
64 adLockOptimistic, ad1_text );
65}
66 catch (_ com_error e)
67 {
68 e. Description ();
69}
70 return m_pRecordset;
71}


ReadAccessToList. cpp
View source
Print?
01 void CTypeHistoryDlg: readAccessToList (void)
02 {
03 CRect rect;
04 GetClientRect (& rect );
05 int gridWidth = (rect. Width ()-15)/11;
06/* CString tem = _ T ("try ");
07 tem. Format (_ T ("% d"), gridWidth );*/
08 // MessageBox (tem );
09 m_historyList.InsertColumn (0, _ T ("no."), LVCFMT_CENTER, gridWidth-10 );
10 m_historyList.InsertColumn (1, _ T ("date"), LVCFMT_CENTER, gridWidth + 25 );
11 m_historyList.InsertColumn (2, _ T ("number of segments"), LVCFMT_CENTER, gridWidth + 10 );
12 m_historyList.InsertColumn (3, _ T ("Speed"), LVCFMT_CENTER, gridWidth );
13 m_historyList.InsertColumn (4, _ T (""), LVCFMT_CENTER, gridWidth );
14 m_historyList.InsertColumn (5, _ T (""), LVCFMT_CENTER, gridWidth );
15 m_historyList.InsertColumn (6, _ T ("code length"), LVCFMT_CENTER, gridWidth );
16 m_historyList.InsertColumn (7, _ T ("error"), LVCFMT_CENTER, gridWidth );
17 m_historyList.InsertColumn (8, _ T ("Words"), LVCFMT_CENTER, gridWidth );
18 m_historyList.InsertColumn (9, _ T ("Key count"), LVCFMT_CENTER, gridWidth );
19 m_historyList.InsertColumn (10, _ T (""), LVCFMT_CENTER, gridWidth );
20 m_historyList.SetExtendedStyle (LVS_EX_FLATSB
21 | LVS_EX_FULLROWSELECT
22 | LVS_SHOWSELALWAYS
23 | LVS_EX_GRIDLINES );
24 ADOConn m_AdoConn;
25 m_AdoConn.OnInitADOConn ();
26 CString SQL;
27 SQL. Format (_ T ("select * from grade "));
28 _ RecordsetPtr m_pRecordset;
29 m_pRecordset = m_AdoConn.GetRecordSet (_ bstr_t) SQL );
30 while (m_AdoConn.m_pRecordset-> adoEOF = 0)
31 {
32 m_historyList.InsertItem (0, _ T (""));
33 m_historyList.SetItemText (0, 1, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("date "));
34 m_historyList.SetItemText (0, 2, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("para "));
35 m_historyList.SetItemText (0, 3, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("speed "));
36 m_historyList.SetItemText (0, 4, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("back "));
37 m_historyList.SetItemText (0, 5, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("hitkey "));
38 m_historyList.SetItemText (0, 6, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("keylong "));
39 m_historyList.SetItemText (0, 7, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("wronwor "));
40 m_historyList.SetItemText (0, 8, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("wordscount "));
41 m_historyList.SetItemText (0, 9, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("keycount "));
42 m_historyList.SetItemText (0, 10, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("time "));
43 m_historyList.SetItemText (0, 0, (TCHAR *) (_ bstr_t) m_pRecordset-> GetCollect ("id "));
44 m_pRecordset-> MoveNext ();
45}
46 m_historyList.SetItemState (0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
47 m_AdoConn.ExitConnect ();
48}

Author: owenyang
 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.