new oid
此函数将为该类的新实例预留空间,并返回对该实例的引用。
这种形式的 classname_new()
仅适用于使用 OID 声明的类。
MCO_RET classname_new(
/*IN*/ mco_trans_h trans,
/*IN*/ dbname_oid *oid,
/*OUT*/ classname * handle
);
参数
trans
mco_trans_h
由 mco_trans_start()
函数返回的 MCO_READ_WRITE
事务句柄。
oid
dbname_oid
生成的 typedef
类型为 dbname_oid
的变量的地址,该变量指定了要分配的对象的 OID。
handle
classname *
类句柄类型变量的地址。
返回
MCO_S_OK
日志含义保留实例成功。
MCO_S_DUPLICATE
OID值不唯一。
MCO_E_ACCESS
事务句柄为MCO_READ_ONLY
。
MCO_E_TRANSACT
发生事务错误。
MCO_E_NOMEM
数据库内存分配错误。
示例
/* 模式定义代码片段 */
struct SimpleId
{
uint2 id;
};
declare oid SimpleId[10000];
/* 应用程序代码片段 */
const char * dbname = "SimpleDb";
int main(int argc, char* argv[])
{
mco_db_h db;
MCO_RET rc;
mco_trans_t t;
SimpleId simple_id;
...
simple_id.id= 99;
mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
if ( MCO_S_OK != rc )
{
A a;
rc = A_new( t, &simple_id, &a );
...
}
}