绑定条目宏
绑定条目宏定义了一个Recordset字段与一个变量间的对应关系。每个条目的绑定宏由开始宏与结束宏组成并配对使用。
定长数据的宏适用于adDate,adBoolean等,数字的宏适用于adTinyInt, adInteger和adDouble等,变长数据的宏适用于adChar, adVarChar和adVarBinary等。所有的数字类型,除了adVarNumeric以外也是定长数据类型。每个宏的族之间都有不同的参数组,因此你可以排除不感兴趣的绑定信息。
参见OLE DB程序员参考附录A:数据类型的更多信息
开始绑定条目
BEGIN_ADO_BINDING(Class)
定长数据:
ADO_FIXED_LENGTH_ENTRY(Ordinal, DataType, Buffer, Status, Modify)
ADO_FIXED_LENGTH_ENTRY2(Ordinal, DataType, Buffer, Modify)
数字型数据:
ADO_NUMERIC_ENTRY(Ordinal, DataType, Buffer, Precision, Scale, Status, Modify)
ADO_NUMERIC_ENTRY2(Ordinal, DataType, Buffer, Precision, Scale, Modify)
变长数据:
ADO_VARIABLE_LENGTH_ENTRY(Ordinal, DataType, Buffer, Size, Status, Length, Modify)
ADO_VARIABLE_LENGTH_ENTRY2(Ordinal, DataType, Buffer, Size, Status, Modify)
ADO_VARIABLE_LENGTH_ENTRY3(Ordinal, DataType, Buffer, Size, Length, Modify)
ADO_VARIABLE_LENGTH_ENTRY4(Ordinal, DataType, Buffer, Size, Modify)
结束绑定
END_ADO_BINDING()
状态值
变量Status的值指示了一个字段的值是否被成功的拷贝到了对应的变量中。写数据时,可以给Status赋值为adFldNull来指示该字段将被设置为null。
绑定条目宏定义了一个Recordset字段与一个变量间的对应关系。每个条目的绑定宏由开始宏与结束宏组成并配对使用。
定长数据的宏适用于adDate,adBoolean等,数字的宏适用于adTinyInt, adInteger和adDouble等,变长数据的宏适用于adChar, adVarChar和adVarBinary等。所有的数字类型,除了adVarNumeric以外也是定长数据类型。每个宏的族之间都有不同的参数组,因此你可以排除不感兴趣的绑定信息。
参见OLE DB程序员参考附录A:数据类型的更多信息
开始绑定条目
BEGIN_ADO_BINDING(Class)
定长数据:
ADO_FIXED_LENGTH_ENTRY(Ordinal, DataType, Buffer, Status, Modify)
ADO_FIXED_LENGTH_ENTRY2(Ordinal, DataType, Buffer, Modify)
数字型数据:
ADO_NUMERIC_ENTRY(Ordinal, DataType, Buffer, Precision, Scale, Status, Modify)
ADO_NUMERIC_ENTRY2(Ordinal, DataType, Buffer, Precision, Scale, Modify)
变长数据:
ADO_VARIABLE_LENGTH_ENTRY(Ordinal, DataType, Buffer, Size, Status, Length, Modify)
ADO_VARIABLE_LENGTH_ENTRY2(Ordinal, DataType, Buffer, Size, Status, Modify)
ADO_VARIABLE_LENGTH_ENTRY3(Ordinal, DataType, Buffer, Size, Length, Modify)
ADO_VARIABLE_LENGTH_ENTRY4(Ordinal, DataType, Buffer, Size, Modify)
结束绑定
END_ADO_BINDING()
参数 | 描述 |
Class | 派生类的名字。 |
Ordinal | 从1开始的序号,对应于Recordset中的字段。 |
DataType | 与C/C++变量对应的ADO数据类型(参见DataTypeEnum以获得有效数据类型的列表)。如果需要,字段的值会被转换成该类型的值。 |
Buffer | 对应的C/C++变量的名字。 |
Size | 该C/C++变量的最大字节数。如果是个变长字符串,使用0表示即可。 |
Status | 指示变量的名字。该变量用以表示缓冲是否有效,数据转换是否成功。值adFldOK意味着转换成功;adFldNull意味着该字段的值为空。其他可能的值见后面的状态值列表。 |
Modify | 逻辑标志。TRUE意味着ADO允许利用变量值更新Recordset中的字段的值。设置该值为TRUE将允许更新,如果你只想检查字段的值而不想改变它那么就设置为FALSE。 |
Precision | 数字型变量的位数。 |
Scale | 数字型变量的小数位数。 |
Length | 一个4字节变量的名字。该变量将包含缓冲区中数据的实际长度。 |
状态值
变量Status的值指示了一个字段的值是否被成功的拷贝到了对应的变量中。写数据时,可以给Status赋值为adFldNull来指示该字段将被设置为null。
常量 | 值 | 描述 |
adFldOK | 0 | 一个非空的字段值被返回。 |
adFldBadAccessor | 1 | 绑定无效。 |
adFldCantConvertValue | 2 | 值因为符号不匹配或超界外的原因导致无法被正确转换。 |
adFldNull | 3 | 读字段值时,指示一个空值被返回。写字段值时,指示当字段自身无法编码NULL时该字段将被设置为NULL。 |
adFldTruncated | 4 | 变长数据或数字被截断。 |
adFldSignMismatch | 5 | 值是有符号数,而数据类型是无符号数。 |
adFldDataOverFlow | 6 | 数据值超出界限。 |
adFldCantCreate | 7 | 不知名的列类型和字段已经被打开。 |
adFldUnavailable | 8 | 字段值无法确定。比如一个新的未赋值的无缺省值的字段。 |
adFldPermissionDenied | 9 | 未被允许更新数据。 |
adFldIntegrityViolation | 10 | 更新字段时值违反了列的完整性要求。 |
adFldSchemaViolation | 11 | 更新字段时值违反了列的规范要求。 |
adFldBadStatus | 12 | 更新字段时,无效的状态参数。 |
adFldDefault | 13 | 更新字段时,使用缺省值。 |