织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>杂项技术>VC(MFC)>

利用ADO实现对数据库的操作1

罗索客 发布于 2001-11-03 21:03 点击:次 
Using the ADO AddNew Function 1:void CADOMFC1View::OnRecordsetAddnew() 2:{ 3:_RecordsetPtr pRecordSet; 4:CADOMFC1Doc * pDoc; 5:pDoc = GetDocument(); 6: 7:HRESULT hr; 8:_bstr_t bstrQuery(SELECT * FROM Products WHERE PartNumber IS NULL); 9:_variant_t v
TAG:

Using the ADO AddNew Function

1:  void CADOMFC1View::OnRecordsetAddnew()
2:  {
3:    _RecordsetPtr pRecordSet;
4:    CADOMFC1Doc * pDoc;
5:    pDoc = GetDocument();
6:
7:    HRESULT hr;
8:    _bstr_t bstrQuery("SELECT * FROM Products WHERE PartNumber IS
           NULL");
9:    _variant_t vNull;
10:    vNull.vt = VT_ERROR;
11:    vNull.scode = DISP_E_PARAMNOTFOUND;
12:
13:    try
14:    {
15:      hr = pRecordSet.CreateInstance(_uuidof(Recordset));
16:      if (SUCCEEDED(hr))
17:      {
18:        pRecordSet->PutRefActiveConnection(pDoc->m_pConnection);
19:        hr = pRecordSet->Open(_variant_t(bstrQuery), vNull,
20:          adOpenForwardOnly, adLockOptimistic, adCmdText);
21:        if (SUCCEEDED(hr))
22:        {
23:          // Create an array for the list of fields in
24:          // the Products table.
25:          COleSafeArray vaFieldlist;
26:          vaFieldlist.CreateOneDim(VT_VARIANT,3);
27:          // Fill in the field names now.
28:          long lArrayIndex[1];
29:          lArrayIndex[0] = 0;
30:          vaFieldlist.PutElement(lArrayIndex,
31:            &(_variant_t(ÒPartNumber")));
32:          lArrayIndex[0] = 1;
33:          vaFieldlist.PutElement(lArrayIndex,
34:            &(_variant_t("ProductName")));
35:          lArrayIndex[0] = 2;
36:          vaFieldlist.PutElement(lArrayIndex,
37:            &(_variant_t("Price")));
38:
39:          // Create an array for the list of values to go in
40:          // the Products table.
41:          COleSafeArray vavaluelist;
42:          vavaluelist.CreateOneDim(VT_VARIANT,3);
43:          // Fill in the values for each field.
44:          lArrayIndex[0] = 0;
45:          vavaluelist.PutElement(lArrayIndex,
46:            &(_variant_t("8TRACK-003")));
47:          lArrayIndex[0] = 1;
48:          vavaluelist.PutElement(lArrayIndex,
49:            &(_variant_t("Bell Bottom Hits")));
50:          lArrayIndex[0] = 2;
51:          vavaluelist.PutElement(lArrayIndex,
52:            &(_variant_t((float)19.95)));
53:
54:          pRecordSet->AddNew(vaFieldlist, vavaluelist);
55:          pRecordSet->Close();
56:        }
57:      }
58:    }
59:    catch( _com_error &e )
60:    {
61:    TRACE( "Error:%08lx.\\n", e.Error());
62:    TRACE( "ErrorMessage:%s.\\n", e.ErrorMessage());
63:    TRACE( "Source:%s.\\n", (LPCTSTR) _bstr_t(e.Source()));
64:    TRACE( "Description:%s.\\n", (LPCTSTR) _bstr_t(e.Description()));
65:    }
66:    catch(...)
67:    {
68:      TRACE( "\\n*** Unhandled Exception ***\\n" );
69:    }
70:  } (jacky)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/200111/646.html]
本文出处: 作者:jacky
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容