ado.笔记
2015-08-06 01:04
639 查看
ado中的9个对象和4个集合
对象 | 名称 | C++ | 描述 |
---|---|---|---|
对象 | Connection object | _ConnectionPtr | 指向一个数据源的唯一链接 |
对象 | Command object | _CommandPtr | 执行一条指定的sql语句 |
对象 | Recordset object | _RecordsetPtr | 代表执行一条语句后的结果或者基本表的全部记录集合.(包含行和列) |
对象 | Record object | 一行(条)结果的集合.Recordset 的子项 | |
对象 | Stream object | 一个文本或者2进制的流对象.例如,可以加载一个xml文件到一个流里面,用作数据输入,或者从一个查询当中返回流对象.一个流对象可以操作字段或者流数据中包含的一条记录. | |
对象 | Parameter object | _ParameterPtr | 关联到Command 对象的,基于参数化查询或者存储过程的一条语句或者参数. |
对象 | Field object | 字段对象.每个字段对象对象Recordset对象的一列. | |
对象 | Property object | 属性对象.代表数据源(sqlserver)定义的ADO的特性(属性?).分为内建和动态2中.内建属性有ado实现并且可以立即生效. | |
对象 | Error objec | ErrorPtr | 包含错误的详细信息. |
集合 | Fields collection | 字段集合包含Recordset或者Record对象的所有字段. | |
集合 | Properties collection | 包含一个对象实例的全部属性 | |
集合 | Parameters collection | 包含一个Command对象的所有参数集合 | |
集合 | Errors collection | 一个错误响应中创建的所有错误对象.? |
导入ado
// compile with: /EHsc #import "msado15.dll" no_namespace rename("EOF", "EndOfFile")
链接数据库
链接字串(ConnectionString )
使用Connection 对象链接数据(_ConnectionPtr )
创建对象 _ConnectionPtr .CreateInstance(__uuidof(Connection));构建链接字串: “Provider=’SQLOLEDB’;Password=’%s’;Persist Security Info=True;User ID=’%s’;Initial Catalog=’%s’;Data Source=’%s,%ld’;”
以分号分隔,每个属性用单引号括起来.
打开链接 _ConnectionPtr ->Open(strCnn, “”, “”, adConnectUnspecified);
关闭链接 _ConnectionPtr ->Close()
获取错误信息
try{ //.... } catch(_com_error &e) { // Notify the user of errors if any. _bstr_t bstrSource(e.Source()); _bstr_t bstrDescription(e.Description()); PrintProviderError(pConnection); PrintComError(e) } void PrintProviderError(_ConnectionPtr pConnection) { // Print Provider Errors from Connection object. // pErr is a record object in the Connection's Error collection. ErrorPtr pErr = NULL; long nCount = 0; long i = 0; if ( (pConnection->Errors->Count) > 0) { nCount = pConnection->Errors->Count; // Collection ranges from 0 to nCount -1. for (i = 0 ; i < nCount ; i++) { pErr = pConnection->Errors->GetItem(i); printf("Error number: %x\t%s", pErr->Number, (LPCSTR)pErr->Description); } } } void PrintComError(_com_error &e) { _bstr_t bstrSource(e.Source()); _bstr_t bstrDescription(e.Description()); // Print COM errors. printf("Error\n"); printf("\tCode = %08lx\n", e.Error()); printf("\tCode meaning = %s\n", e.ErrorMessage()); printf("\tSource = %s\n", (LPCSTR) bstrSource); printf("\tDescription = %s\n", (LPCSTR) bstrDescription); }
ADO Code Examples in Visual C++
ado task table
sqlserver和c++数据类型对应
sql类型 | c++类型 |
---|---|
tinyint | unsigned char |
smallint | signed short |
int | signed int |
bigint | signed long long |
sql server数据库中char,varchar,nchar,nvarchar字段的区别
char,varchar存储非unicode.nchar,nvarchar存储unicode.
char,nchar存储定长数据.
varchar,nvarchar存储非定长数据.
– | Char(n) | Varchar(n) | Nvarchar(n) |
---|---|---|---|
N 最大值 | 8000 | 8000 | 4000 |
数据长度 | 固定(不足用空格填充) | 可变(实际数据长度) | 可变(实际数据长度) |
可存储最多英文(数字) | 8000 | 8000 | 4000 |
最多汉字数 | 4000 | 4000 | 4000 |
英文(数字)所占字节 | 1 | 1 | 2 |
汉字所占字节 | 2 | 2 | 2 |
declare @value nvarchar(20) set @value = N'value'--在字符前加N表示将其转化为unicode字符。
相关文章推荐
- ExtJS WindowGroup示例
- 队列的实现
- 扩展欧几里得算法
- 最长公共子字符串(动态规划)
- Intellij IDEA 快捷键整理
- centos curl版本nss改成openssl
- 使用jquery实现点击按钮弹出层和点击空白处隐藏层
- 从PyOpenCV到CV2
- Handler、Looper、MessageQueue(一)
- POJ 1066 Treasure Hunt(计算几何)
- 从PyOpenCV到CV2
- 聊天服务器:Ejabberd 安装与离线转发模块的实现
- QEMU代码中os_daemonize()函数的理解
- 使用Jayrock开源组件开发基于JSON-RPC协议的接口
- iOS-真机调试
- 宏 宏定义
- BestCoder Round #49 Dynamic Cactus 即 hdu5342
- 对网页渲染的初步认识
- 机器学习入门-了解相关概念
- POJ - 2001Shortest Prefixes字典树记录