对象 | 名称 | 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
#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) {
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
PrintProviderError(pConnection);
PrintComError(e)
}
void PrintProviderError(_ConnectionPtr pConnection) {
ErrorPtr pErr = NULL;
long nCount = 0;
long i = 0;
if ( (pConnection->Errors->Count) > 0) {
nCount = pConnection->Errors->Count;
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());
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);
}
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字符。