本文整理汇总了C++中checkerr函数的典型用法代码示例。如果您正苦于以下问题:C++ checkerr函数的具体用法?C++ checkerr怎么用?C++ checkerr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了checkerr函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FC_FUNC_
int FC_FUNC_(oraclesim_getanahead, ORACLESIM_GETANAHEAD)
(OracleDbConnection **fdbconnid, int *net) {
OracleDbConnection *dbconnid = *fdbconnid;
int ostatid;
float oqs, oqp;
double olon, olat;
char oname[NAMELEN], onet[NAMELEN];
/* Preparo l'estrazione anagrafica */
checkerr(dbconnid, OCIStmtPrepare(dbconnid->stmthp, dbconnid->errhp,
(text *) anaquery,
(ub4) strlen(anaquery),
(ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT));
checkerr(dbconnid, OCIBindByName(dbconnid->stmthp, &dbconnid->bnd1p,
dbconnid->errhp, (text *) ":net",
-1, (dvoid *) net,
(sword) sizeof(*net), SQLT_INT, (dvoid *) NULL,
(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0,
OCI_DEFAULT));
/* definisco l'uscita */
anadefine(dbconnid, &ostatid, &olon, &olat, &oqs, &oqp, oname, onet, NAMELEN);
return countrows(dbconnid);
}
示例2: puts
char
*checksys(char *isvuln)
{
struct utsname name;
if(uname(&name) < 0) {
puts("uname failed");
}
isvuln = malloc(6);
if(!isvuln) {
perror("malloc");
_exit(EXIT_FAILURE);
}
if((name.sysname == NULL) || (strlen(name.sysname) < 1) || (strlen(name.sysname) > 5)) {
checkerr(isvuln);
}
memcpy(isvuln, name.sysname, strlen(name.sysname));
if(!isvuln) {
checkerr(isvuln);
}
return(isvuln);
}
示例3: db_getn
static int db_getn(int type, int keytype)
{
int n = 0;
char table[20];
char *sql = "select count(*) as n from %s where type=%d";
OraText row[4000];
OCIDefine *dnp = NULL;
strcpy(table, (type == TYPE_KILL)? "kill_key" : "monitor_key");
sprintf((char*)row, sql,table, keytype);
checkerr(OCIHandleAlloc((dvoid *)myenvhp, (dvoid **)&mystmthp,
OCI_HTYPE_STMT, (size_t)0, (dvoid **)0), myerrhp);
checkerr(OCIStmtPrepare(mystmthp, myerrhp, row, (ub4)strlen((char*)row),
(ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT), myerrhp);
checkerr(OCIStmtExecute(mysvchp, mystmthp, myerrhp, (ub4)0, (ub4)0,
(CONST OCISnapshot *)0, (OCISnapshot *)0,
OCI_DEFAULT), myerrhp);
if ((status = OCIDefineByPos(mystmthp, &dnp, myerrhp, 1, &n, sizeof(n),
SQLT_INT, (dvoid *)0, 0, (ub2 *)0,
OCI_DEFAULT))) {
checkerr(status, myerrhp);
return -1;
}
if(OCIStmtFetch2(mystmthp, myerrhp, 1, OCI_FETCH_NEXT, 0,
OCI_DEFAULT) != OCI_NO_DATA) {
return n;
}
return 0;
}
示例4: main
int main(int argc, char ** argv) {
// TOOD use getprotoent?
int s = socket(PF_INET, SOCK_DGRAM, 0);
checkerr(s, "Opening socket");
struct sockaddr_in gateaddr;
bzero((char *)&gateaddr, sizeof(gateaddr));
gateaddr.sin_family = AF_INET;
// COMMAND LINE CFG
gateaddr.sin_port = htons(30012);
// COMMAND LINE CFG
gateaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
int r = connect(s, (struct sockaddr *)&gateaddr, sizeof(gateaddr));
struct timeval tv;
tv.tv_sec = 3;
//setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, (struct timeval * )&tv, sizeof(tv));
checkerr(r, "Connecting");
const char * msg = "OPEN!";
r = send(s, msg, strlen(msg), 0);
checkerr(r, "Writing");
char buf[2048];
// can get EAGAIN, connection refused here.
ssize_t r2 = recv(s, buf, 2048, 0);
checkerr(r2, "Reading");
printf("Read: %d\n", r2);
}
示例5: countrows
int countrows(OracleDbConnection *dbconnid) {
int nr;
sword status;
/* Lancio l'estrazione */
if ((status = OCIStmtExecute(dbconnid->svchp, dbconnid->stmthp, dbconnid->errhp,
(ub4) 0, (ub4) 0,
(CONST OCISnapshot *) NULL, (OCISnapshot *) NULL,
OCI_STMT_SCROLLABLE_READONLY)) != OCI_SUCCESS) {
if (status != OCI_NO_DATA) {
checkerr(dbconnid, status);
return -1;
}
}
/* Vado all'ultima riga e chiedo dove sono */
if ((status=OCIStmtFetch2(dbconnid->stmthp, dbconnid->errhp, (ub4) 1,
(ub2) OCI_FETCH_LAST, (sb4) 0,
(ub4) OCI_DEFAULT)) != OCI_SUCCESS) {
if (status != OCI_NO_DATA) {
checkerr(dbconnid, status);
return -1;
}
}
if (checkerr(dbconnid, OCIAttrGet(dbconnid->stmthp, OCI_HTYPE_STMT, &nr, 0,
OCI_ATTR_CURRENT_POSITION, dbconnid->errhp))
!= OCI_SUCCESS) return -1;
return nr;
}
示例6: multirow_fetch_from_emp
/* This select empno, ename from myemp table or empview view
- can take different SQL texts
*/
void multirow_fetch_from_emp(OCISvcCtx *svchp, OCIStmt * stmthp, OCIError *errhp,
thdata *pthdata)
{
#define ARRAY_SIZE 3
OCIDefine *defhp1, *defhp2;
ub4 empid[ARRAY_SIZE];
sb2 empid_ind[ARRAY_SIZE];
char lname[ARRAY_SIZE][30];
sb2 lname_ind[ARRAY_SIZE];
ub2 lname_len[ARRAY_SIZE];
boolean done=FALSE;
ub4 rows = 0;
ub4 i =0;
sb4 status;
/* Define output buffers */
checkerr(errhp, OCIDefineByPos (stmthp, &defhp1, errhp, 1,
(void *) empid, (sb4) sizeof(empid[0]),
SQLT_INT, (void *) empid_ind,
(ub2 *) NULL, (ub2 *) NULL, OCI_DEFAULT));
checkerr(errhp, OCIDefineByPos (stmthp, &defhp2, errhp, 2,
(void *) lname[0], (sb4) sizeof(lname[0]),
SQLT_STR, (void *) lname_ind,
(ub2 *) lname_len, (ub2 *) NULL,
OCI_DEFAULT));
/* Fetch ARRAY_SIZE rows at a time */
while (!done)
{
status = OCIStmtFetch(stmthp, errhp, ARRAY_SIZE,
OCI_FETCH_NEXT, OCI_DEFAULT);
if ((status == OCI_SUCCESS) || (status == OCI_NO_DATA))
{
if (status == OCI_SUCCESS)
rows = ARRAY_SIZE; /* all rows asked for were obtained */
else if (status == OCI_NO_DATA)
{
/* might have gotten fewer rows */
checkerr(errhp, OCIAttrGet(stmthp, OCI_HTYPE_STMT,
&rows, (ub4 *) NULL,
OCI_ATTR_ROWS_FETCHED, errhp));
done = TRUE;
}
for (i=0; i < rows; i++)
{
if (verbose_flag)
printf ("empno=%d, ename=%s\n", empid[i], lname[i]);
}
}
else
{
checkerr (errhp, status);
done =TRUE;
}
}
}
示例7: main
int main(int argc, char *argv[])
{
OCIError *errhp = NULL;
printf("stage4: Demonstrating OCI statement caching \n");
/* parse command line options */
parse_options(argc, argv);
checkenv(envhp, OCIEnvCreate(&envhp, /* returned env handle */
OCI_THREADED, /* initialization modes */
NULL, NULL, NULL, NULL, /* callbacks, context */
(size_t) 0, /* extra memory size: optional */
(void **) NULL)); /* returned extra memory */
/* allocate error handle
* note: for OCIHandleAlloc(), we always check error on environment handle
*/
checkenv(envhp, OCIHandleAlloc(envhp, /* environment handle */
(void **) &errhp, /* returned err handle */
OCI_HTYPE_ERROR,/*type of handle to allocate*/
(size_t) 0, /* extra memory size: optional */
(void **) NULL)); /* returned extra memory */
create_session_pool(envhp, errhp, &poolName, &poolNameLen);
/* allocate auth handle
* note: for OCIHandleAlloc(), we check error on environment handle
*/
checkenv(envhp, OCIHandleAlloc(envhp,
(void **) &authp, OCI_HTYPE_AUTHINFO,
(size_t) 0, (void **) NULL));
/* setup username and password */
checkerr(errhp, OCIAttrSet(authp, OCI_HTYPE_AUTHINFO,
(void *) username, strlen((char *)username),
OCI_ATTR_USERNAME, errhp));
checkerr(errhp, OCIAttrSet(authp, OCI_HTYPE_AUTHINFO,
apppassword, strlen((char *) apppassword),
OCI_ATTR_PASSWORD, errhp));
spawn_threads(envhp, errhp, &thread_function);
/* Destroy the session pool */
OCISessionPoolDestroy(spoolhp, errhp, OCI_DEFAULT);
/* clean up */
if (authp)
OCIHandleFree(authp, OCI_HTYPE_AUTHINFO);
if (spoolhp)
OCIHandleFree(spoolhp, OCI_HTYPE_SPOOL);
if (errhp)
OCIHandleFree(errhp, OCI_HTYPE_ERROR);
if (envhp)
OCIHandleFree(envhp, OCI_HTYPE_ENV);
return 0;
}
示例8: BfileLobClose_proc
void BfileLobClose_proc(OCILobLocator *Bfile_loc, OCIEnv *envhp,
OCIError *errhp, OCISvcCtx *svchp, OCIStmt *stmthp)
{
printf ("----------- OCILobOpen Demo --------------\n");
checkerr(errhp, OCILobOpen(svchp, errhp, Bfile_loc,
(ub1) OCI_LOB_READONLY));
checkerr(errhp, OCILobClose(svchp, errhp, Bfile_loc));
}
示例9: init
ocisession::ocisession(const char * connect_str, const int connect_str_len,
const char * user_name, const int user_name_len,
const char * password, const int password_len)
{
intf_ret r;
OCIAuthInfo *authp = NULL;
init();
r.handle = envhp;
// allocate error handle
checkenv(&r, OCIHandleAlloc((OCIEnv*)envhp, /* environment handle */
(void **) &_errhp, /* returned err handle */
OCI_HTYPE_ERROR, /* typ of handle to allocate */
(size_t) 0, /* optional extra memory size */
(void **) NULL)); /* returned extra memeory */
if(r.fn_ret != SUCCESS) {
REMOTE_LOG("failed OCISessionGet %s\n", r.gerrbuf);
throw r;
}
// allocate auth handle
checkenv(&r, OCIHandleAlloc((OCIEnv*)envhp,
(void**)&authp, OCI_HTYPE_AUTHINFO,
(size_t)0, (void **) NULL));
r.handle = _errhp;
// usrname and password
checkerr(&r, OCIAttrSet(authp, OCI_HTYPE_AUTHINFO,
(void*) user_name, user_name_len,
OCI_ATTR_USERNAME, (OCIError *)_errhp));
checkerr(&r, OCIAttrSet(authp, OCI_HTYPE_AUTHINFO,
(void*) password, password_len,
OCI_ATTR_PASSWORD, (OCIError *)_errhp));
/* get the database connection */
checkerr(&r, OCISessionGet((OCIEnv*)envhp, (OCIError *)_errhp,
(OCISvcCtx**)&_svchp, /* returned database connection */
authp, /* initialized authentication handle */
(OraText *) connect_str, connect_str_len,/* connect string */
NULL, 0, NULL, NULL, NULL, /* session tagging parameters: optional */
OCI_SESSGET_STMTCACHE)); /* modes */
if(r.fn_ret != SUCCESS) {
REMOTE_LOG("failed OCISessionGet %s\n", r.gerrbuf);
throw r;
}
(void) OCIHandleFree(authp, OCI_HTYPE_AUTHINFO);
REMOTE_LOG("got session %p\n", _svchp);
_sessions.push_back(this);
}
示例10: gettab
int gettab(OracleDbConnection *dbconnid, int *var, int nvar, int *net) {
sword status;
checkerr(dbconnid,
OCIStmtPrepare(dbconnid->stmthp, dbconnid->errhp,
(text *) tabquery,
(ub4) strlen(tabquery),
(ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT));
/* checkerr(dbconnid,
OCIBindByName(dbconnid->stmthp, &dbconnid->bnd1p,
dbconnid->errhp, (text *) ":var",
-1, (dvoid *) var,
(sword) sizeof(*var), SQLT_INT, (dvoid *) NULL,
(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0,
OCI_DEFAULT)); */
checkerr(dbconnid,
OCIBindByName(dbconnid->stmthp, &dbconnid->bnd1p,
dbconnid->errhp, (text *) ":net",
-1, (dvoid *) net,
(sword) sizeof(*net), SQLT_INT, (dvoid *) NULL,
(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0,
OCI_DEFAULT));
checkerr(dbconnid,
OCIDefineByPos(dbconnid->stmthp, &dbconnid->defn1p,
dbconnid->errhp, 1,
(dvoid *) dbconnid->table, TABLEN, SQLT_STR,
(dvoid *) NULL,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT));
/* Lancio l'estrazione */
if ((status = OCIStmtExecute(dbconnid->svchp, dbconnid->stmthp, dbconnid->errhp,
(ub4) 0, (ub4) 0,
(CONST OCISnapshot *) NULL, (OCISnapshot *) NULL,
OCI_STMT_SCROLLABLE_READONLY)) != OCI_SUCCESS) {
if (status != OCI_NO_DATA) {
checkerr(dbconnid, status);
return -1;
}
}
/* Prendo la prima riga di dati */
if ((status = OCIStmtFetch2(dbconnid->stmthp, dbconnid->errhp, (ub4) 1,
(ub2) OCI_FETCH_NEXT, (sb4) 0,
(ub4) OCI_DEFAULT)) != OCI_SUCCESS) {
if (status == OCI_NO_DATA) {
return -1;
} else {
checkerr(dbconnid, status);
return -1;
}
}
return 0;
}
示例11: locatorIsEqual_proc
void locatorIsEqual_proc(OCILobLocator *Lob_loc1, OCILobLocator *Lob_loc2,
OCIEnv *envhp, OCIError *errhp, OCISvcCtx *svchp,
OCIStmt *stmthp)
{
boolean isEqual;
OCILobLocator *Lob_loc3;
printf ("----------- OCILobIsEqual Demo --------------\n");
/* Call OCI to see if the two locators are Equal: */
printf (" check if Lob1 and Lob2 are Equal.\n");
checkerr (errhp, OCILobIsEqual(envhp, Lob_loc1, Lob_loc2, &isEqual));
if (isEqual)
{
/* ... The LOB locators are Equal: */
printf(" Lob Locators are equal.\n");
}
else
{
/* ... The LOB locators are not Equal: */
printf(" Lob Locators are NOT Equal.\n");
}
(void)OCIDescriptorAlloc((void *) envhp, (void **) &Lob_loc3,
(ub4)OCI_DTYPE_LOB, (size_t) 0, (void **) 0);
/* Assign Lob_loc1 to Lob_loc2 thereby saving a copy of the value of the LOB
at this point in time: */
printf(" assign the src locator to dest locator\n");
checkerr (errhp, OCILobLocatorAssign(svchp, errhp, Lob_loc1, &Lob_loc3));
/* When you write some data to the LOB through Lob_loc1, Lob_loc2 will not
see the newly written data whereas Lob_loc1 will see the new data: */
/* Call OCI to see if the two locators are Equal: */
printf (" check if Lob1 and Lob3 are Equal.\n");
checkerr (errhp, OCILobIsEqual(envhp, Lob_loc1, Lob_loc3, &isEqual));
if (isEqual)
{
/* ... The LOB locators are Equal: */
printf(" Lob Locators are equal.\n");
}
else
{
/* ... The LOB locators are not Equal: */
printf(" Lob Locators are NOT Equal.\n");
}
OCIDescriptorFree((void *)Lob_loc3, (ub4)OCI_DTYPE_LOB);
return;
}
示例12: OCIInitialize
// Begins an Oracle session.
void OraSession::startSession(const std::string& sConnectAsUser, const std::string& sConnectAsUserPwd,
const std::string& sConnectDBLink)
{
dvoid* tmp;
sword status;
status = OCIInitialize((ub4) OCI_THREADED | OCI_OBJECT, 0, 0, 0, 0);
status = OCIHandleAlloc((dvoid *)NULL, (dvoid **)&ociHandles.envhp, (ub4)OCI_HTYPE_ENV, 52, (dvoid **)&tmp);
status = OCIEnvInit(&ociHandles.envhp, (ub4)OCI_DEFAULT, 21, (dvoid **)&tmp);
status = OCIHandleAlloc((dvoid *)ociHandles.envhp, (dvoid **)&ociHandles.errhp, (ub4)OCI_HTYPE_ERROR, 52, (dvoid **)&tmp);
status = OCIHandleAlloc((dvoid *)ociHandles.envhp, (dvoid **)&ociHandles.srvhp, (ub4)OCI_HTYPE_SERVER, 52, (dvoid **)&tmp);
if(checkerr(&ociHandles, OCIServerAttach(ociHandles.srvhp, ociHandles.errhp, (text *)sConnectDBLink.c_str(),
(sb4)sConnectDBLink.length(), (ub4)OCI_DEFAULT)) != 0) {
std::cout << "OCIServerAttach failed." << std::endl << std::endl;
return;
}
status = OCIHandleAlloc((dvoid *)ociHandles.envhp, (dvoid **)&ociHandles.svchp,
(ub4)OCI_HTYPE_SVCCTX, 52, (dvoid **)&tmp);
/* set attribute server context in the service context */
status = OCIAttrSet((dvoid *) ociHandles.svchp, (ub4)OCI_HTYPE_SVCCTX, (dvoid *)ociHandles.srvhp, (ub4)0,
(ub4)OCI_ATTR_SERVER, (OCIError *)ociHandles.errhp);
/* allocate a user context handle */
status = OCIHandleAlloc((dvoid *)ociHandles.envhp, (dvoid **)&ociHandles.usrhp, (ub4)OCI_HTYPE_SESSION, (size_t)0,
(dvoid **)0);
status = OCIAttrSet((dvoid *)ociHandles.usrhp, (ub4)OCI_HTYPE_SESSION, (dvoid *)sConnectAsUser.c_str(),
(ub4)sConnectAsUser.length(), OCI_ATTR_USERNAME, ociHandles.errhp);
status = OCIAttrSet((dvoid *)ociHandles.usrhp, (ub4)OCI_HTYPE_SESSION, (dvoid *)sConnectAsUserPwd.c_str(),
(ub4)sConnectAsUserPwd.length(), OCI_ATTR_PASSWORD, ociHandles.errhp);
if(checkerr(&ociHandles, OCISessionBegin(ociHandles.svchp, ociHandles.errhp, ociHandles.usrhp, OCI_CRED_RDBMS, OCI_DEFAULT)) != 0) {
std::cout << "OCISessionBegin failed." << std::endl << std::endl;
return;
}
status = OCIAttrSet((dvoid *)ociHandles.svchp, (ub4)OCI_HTYPE_SVCCTX, (dvoid *)ociHandles.usrhp, (ub4)0, OCI_ATTR_SESSION,
ociHandles.errhp);
status = OCIHandleAlloc((dvoid *)ociHandles.envhp, (dvoid **)&ociHandles.stmthp, (ub4)OCI_HTYPE_STMT, 50, (dvoid **)&tmp);
connectedUser = sConnectAsUser;
}
示例13: checkerr
void
net·runtime_pollWait(PollDesc* pd, intgo mode, intgo err)
{
#line 112 "/tmp/bindist907131767/go/src/pkg/runtime/netpoll.goc"
runtime·lock(pd);
err = checkerr(pd, mode);
if(err)
goto ret;
netpollblock(pd, mode);
err = checkerr(pd, mode);
ret:
runtime·unlock(pd);
FLUSH(&err);
}
示例14: time
int COracleDB::oracle_rollback( void )
{
ORACLE_HANDLE* handle = ( ORACLE_HANDLE* ) _handle;
int status = 0;
int errcode = 0;
time_t t1 = time( NULL );
while ( ( status = OCITransRollback( handle->svchp, handle->errhp, 0 ) ) == OCI_STILL_EXECUTING ) {
if ( time( NULL ) - t1 > 60 ) {
// timeout
errcode = DB_ERR_TIMEOUT;
break;
}
my_usleep();
}
if ( errcode != DB_ERR_TIMEOUT && status ) {
errcode = checkerr( handle->errhp, status, _errinfo );
if ( errcode == 1012 || errcode == 12705 || errcode == 3113 || errcode == 3114 || errcode == 12541
|| errcode == 12547 ) {
errcode = DB_ERR_NOCONNECTION;
} else {
errcode = DB_ERR_FAILED;
}
}
return errcode;
}
示例15: GetHandles
int GetHandles(OCIExtProcContext* extProcCtx, Handles_t* handles)
{
/* store the ext-proc context in the handles struct */
handles->extProcCtx=extProcCtx;
/* Get OCI handles */
if (checkerr(handles, OCIExtProcGetEnv(extProcCtx, &handles->envhp, &handles->svchp, &handles->errhp)))
return -1;
/* get the user handle */
if (checkerr(handles, OCIAttrGet((dvoid*)handles->svchp, (ub4)OCI_HTYPE_SVCCTX, (dvoid*)&handles->usrhp, (ub4*)0,
(ub4)OCI_ATTR_SESSION, handles->errhp)))
return -1;
return 0;
}