From 09a47596f398c827c03b9d72231e7ed1e06b2c6d Mon Sep 17 00:00:00 2001 From: deffpuzzl Date: Thu, 14 Jun 2018 09:42:35 +0800 Subject: [PATCH] use conditstr instead stringset, add pop exception --- demo/click.c | 4 ++-- demo/count.c | 4 ++-- demo/delete.c | 4 ++-- demo/extreme.c | 2 +- demo/group.c | 2 +- demo/press_demo.c | 4 ++-- demo/query.c | 4 ++-- src/queue.c | 10 +++++++++- 8 files changed, 21 insertions(+), 13 deletions(-) diff --git a/demo/click.c b/demo/click.c index 6f5d95a..9b4f7a4 100644 --- a/demo/click.c +++ b/demo/click.c @@ -28,8 +28,8 @@ int main(int argc, char *argv[]) } conditinit(pstSavm, stUser, TBL_USER_INFO); // 绑定变量 - stringset(pstSavm, stUser, user_type, "1"); // 查询条件赋值 - stringset(pstSavm, stUser, user_no, "20180223"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_type, "1"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_no, "20180223"); // 查询条件赋值 if(RC_SUCC != lClick(pstSavm, (void *)&uTime)) { diff --git a/demo/count.c b/demo/count.c index 3cff4a4..626454c 100644 --- a/demo/count.c +++ b/demo/count.c @@ -28,8 +28,8 @@ int main(int argc, char *argv[]) } conditinit(pstSavm, stUser, TBL_USER_INFO); // 绑定变量 - stringset(pstSavm, stUser, user_type, "1"); // 查询条件赋值 - stringset(pstSavm, stUser, user_no, "20180224"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_type, "1"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_no, "20180224"); // 查询条件赋值 if(RC_SUCC != lCount(pstSavm, (void *)&lRow)) { diff --git a/demo/delete.c b/demo/delete.c index f5a13f8..c91e805 100644 --- a/demo/delete.c +++ b/demo/delete.c @@ -27,8 +27,8 @@ int main(int argc, char *argv[]) } conditinit(pstSavm, stUser, TBL_USER_INFO); // 绑定变量 - stringset(pstSavm, stUser, user_type, "1"); // 查询条件赋值 - stringset(pstSavm, stUser, user_no, "20180223"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_type, "1"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_no, "20180223"); // 查询条件赋值 if(RC_SUCC != lDelete(pstSavm)) { diff --git a/demo/extreme.c b/demo/extreme.c index 91bec84..8b40bf4 100644 --- a/demo/extreme.c +++ b/demo/extreme.c @@ -27,7 +27,7 @@ int main(int argc, char *argv[]) } conditinit(pstSavm, stUser, TBL_USER_INFO); // 绑定变量 - stringset(pstSavm, stUser, user_type, "1"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_type, "1"); // 查询条件赋值 decorate(pstSavm, dbUser, user_nm, MATCH_MIN); decorate(pstSavm, dbUser, user_phone, MATCH_MAX); diff --git a/demo/group.c b/demo/group.c index 3d9a94b..0e6bd10 100644 --- a/demo/group.c +++ b/demo/group.c @@ -28,7 +28,7 @@ int main(int argc, char *argv[]) } conditinit(pstSavm, stUser, TBL_USER_INFO); // 绑定变量 - stringset(pstSavm, stUser, user_type, "1"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_type, "1"); // 查询条件赋值 decorate(pstSavm, dbUser, user_nm, GROUP_BY | ORDER_ASC); decorate(pstSavm, dbUser, user_phone, GROUP_BY | ORDER_DESC); diff --git a/demo/press_demo.c b/demo/press_demo.c index 06c5249..5204e80 100644 --- a/demo/press_demo.c +++ b/demo/press_demo.c @@ -28,8 +28,8 @@ long lSelectUserInfo() } conditinit(pstSavm, stUser, TBL_USER_INFO); // 绑定变量 - stringset(pstSavm, stUser, user_type, "1"); // 查询条件赋值 - stringset(pstSavm, stUser, user_no, "20180223"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_type, "1"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_no, "20180223"); // 查询条件赋值 for(i = 0; i < 2000000; i ++) { diff --git a/demo/query.c b/demo/query.c index 34a3aed..64c09ad 100644 --- a/demo/query.c +++ b/demo/query.c @@ -28,8 +28,8 @@ int main(int argc, char *argv[]) } conditinit(pstSavm, stUser, TBL_USER_INFO); // 绑定变量 - stringset(pstSavm, stUser, user_type, "1"); // 查询条件赋值 - stringset(pstSavm, stUser, user_no, "20180223"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_type, "1"); // 查询条件赋值 + conditstr(pstSavm, stUser, user_no, "20180223"); // 查询条件赋值 if(RC_SUCC != lQuery(pstSavm, &lRow, (void **)&pstUser)) { diff --git a/src/queue.c b/src/queue.c index 3c4f50a..2ee771d 100644 --- a/src/queue.c +++ b/src/queue.c @@ -82,7 +82,7 @@ long _lPush(SATvm *pstSavm, void *pvAddr) *************************************************************************************************/ long _lPop(SATvm *pstSavm, void *pvAddr, void *pvOut, Timesp *tm) { - int nPos; + int nPos, i = 0; SHTruck *ps = NULL; extern int errno; TblDef *pv = (TblDef *)pvAddr; @@ -126,7 +126,15 @@ retry: ps = (PSHTruck)pGetNode(pvAddr, pv->m_lData + pv->m_lTruck * nPos); if(IS_TRUCK_NULL(ps)) + { + if((++ i) > pv->m_lMaxRow) + { + pstSavm->m_lErrno = SVR_EXCEPTION; + return RC_FAIL; + } + goto retry; + } memcpy(pvOut, ps->m_pvData, pv->m_lReSize); SET_DATA_TRUCK(ps, DATA_TRUCK_NULL);