亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? db_server_cxxproc.cpp

?? MySQL數據庫開發源碼 值得一看哦
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
{	Db *dbp;	Dbc **jcurs, **c;	Dbc *dbc;	ct_entry *dbc_ctp, *ctp, *dbp_ctp;	size_t size;	u_int32_t *cl, i;	int ret;	ACTIVATE_CTP(dbp_ctp, dbpcl_id, CT_DB);	dbp = (Db *)dbp_ctp->ct_anyp;	dbc_ctp = new_ct_ent(&replyp->status);	if (dbc_ctp == NULL)		return;	size = (curslen + 1) * sizeof(Dbc *);	if ((ret = __os_calloc(dbp->get_DB()->dbenv,	    curslen + 1, sizeof(Dbc *), &jcurs)) != 0) {		replyp->status = ret;		__dbclear_ctp(dbc_ctp);		return;	}	/*	 * If our curslist has a parent txn, we need to use it too	 * for the activity timeout.  All cursors must be part of	 * the same transaction, so just check the first.	 */	ctp = get_tableent(*curs);	DB_ASSERT(ctp->ct_type == CT_CURSOR);	/*	 * If we are using a transaction, set the join activity timer	 * to point to the parent transaction.	 */	if (ctp->ct_activep != &ctp->ct_active)		dbc_ctp->ct_activep = ctp->ct_activep;	for (i = 0, cl = curs, c = jcurs; i < curslen; i++, cl++, c++) {		ctp = get_tableent(*cl);		if (ctp == NULL) {			replyp->status = DB_NOSERVER_ID;			goto out;		}		/*		 * If we are using a txn, the join cursor points to the		 * transaction timeout.  If we are not using a transaction,		 * then all the curslist cursors must point to the join		 * cursor's timeout so that we do not timeout any of the		 * curlist cursors while the join cursor is active.		 * Change the type of the curslist ctps to CT_JOIN so that		 * we know they are part of a join list and we can distinguish		 * them and later restore them when the join cursor is closed.		 */		DB_ASSERT(ctp->ct_type == CT_CURSOR);		ctp->ct_type |= CT_JOIN;		ctp->ct_origp = ctp->ct_activep;		/*		 * Setting this to the ct_active field of the dbc_ctp is		 * really just a way to distinguish which join dbc this		 * cursor is part of.  The ct_activep of this cursor is		 * not used at all during its lifetime as part of a join		 * cursor.		 */		ctp->ct_activep = &dbc_ctp->ct_active;		*c = ctp->ct_dbc;	}	*c = NULL;	if ((ret = dbp->join(jcurs, &dbc, flags)) == 0) {		dbc_ctp->ct_dbc = dbc;		dbc_ctp->ct_type = (CT_JOINCUR | CT_CURSOR);		dbc_ctp->ct_parent = dbp_ctp;		dbc_ctp->ct_envparent = dbp_ctp->ct_envparent;		__dbsrv_settimeout(dbc_ctp, dbp_ctp->ct_envparent->ct_timeout);		__dbsrv_active(dbc_ctp);		replyp->dbcidcl_id = dbc_ctp->ct_id;	} else {		__dbclear_ctp(dbc_ctp);		/*		 * If we get an error, undo what we did above to any cursors.		 */		for (cl = curs; *cl != 0; cl++) {			ctp = get_tableent(*cl);			ctp->ct_type = CT_CURSOR;			ctp->ct_activep = ctp->ct_origp;		}	}	replyp->status = ret;out:	__os_free(dbp->get_DB()->dbenv, jcurs);	return;}/* BEGIN __dbc_close_proc */extern "C" void__dbc_close_proc(	long dbccl_id,	__dbc_close_reply *replyp)/* END __dbc_close_proc */{	ct_entry *dbc_ctp;	ACTIVATE_CTP(dbc_ctp, dbccl_id, CT_CURSOR);	replyp->status = __dbc_close_int(dbc_ctp);	return;}/* BEGIN __dbc_count_proc */extern "C" void__dbc_count_proc(	long dbccl_id,	u_int32_t flags,	__dbc_count_reply *replyp)/* END __dbc_count_proc */{	Dbc *dbc;	ct_entry *dbc_ctp;	db_recno_t num;	int ret;	ACTIVATE_CTP(dbc_ctp, dbccl_id, CT_CURSOR);	dbc = (Dbc *)dbc_ctp->ct_anyp;	ret = dbc->count(&num, flags);	replyp->status = ret;	if (ret == 0)		replyp->dupcount = num;	return;}/* BEGIN __dbc_del_proc */extern "C" void__dbc_del_proc(	long dbccl_id,	u_int32_t flags,	__dbc_del_reply *replyp)/* END __dbc_del_proc */{	Dbc *dbc;	ct_entry *dbc_ctp;	int ret;	ACTIVATE_CTP(dbc_ctp, dbccl_id, CT_CURSOR);	dbc = (Dbc *)dbc_ctp->ct_anyp;	ret = dbc->del(flags);	replyp->status = ret;	return;}/* BEGIN __dbc_dup_proc */extern "C" void__dbc_dup_proc(	long dbccl_id,	u_int32_t flags,	__dbc_dup_reply *replyp)/* END __dbc_dup_proc */{	Dbc *dbc, *newdbc;	ct_entry *dbc_ctp, *new_ctp;	int ret;	ACTIVATE_CTP(dbc_ctp, dbccl_id, CT_CURSOR);	dbc = (Dbc *)dbc_ctp->ct_anyp;	new_ctp = new_ct_ent(&replyp->status);	if (new_ctp == NULL)		return;	if ((ret = dbc->dup(&newdbc, flags)) == 0) {		new_ctp->ct_dbc = newdbc;		new_ctp->ct_type = CT_CURSOR;		new_ctp->ct_parent = dbc_ctp->ct_parent;		new_ctp->ct_envparent = dbc_ctp->ct_envparent;		/*		 * If our cursor has a parent txn, we need to use it too.		 */		if (dbc_ctp->ct_activep != &dbc_ctp->ct_active)			new_ctp->ct_activep = dbc_ctp->ct_activep;		__dbsrv_settimeout(new_ctp, dbc_ctp->ct_timeout);		__dbsrv_active(new_ctp);		replyp->dbcidcl_id = new_ctp->ct_id;	} else		__dbclear_ctp(new_ctp);	replyp->status = ret;	return;}/* BEGIN __dbc_get_proc */extern "C" void__dbc_get_proc(	long dbccl_id,	u_int32_t keydlen,	u_int32_t keydoff,	u_int32_t keyulen,	u_int32_t keyflags,	void *keydata,	u_int32_t keysize,	u_int32_t datadlen,	u_int32_t datadoff,	u_int32_t dataulen,	u_int32_t dataflags,	void *datadata,	u_int32_t datasize,	u_int32_t flags,	__dbc_get_reply *replyp,	int * freep)/* END __dbc_get_proc */{	Dbc *dbc;	DbEnv *dbenv;	ct_entry *dbc_ctp;	int key_alloc, bulk_alloc, ret;	void *tmpdata;	ACTIVATE_CTP(dbc_ctp, dbccl_id, CT_CURSOR);	dbc = (Dbc *)dbc_ctp->ct_anyp;	dbenv = DbEnv::get_DbEnv(((DBC *)dbc)->dbp->dbenv);	*freep = 0;	bulk_alloc = 0;	/* Set up key and data */	Dbt key(keydata, keysize);	key.set_dlen(keydlen);	key.set_ulen(keyulen);	key.set_doff(keydoff);	key.set_flags(DB_DBT_MALLOC | (keyflags & DB_DBT_PARTIAL));	Dbt data(datadata, datasize);	data.set_dlen(datadlen);	data.set_ulen(dataulen);	data.set_doff(datadoff);	dataflags &= DB_DBT_PARTIAL;	if (flags & DB_MULTIPLE || flags & DB_MULTIPLE_KEY) {		if (data.get_data() == NULL) {			ret = __os_umalloc(dbenv->get_DB_ENV(),			    data.get_ulen(), &tmpdata);			if (ret != 0)				goto err;			data.set_data(tmpdata);			bulk_alloc = 1;		}		dataflags |= DB_DBT_USERMEM;	} else		dataflags |= DB_DBT_MALLOC;	data.set_flags(dataflags);	/* Got all our stuff, now do the get */	ret = dbc->get(&key, &data, flags);	/*	 * Otherwise just status.	 */	if (ret == 0) {		/*		 * XXX		 * We need to xdr_free whatever we are returning, next time.		 * However, DB does not allocate a new key if one was given		 * and we'd be free'ing up space allocated in the request.		 * So, allocate a new key/data pointer if it is the same one		 * as in the request.		 */		*freep = 1;		/*		 * Key		 */		key_alloc = 0;		if (key.get_data() == keydata) {			ret = __os_umalloc(dbenv->get_DB_ENV(), key.get_size(),			    &replyp->keydata.keydata_val);			if (ret != 0) {				__os_ufree(dbenv->get_DB_ENV(), key.get_data());				__os_ufree(dbenv->get_DB_ENV(), data.get_data());				goto err;			}			key_alloc = 1;			memcpy(replyp->keydata.keydata_val, key.get_data(), key.get_size());		} else			replyp->keydata.keydata_val = (char *)key.get_data();		replyp->keydata.keydata_len = key.get_size();		/*		 * Data		 */		if (data.get_data() == datadata) {			ret = __os_umalloc(dbenv->get_DB_ENV(), data.get_size(),			    &replyp->datadata.datadata_val);			if (ret != 0) {				__os_ufree(dbenv->get_DB_ENV(), key.get_data());				__os_ufree(dbenv->get_DB_ENV(), data.get_data());				if (key_alloc)					__os_ufree(dbenv->get_DB_ENV(),					    replyp->keydata.keydata_val);				goto err;			}			memcpy(replyp->datadata.datadata_val, data.get_data(),			    data.get_size());		} else			replyp->datadata.datadata_val = (char *)data.get_data();		replyp->datadata.datadata_len = data.get_size();	} else {err:		replyp->keydata.keydata_val = NULL;		replyp->keydata.keydata_len = 0;		replyp->datadata.datadata_val = NULL;		replyp->datadata.datadata_len = 0;		*freep = 0;		if (bulk_alloc)			__os_ufree(dbenv->get_DB_ENV(), data.get_data());	}	replyp->status = ret;	return;}/* BEGIN __dbc_pget_proc */extern "C" void__dbc_pget_proc(	long dbccl_id,	u_int32_t skeydlen,	u_int32_t skeydoff,	u_int32_t skeyulen,	u_int32_t skeyflags,	void *skeydata,	u_int32_t skeysize,	u_int32_t pkeydlen,	u_int32_t pkeydoff,	u_int32_t pkeyulen,	u_int32_t pkeyflags,	void *pkeydata,	u_int32_t pkeysize,	u_int32_t datadlen,	u_int32_t datadoff,	u_int32_t dataulen,	u_int32_t dataflags,	void *datadata,	u_int32_t datasize,	u_int32_t flags,	__dbc_pget_reply *replyp,	int * freep)/* END __dbc_pget_proc */{	Dbc *dbc;	DbEnv *dbenv;	ct_entry *dbc_ctp;	int key_alloc, ret;	ACTIVATE_CTP(dbc_ctp, dbccl_id, CT_CURSOR);	dbc = (Dbc *)dbc_ctp->ct_anyp;	dbenv = DbEnv::get_DbEnv(((DBC *)dbc)->dbp->dbenv);	*freep = 0;	/*	 * Ignore memory related flags on server.	 */	/* Set up key and data */	Dbt skey(skeydata, skeysize);	skey.set_dlen(skeydlen);	skey.set_ulen(skeyulen);	skey.set_doff(skeydoff);	skey.set_flags(DB_DBT_MALLOC | (skeyflags & DB_DBT_PARTIAL));	Dbt pkey(pkeydata, pkeysize);	pkey.set_dlen(pkeydlen);	pkey.set_ulen(pkeyulen);	pkey.set_doff(pkeydoff);	pkey.set_flags(DB_DBT_MALLOC | (pkeyflags & DB_DBT_PARTIAL));	Dbt data(datadata, datasize);	data.set_dlen(datadlen);	data.set_ulen(dataulen);	data.set_doff(datadoff);	data.set_flags(DB_DBT_MALLOC | (dataflags & DB_DBT_PARTIAL));	/* Got all our stuff, now do the get */	ret = dbc->pget(&skey, &pkey, &data, flags);	/*	 * Otherwise just status.	 */	if (ret == 0) {		/*		 * XXX		 * We need to xdr_free whatever we are returning, next time.		 * However, DB does not allocate a new key if one was given		 * and we'd be free'ing up space allocated in the request.		 * So, allocate a new key/data pointer if it is the same one		 * as in the request.		 */		*freep = 1;		/*		 * Key		 */		key_alloc = 0;		if (skey.get_data() == skeydata) {			ret = __os_umalloc(dbenv->get_DB_ENV(),			    skey.get_size(), &replyp->skeydata.skeydata_val);			if (ret != 0) {				__os_ufree(dbenv->get_DB_ENV(), skey.get_data());				__os_ufree(dbenv->get_DB_ENV(), pkey.get_data());				__os_ufree(dbenv->get_DB_ENV(), data.get_data());				goto err;			}			key_alloc = 1;			memcpy(replyp->skeydata.skeydata_val, skey.get_data(),			    skey.get_size());		} else			replyp->skeydata.skeydata_val = (char *)skey.get_data();		replyp->skeydata.skeydata_len = skey.get_size();		/*		 * Primary key		 */		if (pkey.get_data() == pkeydata) {			ret = __os_umalloc(dbenv->get_DB_ENV(),			     pkey.get_size(), &replyp->pkeydata.pkeydata_val);			if (ret != 0) {				__os_ufree(dbenv->get_DB_ENV(), skey.get_data());				__os_ufree(dbenv->get_DB_ENV(), pkey.get_data());				__os_ufree(dbenv->get_DB_ENV(), data.get_data());				if (key_alloc)					__os_ufree(dbenv->get_DB_ENV(),					    replyp->skeydata.skeydata_val);				goto err;			}			/*			 * We can set it to 2, because they cannot send the			 * pkey over without sending the skey over too.			 * So if they did send a pkey, they must have sent			 * the skey as well.			 */			key_alloc = 2;			memcpy(replyp->pkeydata.pkeydata_val, pkey.get_data(),			    pkey.get_size());		} else			replyp->pkeydata.pkeydata_val = (char *)pkey.get_data();		replyp->pkeydata.pkeydata_len = pkey.get_size();		/*		 * Data		 */		if (data.get_data() == datadata) {			ret = __os_umalloc(dbenv->get_DB_ENV(),			     data.get_size(), &replyp->datadata.datadata_val);			if (ret != 0) {				__os_ufree(dbenv->get_DB_ENV(), skey.get_data());				__os_ufree(dbenv->get_DB_ENV(), pkey.get_data());				__os_ufree(dbenv->get_DB_ENV(), data.get_data());				/*				 * If key_alloc is 1, just skey needs to be				 * freed, if key_alloc is 2, both skey and pkey				 * need to be freed.				 */				if (key_alloc--)					__os_ufree(dbenv->get_DB_ENV(),					    replyp->skeydata.skeydata_val);				if (key_alloc)					__os_ufree(dbenv->get_DB_ENV(),					    replyp->pkeydata.pkeydata_val);				goto err;			}			memcpy(replyp->datadata.datadata_val, data.get_data(),			    data.get_size());		} else			replyp->datadata.datadata_val = (char *)data.get_data();		replyp->datadata.datadata_len = data.get_size();	} else {err:		replyp->skeydata.skeydata_val = NULL;		replyp->skeydata.skeydata_len = 0;		replyp->pkeydata.pkeydata_val = NULL;		replyp->pkeydata.pkeydata_len = 0;		replyp->datadata.datadata_val = NULL;		replyp->datadata.datadata_len = 0;		*freep = 0;	}	replyp->status = ret;	return;}/* BEGIN __dbc_put_proc */extern "C" void__dbc_put_proc(	long dbccl_id,	u_int32_t keydlen,	u_int32_t keydoff,	u_int32_t keyulen,	u_int32_t keyflags,	void *keydata,	u_int32_t keysize,	u_int32_t datadlen,	u_int32_t datadoff,	u_int32_t dataulen,	u_int32_t dataflags,	void *datadata,	u_int32_t datasize,	u_int32_t flags,	__dbc_put_reply *replyp,	int * freep)/* END __dbc_put_proc */{	Db *dbp;	Dbc *dbc;	ct_entry *dbc_ctp;	int ret;	DBTYPE dbtype;	ACTIVATE_CTP(dbc_ctp, dbccl_id, CT_CURSOR);	dbc = (Dbc *)dbc_ctp->ct_anyp;	dbp = (Db *)dbc_ctp->ct_parent->ct_anyp;	/* Set up key and data */	Dbt key(keydata, keysize);	key.set_dlen(keydlen);	key.set_ulen(keyulen);	key.set_doff(keydoff);	/*	 * Ignore memory related flags on server.	 */	key.set_flags(DB_DBT_MALLOC | (keyflags & DB_DBT_PARTIAL));	Dbt data(datadata, datasize);	data.set_dlen(datadlen);	data.set_ulen(dataulen);	data.set_doff(datadoff);	data.set_flags(dataflags);	/* Got all our stuff, now do the put */	ret = dbc->put(&key, &data, flags);	*freep = 0;	replyp->keydata.keydata_val = NULL;	replyp->keydata.keydata_len = 0;	if (ret == 0 && (flags == DB_AFTER || flags == DB_BEFORE)) {		ret = dbp->get_type(&dbtype);		if (ret == 0 && dbtype == DB_RECNO) {			/*			 * We need to xdr_free whatever we are returning, next time.			 */			replyp->keydata.keydata_val = (char *)key.get_data();			replyp->keydata.keydata_len = key.get_size();		}	}	replyp->status = ret;	return;}#endif /* HAVE_RPC */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲黄色免费网站| 91美女片黄在线观看| 日本不卡高清视频| 丝袜美腿一区二区三区| 日韩福利电影在线| 日韩精品1区2区3区| 日本在线不卡视频| 麻豆成人综合网| 久久99国产精品麻豆| 国产一区二区女| 福利91精品一区二区三区| 成人国产亚洲欧美成人综合网| 成人激情图片网| 在线区一区二视频| 91精品国产手机| 欧美va天堂va视频va在线| 国产午夜精品久久久久久免费视| 国产亚洲精品精华液| 中文字幕中文在线不卡住| 亚洲精品免费播放| 日韩精品乱码免费| 国产一区二区不卡在线| av网站免费线看精品| 91久久免费观看| 制服丝袜成人动漫| 久久一日本道色综合| 1区2区3区国产精品| 一区二区三区**美女毛片| 日韩精品电影在线观看| 国产乱码精品一区二区三| 99麻豆久久久国产精品免费优播| 在线观看国产一区二区| 欧美一区二区三区啪啪| 国产日本一区二区| 亚洲精品成人天堂一二三| 免费一级片91| 成人97人人超碰人人99| 欧美日韩亚洲综合一区二区三区| 欧美一区二区三区四区视频| 国产日韩欧美激情| 亚洲成av人片在线观看无码| 国产又粗又猛又爽又黄91精品| 不卡的av在线播放| 欧美一二三四区在线| 国产精品免费丝袜| 偷拍一区二区三区四区| 粉嫩欧美一区二区三区高清影视| 91精彩视频在线观看| 欧美大片一区二区| 亚洲日本乱码在线观看| 麻豆91在线播放免费| 91在线视频网址| 精品伦理精品一区| 一区二区欧美视频| 国产不卡高清在线观看视频| 欧美亚男人的天堂| 国产日韩成人精品| 日本v片在线高清不卡在线观看| 从欧美一区二区三区| 欧美一区三区二区| 成人免费在线播放视频| 六月婷婷色综合| 欧美综合一区二区| 日本一区二区三区高清不卡| 亚洲va在线va天堂| 91亚洲精品久久久蜜桃网站| 欧美精品一区二区三区高清aⅴ | 日本精品一区二区三区四区的功能| 欧美高清视频不卡网| 国产精品大尺度| 黄页视频在线91| 欧美日韩一区二区三区在线看| 国产欧美日韩中文久久| 日韩av中文字幕一区二区三区 | www精品美女久久久tv| 一区二区三区美女| 成人av手机在线观看| 久久网这里都是精品| 日日夜夜免费精品| 欧美在线视频日韩| 亚洲日本免费电影| 不卡的av电影| 国产人成亚洲第一网站在线播放| 美女www一区二区| 欧美浪妇xxxx高跟鞋交| 亚洲精品国产精华液| 成人99免费视频| 国产精品色哟哟| 国产99久久久久| 久久精品视频免费| 精品夜夜嗨av一区二区三区| 欧美一区二区在线免费播放| 亚洲电影激情视频网站| 色哟哟国产精品免费观看| 国产精品成人一区二区三区夜夜夜| 国产成人日日夜夜| 国产清纯在线一区二区www| 韩国在线一区二区| 久久久综合精品| 久久国产综合精品| 精品国产乱子伦一区| 免费在线观看精品| 精品久久久久久久久久久久久久久久久| 日韩影院精彩在线| 日韩三级视频在线看| 奇米影视一区二区三区小说| 91精品国产综合久久久久久| 亚洲成人综合网站| 717成人午夜免费福利电影| 亚洲第一会所有码转帖| 欧美精品免费视频| 美女免费视频一区| 久久午夜电影网| 成人福利视频网站| 亚洲欧美日韩在线播放| 在线亚洲欧美专区二区| 亚洲国产一区二区a毛片| 欧美精品日韩综合在线| 男男视频亚洲欧美| 久久久久久免费| 成人免费视频免费观看| 自拍偷拍亚洲综合| 欧美日韩高清在线| 人人超碰91尤物精品国产| 精品国产伦一区二区三区免费| 国产精品一区二区黑丝 | 成人精品国产免费网站| 《视频一区视频二区| 色成人在线视频| 日韩福利电影在线| 国产日韩欧美精品在线| 91啦中文在线观看| 日韩av一级片| 国产日产亚洲精品系列| 欧洲av在线精品| 久久成人精品无人区| 中文字幕亚洲精品在线观看| 欧美天堂一区二区三区| 蜜臀a∨国产成人精品| 国产精品私人影院| 欧美日韩一二区| 国产伦精品一区二区三区视频青涩 | 337p粉嫩大胆噜噜噜噜噜91av| 丁香天五香天堂综合| 一区二区三区色| 欧美xxxxx牲另类人与| proumb性欧美在线观看| 午夜欧美视频在线观看| 国产三级一区二区三区| 亚洲天堂网中文字| 日韩一区二区视频| 91在线视频网址| 久久99国内精品| 一区二区三区高清在线| 26uuu亚洲| 欧美日韩精品欧美日韩精品一综合| 国产一区二区视频在线| 亚洲精品视频在线看| 精品日韩一区二区| 色88888久久久久久影院按摩 | 91美女在线观看| 麻豆专区一区二区三区四区五区| 国产精品狼人久久影院观看方式| 91精品国产一区二区三区香蕉| 成人av网址在线| 极品美女销魂一区二区三区| 一区二区三区国产精华| 国产欧美日韩卡一| 日韩美女天天操| 欧美三级日本三级少妇99| 国产69精品久久久久毛片| 日本aⅴ亚洲精品中文乱码| 亚洲欧美视频在线观看| 亚洲精品一区二区三区99| 欧美日韩久久久一区| 99精品国产91久久久久久| 国产在线视频精品一区| 午夜在线成人av| 一区二区三区中文在线观看| 欧美激情在线免费观看| 精品久久人人做人人爽| 欧美精品在线视频| 欧美在线观看视频在线| 91色九色蝌蚪| 成人黄色777网| 国产精品一区二区在线播放 | 欧美性色综合网| 97精品视频在线观看自产线路二| 国产剧情一区在线| 极品少妇xxxx偷拍精品少妇| 天天亚洲美女在线视频| 洋洋成人永久网站入口| 亚洲天堂av一区| 中文字幕在线免费不卡| 亚洲国产激情av| 中文字幕巨乱亚洲| 久久精品视频免费观看| 久久亚区不卡日本| 精品国产人成亚洲区| 日韩三级高清在线|