static int ln_addField_Syslog(char *name, struct json_object *field, es_str_t **str) { int r; const char *value; int needComma = 0; struct json_object *obj; int i; assert(field != NULL); assert(str != NULL); assert(*str != NULL); CHKR(es_addBuf(str, name, strlen(name))); CHKR(es_addBuf(str, "=\"", 2)); switch(json_object_get_type(field)) { case json_type_array: for (i = json_object_array_length(field) - 1; i >= 0; i--) { if(needComma) es_addChar(str, ','); else needComma = 1; CHKN(obj = json_object_array_get_idx(field, i)); CHKN(value = json_object_get_string(obj)); CHKR(ln_addValue_Syslog(value, str)); } break; case json_type_string: case json_type_int: CHKN(value = json_object_get_string(field)); CHKR(ln_addValue_Syslog(value, str)); break; case json_type_null: case json_type_boolean: case json_type_double: case json_type_object: CHKR(es_addBuf(str, "***unsupported type***", sizeof("***unsupported type***")-1)); break; default: CHKR(es_addBuf(str, "***OBJECT***", sizeof("***OBJECT***")-1)); } CHKR(es_addChar(str, '\"')); r = 0; done: return r; }
static void check_ipd_params(void) { void *ptr, *ptr2; SQLHDESC desc; SQLINTEGER ind; CHKGetStmtAttr(SQL_ATTR_PARAMS_PROCESSED_PTR, &ptr, sizeof(ptr), NULL, "S"); /* get IPD */ CHKGetStmtAttr(SQL_ATTR_IMP_PARAM_DESC, &desc, sizeof(desc), &ind, "S"); CHKR(SQLGetDescField, (desc, 0, SQL_DESC_ROWS_PROCESSED_PTR, &ptr2, sizeof(ptr2), &ind), "S"); if (ptr != ptr2) { fprintf(stderr, "IPD inconsistency ptr %p ptr2 %p\n", ptr, ptr2); exit(1); } }
int odbc_connect(void) { char command[512]; if (odbc_read_login_info()) exit(1); if (odbc_use_version3) { CHKAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &odbc_env, "S"); SQLSetEnvAttr(odbc_env, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) (SQL_OV_ODBC3), SQL_IS_UINTEGER); CHKAllocHandle(SQL_HANDLE_DBC, odbc_env, &odbc_conn, "S"); } else { CHKAllocEnv(&odbc_env, "S"); CHKAllocConnect(&odbc_conn, "S"); } printf("odbctest\n--------\n\n"); printf("connection parameters:\nserver: '%s'\nuser: '******'\npassword: '******'\ndatabase: '%s'\n", odbc_server, odbc_user, "????" /* odbc_password */ , odbc_database); if (odbc_set_conn_attr) (*odbc_set_conn_attr)(); CHKR(SQLConnect, (odbc_conn, (SQLCHAR *) odbc_server, SQL_NTS, (SQLCHAR *) odbc_user, SQL_NTS, (SQLCHAR *) odbc_password, SQL_NTS), "SI"); CHKAllocStmt(&odbc_stmt, "S"); sprintf(command, "use %s", odbc_database); printf("%s\n", command); CHKExecDirect((SQLCHAR *) command, SQL_NTS, "SI"); #ifndef TDS_NO_DM /* unixODBC seems to require it */ SQLMoreResults(odbc_stmt); #endif return 0; }
static void normal_connect(void) { CHKR(SQLConnect, (odbc_conn, T(odbc_server), SQL_NTS, T(odbc_user), SQL_NTS, T(odbc_password), SQL_NTS), "SI"); }
int ee_addField_JSON(struct ee_field *field, es_str_t **str) { int r; struct ee_valnode *valnode; assert(field != NULL);assert(field->objID== ObjID_FIELD); assert(str != NULL); assert(*str != NULL); #ifdef NO_EMPTY_FIELDS if(field->nVals == 0) { r = 1; goto done; } else if(field->nVals == 1 && es_strlen(field->val->val.str) == 0) { r = 1; goto done; } #endif CHKR(es_addChar(str, '\"')); CHKR(es_addStr(str, field->name)); if(ee_ctxIsEncUltraCompact(field->ctx)) { CHKR(es_addBuf(str, "\":", 2)); } else { CHKR(es_addBuf(str, "\": ", 3)); } if(field->nVals == 0) { if(ee_ctxIsEncUltraCompact(field->ctx)) { CHKR(es_addChar(str, '\"')); } else { CHKR(es_addBuf(str, "\"\"", 2)); } } else if(field->nVals == 1) { CHKR(ee_addValue_JSON(field->val, str)); } else { /* we have multiple values --> array */ CHKR(es_addChar(str, '[')); CHKR(ee_addValue_JSON(field->val, str)); for(valnode = field->valroot ; valnode != NULL ; valnode = valnode->next) { CHKR(es_addChar(str, ',')); CHKR(ee_addValue_JSON(valnode->val, str)); } CHKR(es_addChar(str, ']')); } r = 0; done: return r; }