SQLRETURN complete_rowset( CLHSTMT cl_statement, int complete_to ) { int row; SQLRETURN ret; if ( complete_to == 0 ) { row = cl_statement -> rowset_count; do { ret = fetch_row( cl_statement, row, -1 ); if ( SQL_SUCCEEDED( ret )) { row ++; } else if ( ret == SQL_NO_DATA ) { cl_statement -> rowset_complete = 1; ret = SQL_SUCCESS; break; } } while ( SQL_SUCCEEDED( ret )); } else { row = cl_statement -> rowset_count; do { ret = fetch_row( cl_statement, row, -1 ); if ( SQL_SUCCEEDED( ret )) { row ++; } else if ( ret == SQL_NO_DATA ) { cl_statement -> rowset_complete = 1; ret = SQL_SUCCESS; break; } } while ( SQL_SUCCEEDED( ret ) && row < complete_to ); } return ret; }
int test_fetch_role() { MYSQL_RES *res; MYSQL_ROW row; char sql[256]; int len; char *p; uint64_t effect; len = sprintf(sql, "insert into DBRoleInfo set id = 8686, profession = 1, level = 1, name = "); p = sql + len; *p++ = '\''; p += escape_string(p, "jacktang", 8); *p++ = '\''; query(sql, 1, &effect); sprintf(sql, "select id, name, profession, level, attribute, bag from DBRoleInfo where id = %lu", 8686l); res = query(sql, 1, NULL); row = fetch_row(res); row[0] = row[0]; free_query(res); return (0); }
/* each {...} */ static VALUE each(VALUE obj) { VALUE row; check_free(obj); while ((row = fetch_row(obj)) != Qnil) rb_yield(row); return obj; }
int main(void) { int len; char *lenstr,poststr[512]; char *player_id, *server_id; int can_share = 1; init_db((char *)"127.0.0.1", 3306, (char *)"pay", (char *)"root", (char *)"123456"); printf("Content-Type:text/html\n\n"); lenstr=getenv("CONTENT_LENGTH"); if(lenstr == NULL) { printf("<DIV STYLE=\"COLOR:RED\">Errorarameters should be entered!</DIV>\n"); return (0); } len=atoi(lenstr) + 1; if (len >= 512) return (0); fgets(poststr,len,stdin); parse_post_data(poststr, len); server_id = get_value((char *)"server_id"); player_id = get_value((char *)"player_id"); if (!server_id || !player_id) return (0); MYSQL_RES *res = NULL; MYSQL_ROW row; char sql[256]; sprintf(sql, "select last_share_time, share_times, pay_times from share where server_id = %s and player_id = %s", server_id, player_id); res = query(sql, 1, NULL); if (!res) { send_no_record(); goto done; } row = fetch_row(res); if (!row) { send_no_record(); goto done; } if (!check_can_share(row)) { can_share = 0; } printf("[%d, %s, %s]", can_share, row[1], row[2]); done: if (res) free_query(res); fflush(stdout); close_db(); return 0; }
int fetch_role_handle(PROTO_HEAD *head, uint16_t fd, int len) { // int i; MYSQL_RES *res; MYSQL_ROW row; char sql[256]; FETCH_ROLE_DATA_RESPONSE *resp; char sendbuf[sizeof(PROTO_HEAD) + sizeof(*resp)]; FETCH_ROLE_DATA_REQUEST *request = (FETCH_ROLE_DATA_REQUEST *)head->data; resp = (FETCH_ROLE_DATA_RESPONSE *)(&sendbuf[sizeof(PROTO_HEAD)]); head = (PROTO_HEAD *)(&sendbuf[0]); resp->info.name[0] = '\0'; if (len != sizeof(PROTO_HEAD) + sizeof(FETCH_ROLE_DATA_REQUEST)) { log4c_category_log(mycat, LOG4C_PRIORITY_INFO, "%s: len[%d] with msg[%u] server[?] fail\n", __FUNCTION__, head->len, head->msg_id); return (-1); } sprintf(sql, "select id, name, profession, level, scene_id, pos_x, pos_y from DBRoleInfo where id = %lu", request->id); res = query(sql, 1, NULL); if (!res) { log4c_category_log(mycat, LOG4C_PRIORITY_INFO, "%s: can not fetch role %lu\n", __FUNCTION__, request->id); resp->result = -1; goto done; } row = fetch_row(res); if (!row) { log4c_category_log(mycat, LOG4C_PRIORITY_INFO, "%s: can not fetch role %lu\n", __FUNCTION__, request->id); resp->result = -1; goto done; } resp->result = 0; strcpy(resp->info.name, row[1]); resp->info.profession = atoi(row[2]); resp->info.level = atoi(row[3]); resp->info.scene_id = atoi(row[4]); resp->info.pos.pos_x = atoi(row[5]); resp->info.pos.pos_y = atoi(row[6]); // resp->bag.max_thing_num = 10; done: if (res) free_query(res); resp->id = request->id; head->len = htons(sizeof(sendbuf)); head->msg_id = htons(SERVER_PROTO_FETCH_ROLE_RESPONSE); send_one_msg(fd, head); // send(fd, sendbuf, sizeof(sendbuf), 0); return (0); }
static SQLRETURN fetch_rowset( CLHSTMT cl_statement, int rows_in_set, int row_offset, int *fetched_rows, SQLUSMALLINT *row_status_array, SQLULEN *rows_fetched_ptr ) { SQLRETURN ret; int row_count = 0; int row; for ( row = 0; row < rows_in_set; row ++ ) { ret = fetch_row( cl_statement, row + row_offset, row ); if ( row_status_array ) { row_status_array[ row ] = ret; } if ( SQL_SUCCEEDED( ret )) { row_count ++; } else { break; } ret = SQL_SUCCESS; } if ( ret == SQL_NO_DATA && row > 0 ) { *fetched_rows = row; if ( rows_fetched_ptr ) { *rows_fetched_ptr = row_count; } ret = SQL_FETCH_PART_ROWSET; } if ( SQL_SUCCEEDED( ret )) { *fetched_rows = row; } if ( rows_fetched_ptr ) { *rows_fetched_ptr = row_count; } return ret; }
long Query::get_count(const std::string& sql) { long l = 0; if (get_result(sql)) { if (fetch_row()) l = getval(); free_result(); } return l; }
bool CMySql::fetch_assoc(){ bool res = fetch_row(); if(res){ m_assoc->Clear(); int cnt = num_fields(); for(int i = 0; i < cnt; i++){ m_assoc->add(assoc_str[i] + "=" + STR(Row[i])); } } return res; }
double Query::get_num(const std::string& sql) { double l = 0; if (get_result(sql)) { if (fetch_row()) { l = getnum(); } free_result(); } return l; }
const char *Query::get_string(const std::string& sql) { bool found = false; m_tmpstr = ""; if (get_result(sql)) { if (fetch_row()) { m_tmpstr = getstr(); found = true; } free_result(); } return m_tmpstr.c_str(); // %! changed from 1.0 which didn't return NULL on failed query }
int fetch_results(sqlite3_stmt *stmt, mxArray **results) { struct structlist result_list; structlist_init(&result_list); int i, num_columns = sqlite3_column_count(stmt); mxArray *row = mxCreateStructMatrix(1, 1, 0, NULL); for (i = 0; i < num_columns; i++) { const char *name = sqlite3_column_name(stmt, i); mxAddField(row, name); } int res; while (res = fetch_row(stmt, num_columns, &row), res == SQLITE_ROW) { structlist_add(&result_list, row); } *results = structlist_collapse(&result_list); return res; }
int main(int argc, char *argv[]) { int len; char *lenstr,poststr[512]; int server_id; int player_id; char *content; const int page_size = 20; //每页20条 int total_page; //页数 int cur_page; //请求的页数 int total_count; //总共的记录数 int start_pos = 0; server_id = atoi(basename(argv[0])); /* len = 0; for (;;) { if (len != 0) break; else sleep(1); } */ init_db((char *)"127.0.0.1", 3306, (char *)"sanguo", (char *)"root", (char *)"123456"); printf("Content-Type:text/html\n\n"); lenstr=getenv("CONTENT_LENGTH"); if(lenstr == NULL) { printf("<DIV STYLE=\"COLOR:RED\">Errorarameters should be entered!</DIV>\n"); return (0); } len=atoi(lenstr) + 1; if (len >= 512) return (0); fgets(poststr,len,stdin); parse_post_data(poststr, len); player_id = atoi(get_value((char *)"userid")); cur_page = atoi(get_value((char *)"page")) - 1; if (cur_page < 0) cur_page = 0; start_pos = cur_page * page_size; // server_id = 15; // player_id = 36; char sql[512]; MYSQL_RES *res = NULL; MYSQL_ROW row; sprintf(sql, "select * from question where server_id = %d and player_id = %d", server_id, player_id); res = stored_query(sql); total_count = mysql_num_rows(res); total_page = total_count / page_size + 1; printf("[{\"tp\":%d,\"pn\":%d}", total_page, cur_page + 1); mysql_data_seek(res, start_pos); for (int i = start_pos; i < total_count; ++i) { row = fetch_row(res); printf(",{\"qc\":\"%s\",\"rc\":\"%s\",\"qs\":%s,\"qt\":\"%s\",\"rt\":\"%s\",\"rn\":\"%s\",\"qtp\":%s}", row[2], row[6] ? row[6] : "", row[5], row[3], row[7] ? row[7] : "", row[8] ? row[8] : "", row[4]); if (!row) break; } printf("]"); free_query(res); done: fflush(stdout); close_db(); return 0; }
int main(void) { int len; char *lenstr,poststr[512]; char *player_id, *server_id, *token; setenv("http_proxy", "127.0.0.1:8087", 1); setenv("https_proxy", "127.0.0.1:8087", 1); init_db((char *)"127.0.0.1", 3306, (char *)"pay", (char *)"root", (char *)"123456"); printf("Content-Type:text/html\n\n"); /* lenstr=getenv("CONTENT_LENGTH"); if(lenstr == NULL) { printf("<DIV STYLE=\"COLOR:RED\">Errorarameters should be entered!</DIV>\n"); return (0); } len=atoi(lenstr) + 1; if (len >= 512) return (0); fgets(poststr,len,stdin); parse_post_data(poststr, len); len = 10; for (; len == 10;) sleep(2); */ lenstr = getenv("QUERY_STRING"); if(lenstr == NULL) { printf("<DIV STYLE=\"COLOR:RED\">Errorarameters should be entered!</DIV>\n"); return (0); } len = strlen(lenstr) + 1; parse_post_data(lenstr, len); server_id = get_value((char *)"server_id"); player_id = get_value((char *)"player_id"); token = get_value((char *)"token"); if (!server_id || !player_id || !token) return (0); // server_id = "15"; // player_id = "15"; // token = "AAACEdEose0cBAKedvUNeBVZAlpbsjUo4r2LHmR3K56gGFbJ4Gwp6PWVEp5wte4X4IdLK5YHziYabuXHCZCoXhzqmSZCKrsiZCLgOb1yjddnI2MyiZBmFK"; g_data.server_id = server_id; g_data.player_id = player_id; g_data.times = 0; MYSQL_RES *res = NULL; MYSQL_ROW row; char sql[256]; sprintf(sql, "select last_share_time, share_times from share where server_id = \"%s\" and player_id = \"%s\"", server_id, player_id); res = query(sql, 1, NULL); if (!res) { send_facebook_share(token, share_msg[0], &g_data); goto done; } row = fetch_row(res); if (!row) { send_facebook_share(token, share_msg[0], &g_data); goto done; } if (!check_can_share(row)) { send_fail(); goto done; } g_data.times = atoi(row[1]); free_query(res); res = NULL; send_facebook_share(token, share_msg[g_data.times], &g_data); // ret = atoi(row[0]); done: if (res) free_query(res); fflush(stdout); close_db(); return 0; }
mwIndex compute(std::vector<mwIndex>& set, sparsevec& yout) { // allocate residuals for each level std::vector< std::vector< double > > resid(N); std::vector< double > y; // this is defined earlier, but outside the scope of compute(), so I redefine it here std::vector<double> psivec(N+1,0.); psivec[N] = 1; for (lindex k = 1; k <= N ; k++){ psivec[N-k] = psivec[N-k+1]*t/(double)(N-k+1) + 1; } // psivec[k] = psi_k(t) double sumresid = 0.; // the queue stores the entries for the next time step std::queue< lindex > Q; // set the initial residual, add to the queue for (size_t i=0; i<set.size(); ++i) { mwIndex ri = set[i]; lindex li = fetch_index(ri); //rij = value in entry ri of the input vector double rij = 1.; sumresid += rij*psivec[0];; grow_vector_to_index(resid[0], li, 0.); resid[0][li] += rij; Q.push( li ); } for (lindex j = 0; j < N; ++j) { // STEP 0: determine how many entries are in the queue // and determine what the residual tolerance is to // push size_t qsize = Q.size(); double pushtol = pushcoeff[j]/(double)qsize; // STEP 1: process each of the next elements in the // queue and add them to the next level for (size_t qi = 0; qi < qsize; ++qi) { lindex i = Q.front(); Q.pop(); double rij = resid[j][i]; if (rij < pushtol) { // skip to the next iteration of the loop continue; } // STEP 2: fetch the row fetch_row(i); // find the degree std::pair<lindex, lindex> offsets = lp[i]; double degofi = (double)(offsets.second - offsets.first); // update the solution grow_vector_to_index(y, i, 0.); y[i] += rij; resid[j][i] = 0.; sumresid -= rij*psivec[j];; double rijs = t*rij/(double)(j+1); double ajv = 1./degofi; double update = rijs*ajv; if (j == N-1) { // this is the terminal case, and so we add the column of A // directly to the solution vector y for (lindex nzi = offsets.first; nzi < offsets.second; ++nzi) { lindex v = lneigh[nzi]; grow_vector_to_index(y, v, 0.); y[v] += update; } npush += degofi; } else { // this is the interior case, and so we add the column of A // to the residual at the next time step. for (lindex nzi = offsets.first; nzi < offsets.second; ++nzi) { lindex v = lneigh[nzi]; grow_vector_to_index(resid[j+1], v, 0.); double reold = resid[j+1][v]; double renew = reold + update; sumresid += update*psivec[j+1];; resid[j+1][v] = renew; // For this implementation, we need all // non-zero residuals in the queue. if (reold == 0.) { Q.push( v ); } } npush += degofi; } if (maxpush > 0 && npush >= maxpush) { break; } if (sumresid < eps*exp(t)) { break; } // terminate when Q is empty, i.e. we've pushed all r(i,j) > exp(t)*eps*/(N*n*psi_j(t)) } if (sumresid < eps*exp(t)) { break; } if (maxpush > 0 && npush >= maxpush) { break; } } // end 'for' // store the output back in the solution vector y for (lindex i=0; i<y.size(); ++i) { if (y[i] > 0) { yout.map[gmap[i]] = y[i]; } } return npush; }
int main(void) { int len; char *lenstr,poststr[512]; char *player_id, *server_id, *pay_id; int n_pay_id; int n_pay_times; int can_share = 1; uint64_t effect = 0; MYSQL_RES *res = NULL; MYSQL_ROW row; char sql[256]; /* len = 10; for (;;) { if (len != 10) break; sleep(2); } */ init_db((char *)"127.0.0.1", 3306, (char *)"pay", (char *)"root", (char *)"123456"); printf("Content-Type:text/html\n\n"); lenstr=getenv("CONTENT_LENGTH"); if(lenstr == NULL) { printf("<DIV STYLE=\"COLOR:RED\">Errorarameters should be entered!</DIV>\n"); return (0); } len=atoi(lenstr) + 1; if (len >= 512) return (0); fgets(poststr,len,stdin); parse_post_data(poststr, len); server_id = get_value((char *)"server_id"); player_id = get_value((char *)"player_id"); pay_id = get_value((char *)"pay_id"); if (!server_id || !player_id || !pay_id) return (0); sprintf(sql, "select share_times, pay_times from share where server_id = %s and player_id = %s", server_id, player_id); res = query(sql, 1, NULL); if (!res) { send_fail(); goto done; } row = fetch_row(res); if (!row) { send_fail(); goto done; } n_pay_id = atoi(pay_id); if (!check_can_get_share_pay(row, n_pay_id)) { send_fail(); goto done; } n_pay_times = atoi(row[1]); n_pay_times |= (1 << n_pay_id); free_query(res); res = NULL; sprintf(sql, "update `share` set `pay_times` = %d where `server_id` = %s and `player_id` = %s", n_pay_times, server_id, player_id); query(sql, 1, &effect); if (effect != 1) { send_fail(); goto done; } send_success(n_pay_id); send_charge_gold_req(atoi(player_id), get_gold[n_pay_id], 0, (char *)"share reward", (char *)"127.0.0.1", (char *)"3008"); done: if (res) free_query(res); fflush(stdout); close_db(); return 0; }