vc编程培训 网络游戏服务器端编程:在VC中使用ADO[2]
网络游戏服务器端编程:在VC中使用ADO[2]
——此文章摘自《网络游戏服务器端编程》定价 ¥ 特价 ¥ 详细>>//track linktech cn/?m_id=dangdang&a_id=A &l= &l_type = width= height= border= nosave>//使用__RecordsetPtr执行SQL语句 __RecordsetPtr MySet; MySet CreateInstance(__uuidof(Recordset)); MySet-〉Open( SELECT * FROM some__table MyDb GetInterfacePtr() adOpenDynamic adLockOptimistic adCmdText);
现在已经有了一个数据连接和一个记录集 接下来就可以使用数据了 从以下代码可以看到 使用ADO的__RecordsetPtr接口 就不需要像DAO那样频繁地使用大而复杂的数据结构VARIANT 并强制转换各种数据类型了 这也是ADO的优点之一 假定程序有一个名称为m__List的ListBox控件 下面一段代码用__RecordsetPtr接口获取记录集数据并填充这个ListBox控件 __variant__t Holder try { while(!MySet-〉adoEOF) { Holder = MySet-〉GetCollect( FIELD__ ); if(Holder vt!=VT__NULL) m__List AddString((char)__bstr__t(Holder)); MySet-〉MoveNext(); } } catch(____error e) { CString Error = e-〉ErrorMessage(); AfxMessageBox(e-〉ErrorMessage()); } catch( ) { MessageBox( ADO发生错误! );}
![vc编程培训 网络游戏服务器端编程:在VC中使用ADO[2]](http://img.zhputi.com/uploads/d30a/d30a7b3884c26b59ae452c8db7636d4466726.jpg)
必须始终在代码中用try和catch来捕获ADO错误 否则ADO错误会使应用程序崩溃 当ADO发生运行错误时(如数据库不存在) OLE DB数据提供者将自动创建一个____error对象 并将有关错误信息填充到这个对象的成员变量
( )类型转换
由于对象是跨平台的 它使用了一种通用的方法来处理各种类型的数据 因此CString类和对象是不兼容的 需要一组API来转换对象和 C++类型的数据 __vatiant__t和__bstr__t就是这样两种对象 它们提供了通用的方法转换对象和C++类型的数据
lishixinzhi/Article/program/SQL/201311/16186