您的位置:首页 > 其它

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 objecErrorPtr包含错误的详细信息.
集合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++类型
tinyintunsigned char
smallintsigned short
intsigned int
bigintsigned 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 最大值800080004000
数据长度固定(不足用空格填充)可变(实际数据长度)可变(实际数据长度)
可存储最多英文(数字)800080004000
最多汉字数400040004000
英文(数字)所占字节112
汉字所占字节222
declare @value nvarchar(20)
set @value = N'value'--在字符前加N表示将其转化为unicode字符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: