GBase XDM(单机/分片集群)数据库修改记录
ldap_modify()和 ldap_modify_s()函数用来修改已存在的数据库记录。
typedef struct ldapmod {
int mod_op;
char *mod_type;
union {
char **modv_strvals;
struct berval **modv_bvals;
} mod_vals;
} LDAPMod;
#define mod_values mod_vals.modv_strvals
#define mod_bvalues mod_vals.modv_bvals
int ldap_modify( LDAP *ld, char *dn, LDAPMod *mods[] );
int ldap_modify_s( LDAP *ld, char *dn, LDAPMod *mods[] );
参数解释:
ld:连接句柄
dn:要修改的记录名
mods:设置修改记录的空结尾的数组。此参数在 LDAPMod 结构中有如下
意义:
mod_op :执行的修改操作。为 LDAP_MOD_ADD ,
LDAP_MOD_DELETE,LDAP_MOD_REPLACE 之一。此字段也指
明 在 mod_vals 联 合 中 的 值 的 类 型 。 此 字 段 同
LDAP_MOD_BVALUES 进行或操作,以形成 mod_bvalues 形式。
另外,mod_values 形式也被使用。
mod_type:要修改的类型
mod_vals:此值(如果有的话)将 add,delete,replace。
仅变量 mod_values 或 mod_bvalues 之一可以使用,选择此
值同 mod_op 和 LDAP_MOD_BVALUES 常量进行或操作。
mod_values 为以 NULL 结尾的 NULL 结尾的字符串数组,
mod_bvalues 为 NULL 结尾的 berval 结构数组,可以用来
传送图像一类的二进制值。
对于 LDAP_MOD_DELETE 修改操作,给定的值是要从记录中被删除的部
分,如果没有保留值删除属性。如果记录属性被删除,mod_vals 字段应设
为 NULL。
ldap_modify_s()根据修改操作结果返回 LDAP 错误码。此代码由
ldap_perror()及相关函数解释。
ldap_modify()返回请求初始化消息 ID,或出错时返回-1。操作结果由
ldap_result()获得。