Exemplo n.º 1
0
void SQLI_cache_purge(struct db_cache *queue[], int index, struct insert_data *idata)
{
  struct db_cache *LastElemCommitted = NULL;
  time_t start;
  int j, stop, ret;

  for (j = 0, stop = 0; (!stop) && preprocess_funcs[j]; j++)
    stop = preprocess_funcs[j](queue, &index, j); 
  if (config.what_to_count & COUNT_CLASS)
    sql_invalidate_shadow_entries(queue, &index);
  idata->ten = index;

  if (config.debug) {
    Log(LOG_DEBUG, "( %s/%s ) *** Purging cache - START ***\n", config.name, config.type);
    start = time(NULL);
  }

  /* We check for variable substitution in SQL table */ 
  if (idata->dyn_table) {
    char tmpbuf[LONGLONGSRVBUFLEN];
    time_t stamp = idata->new_basetime ? idata->new_basetime : idata->basetime;

    strftime_same(insert_clause, LONGSRVBUFLEN, tmpbuf, &stamp);
    strftime_same(update_clause, LONGSRVBUFLEN, tmpbuf, &stamp);
    strftime_same(lock_clause, LONGSRVBUFLEN, tmpbuf, &stamp);

    if (config.sql_table_schema) sql_create_table(bed.p, &stamp);
  }
  // strncat(update_clause, set_clause, SPACELEFT(update_clause));

  (*sqlfunc_cbr.lock)(bed.p); 

  for (idata->current_queue_elem = 0; idata->current_queue_elem < index; idata->current_queue_elem++) {
    if (queue[idata->current_queue_elem]->valid)
      sql_query(&bed, queue[idata->current_queue_elem], idata);
    if (queue[idata->current_queue_elem]->valid == SQL_CACHE_COMMITTED)
      LastElemCommitted = queue[idata->current_queue_elem];
  }

  /* multi-value INSERT query: wrap-up */
  if (idata->mv.buffer_elem_num) {
    idata->mv.last_queue_elem = TRUE;
    sql_query(&bed, LastElemCommitted, idata);
  }
  
  /* rewinding stuff */
  (*sqlfunc_cbr.unlock)(&bed);
  if (b.fail) Log(LOG_ALERT, "ALERT ( %s/%s ): recovery for SQLite3 daemon failed.\n", config.name, config.type);
  
  if (config.debug) {
    idata->elap_time = time(NULL)-start; 
    Log(LOG_DEBUG, "( %s/%s ) *** Purging cache - END (QN: %u, ET: %u) ***\n", 
		    config.name, config.type, idata->qn, idata->elap_time); 
  }

  if (config.sql_trigger_exec) {
    if (!config.debug) idata->elap_time = time(NULL)-start;
    SQL_SetENV_child(idata);
  }
}
Exemplo n.º 2
0
/* this is called when a new server is introduced,
we just care for the first server when services connect to the hub 
so that we create the bots and join them to their channels
*/
void ev_bs_new_server(IRC_Server* nserver, IRC_Server *from)
{
  static int already_loaded = 0;
  MYSQL_RES *res;
  MYSQL_ROW row;

  if (already_loaded)
    return;
	
  res = sql_query("SELECT nick,username,publichost,realname,bid FROM botserv");

  while((row = sql_next_row(res)))
  {
    MYSQL_RES *res_chan;
    MYSQL_ROW row_chan;
    IRC_User *user;
    u_int32_t bid = atoi(row[4]);
    user = irc_CreateLocalUser(row[0], row[1], row[2], row[2], row[3], "+r");
    mod_do_event(e_bot_introduce, &bid, NULL);
    irc_AddUMsgEvent(user, "\1PING", bs_ctcp_ping); /* CTCP PING reply */
    res_chan = sql_query("SELECT c.name FROM chanserv c, botserv_chans bc "
      "WHERE bc.bid=%d AND c.scid=bc.scid", bid);
    while((row_chan = sql_next_row(res_chan)))
    {
      IRC_Chan *chan = irc_ChanJoin(user, row_chan[0], 0);
      irc_ChanMode(bsu.u, chan, "+ao %s %s", user->nick, user->nick);
    }
    sql_free(res_chan);
  }

  sql_free(res);
	
  already_loaded = -1;
}
Exemplo n.º 3
0
int ADAK_SQL::LOCK_ROW (const QString id_column_name,const QString table_name, const QString where_info)
{
    switch (p_db_driver) {
    case SQLITE  :
        return ADAK_OK;

    case PSQL    :
    {
        SQL_QUERY sql_query      ( this );
        sql_query.PREPARE_SELECT ( QString ("SELECT pg_try_advisory_lock("+id_column_name+") FROM " + table_name + " WHERE " + where_info));
        if(sql_query.SELECT() EQ 0 ) {
            return ADAK_FAIL;
        }
        sql_query.NEXT();
        if ( sql_query.VALUE(0).toBool() EQ false ) {

            return ADAK_FAIL;
        }
        return ADAK_OK;
    }

    case MYSQL   :
    {
        SQL_QUERY sql_query      ( this );
        sql_query.PREPARE_SELECT ( QString ("SELECT GET_LOCK(\""+table_name + "." + where_info+"\",2)"));
        if(sql_query.SELECT() EQ 0) {
            return ADAK_FAIL;
        }
        sql_query.NEXT();
        if ( sql_query.VALUE(0).toInt() EQ 0 ) {
            return ADAK_FAIL;
        }
        return ADAK_OK;
    }
    case MSSQL   :
    {
        // donen deger >= 0 sa locklanmistir aksi takdirde lock olmamistir.
        SQL_QUERY sql_query      ( this );
        sql_query.PREPARE_SELECT ( QString("sp_getapplock @Resource = '%1', @LockMode = 'Exclusive',@LockTimeout = 0,@LockOwner = 'Session'").arg(QString ("LOCK(\""+table_name + "." + where_info+"\",2)")) );
        if(sql_query.SELECT() EQ 0) {
            return ADAK_FAIL;
        }
        sql_query.NEXT();
        QString sql_query_value = sql_query.VALUE(0).toString();
        if ( sql_query.VALUE(0).toInt() EQ 0 ) {
            return ADAK_FAIL;
        }
        return ADAK_OK;
    }
    default      :
        return ADAK_OK;
        break;
    }
    return true;
}
Exemplo n.º 4
0
/*
 * Add a login entry to the utmp table.
 *
 * We log the time (seconds.microseconds), uid, username, ip address,
 * hostname and the session id that was assigned to this session.
 */
unsigned long long log_login(void)
{
	char *username;
	char *ip_addr;
	struct timespec login_at;
	struct utmp_info *ui;
	unsigned long long sid;
	unsigned int uid;
	MYSQL_RES *res;
	MYSQL_ROW row;
	pthread_t tid;
	pthread_attr_t attr;

	clock_gettime(CLOCK_REALTIME, &login_at);

	username = make_mysql_safe_string(get_var(qvars, "username"));
	ip_addr = make_mysql_safe_string(env_vars.remote_addr);
	res = sql_query("SELECT uid FROM passwd WHERE username = '******'",
			username);
	row = mysql_fetch_row(res);
	uid = strtoul(row[0], NULL, 10);
	mysql_free_result(res);

	/* We need to be sure a new sid isn't inserted here */
	sql_query("LOCK TABLES utmp WRITE");
	res = sql_query("SELECT IFNULL(MAX(sid), 0) FROM utmp");
	row = mysql_fetch_row(res);

	sid = strtoull(row[0], NULL, 10) + 1;

	/* Divide tv_nsec by 1000 to get a rough microseconds value */
	sql_query("INSERT INTO utmp VALUES (%ld.%06ld, %u, '%s', '%s', %d, "
			"'', %llu)",
			login_at.tv_sec, login_at.tv_nsec / NS_USEC,
			uid, username, ip_addr, env_vars.remote_port, sid);
	sql_query("UNLOCK TABLES");

	mysql_free_result(res);
	free(username);
	free(ip_addr);

	/*
	 * ui is free'd in the log_utmp_host thread as it will need to
	 * exist beyond the life of this function.
	 */
	ui = malloc(sizeof(struct utmp_info));
	snprintf(ui->ip, sizeof(ui->ip), "%s", env_vars.remote_addr);
	ui->sid = sid;
	pthread_attr_init(&attr);
	pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
	pthread_create(&tid, &attr, log_utmp_host, (void *)ui);
	pthread_attr_destroy(&attr);

	return sid;
}
Exemplo n.º 5
0
Character *load_player_by_id(Connection *conn, identifier_t charId)
{
    char buf[400];
    sql_stmt *stmt;
    db_begin_transaction();
    int len = sprintf(buf,
                      "select * from character join player on playerId=characterId where characterId=%"
                      PRId64,
                      charId);

    if (sql_query(buf, len, &stmt) != SQL_OK)
    {
        log_data("could not prepare sql statement");
        return 0;
    }
    Character *ch = new_char();
    ch->pc = new_player(conn);

    if (sql_step(stmt) != SQL_DONE)
    {
        load_player_columns(conn->account, ch, stmt);
    }

    if (sql_finalize(stmt) != SQL_OK)
    {
        log_data("unable to finalize statement");
    }
    load_char_objs(ch);
    load_char_affects(ch);
    db_end_transaction();
    return ch;

}
Exemplo n.º 6
0
Arquivo: sql.c Projeto: debfx/bareos
/*
 * Utility routine to do inserts
 * Returns: false on failure
 *          true on success
 */
bool InsertDB(const char *file, int line, JCR *jcr, B_DB *mdb, char *cmd)
{
   int num_rows;

   if (!sql_query(mdb, cmd)) {
      m_msg(file, line, &mdb->errmsg,  _("insert %s failed:\n%s\n"), cmd, sql_strerror(mdb));
      j_msg(file, line, jcr, M_FATAL, 0, "%s", mdb->errmsg);
      if (verbose) {
         j_msg(file, line, jcr, M_INFO, 0, "%s\n", cmd);
      }
      return false;
   }
   num_rows = sql_affected_rows(mdb);
   if (num_rows != 1) {
      char ed1[30];
      m_msg(file, line, &mdb->errmsg, _("Insertion problem: affected_rows=%s\n"),
         edit_uint64(num_rows, ed1));
      if (verbose) {
         j_msg(file, line, jcr, M_INFO, 0, "%s\n", cmd);
      }
      return false;
   }
   mdb->changes++;
   return true;
}
Exemplo n.º 7
0
void DMR_DEMIRBAS_KARTI::DELETE_RECORD ( int record_id )
{
    SQL_QUERY sql_query ( DB );

    sql_query.PREPARE_SELECT ( "dmr_demirbaslar","demirbas_kodu , demirbas_adi,fatura_id",
                               "demirbas_id = :demirbas_id");
    sql_query.SET_VALUE      ( ":demirbas_id" , record_id );

    if ( sql_query.SELECT() EQ 0 ) {
        return;
    }
    sql_query.NEXT();
    QString demirbas_kodu = sql_query.VALUE(0).toString();
    QString demirbas_adi  = sql_query.VALUE(1).toString();
    int     fatura_id     = sql_query.VALUE(2).toInt();

    if ( fatura_id > 0 ) {
        DMR_ENTEGRASYON_FISI_OLUSTUR(fatura_id , 0);
    }


    SQL_QUERY delete_query ( DB );

    delete_query.PREPARE_DELETE ( "dmr_demirbaslar","demirbas_id = :demirbas_id" );
    delete_query.SET_VALUE      ( ":demirbas_id" , record_id );
    delete_query.DELETE();

    GRP_KAYDIN_GRUPLARINI_SIL(E9_PROGRAMI,DEMIRBAS_GRUP_MODULU,record_id);

    QString log_detaylari = QObject::tr ( "Demirbaş Kodu / Adı : " );
    log_detaylari.append ( demirbas_kodu + "  " + demirbas_adi );

    E9_LOG_KAYDI_EKLE  ( DEMIRBAS_MODULU , LOG_DMR_DEMIRBASLAR , LOG_ISLEM_DELETE , log_detaylari );
}
Exemplo n.º 8
0
bool db_list_sql_query(JCR *jcr, B_DB *mdb, const char *query,
                       OUTPUT_FORMATTER *sendit, e_list_type type,
                       const char *description, bool verbose)
{
   bool retval = false;

   db_lock(mdb);
   if (!sql_query(mdb, query, QF_STORE_RESULT)) {
      Mmsg(mdb->errmsg, _("Query failed: %s\n"), sql_strerror(mdb));
      if (verbose) {
         sendit->decoration(mdb->errmsg);
      }
      goto bail_out;
   }

   sendit->array_start(description);
   list_result(jcr, mdb, sendit, type);
   sendit->array_end(description);
   sql_free_result(mdb);
   retval = true;

bail_out:
   db_unlock(mdb);
   return retval;
}
Exemplo n.º 9
0
QVector<CarInfo_tb>  DBService::getAllCarInfo_tb()
{
    QVector<CarInfo_tb> carInfos;
    if(!database.open())
    {
        qDebug()<<database.lastError();
        return QVector<CarInfo_tb>();
    }
    else
    {
        QString select_sql("select slm1,slm2,car_name from tb_car_info;");
        QSqlQuery sql_query(database);
        sql_query.prepare(select_sql);
        if(!sql_query.exec())
        {
            qDebug()<<sql_query.lastError();
        }
        else
        {
            while(sql_query.next())
            {

                CarInfo_tb carInfo;
                carInfo.slm1 = sql_query.value(0).toString();
                carInfo.slm2 = sql_query.value(1).toString();
                carInfo.carName = sql_query.value(2).toString();
                carInfo.isValid = true;
                carInfos.append(carInfo);
            }
        }
    }
    database.close();
    return carInfos;

}
Exemplo n.º 10
0
bool  DBService::insertCarNuMap_tb(const CarNuMap_tb& carNuMap)
{
    bool res = false;
    if(!database.open())
    {
        qDebug()<<database.lastError();
        return res;
    }
    else
    {

        QSqlQuery sql_query(database);
        QString update_sql("insert into tb_car_nu_map (car_nu_l,car_nu_g,car_name) values(?,?,?);");
        sql_query.prepare(update_sql);
        sql_query.addBindValue(QString::number(carNuMap.car_nu_l));
        sql_query.addBindValue(QString::number(carNuMap.car_nu_g));
        sql_query.addBindValue(carNuMap.carName);
        if(!sql_query.exec())
        {
            qDebug()<<sql_query.lastError();
        }
        else
        {
            qDebug()<<"inserted!";
            res = true;
        }
    }
    database.close();
    return res;
}
Exemplo n.º 11
0
void
gen_board_list(struct board_data *board, struct creature *ch)
{
    PGresult *res;
    char time_buf[30];
    int idx, count;
    time_t post_time;

    res =
        sql_query
        ("select extract(epoch from post_time), name, subject from board_messages where board='%s' order by idnum desc",
        tmp_sqlescape(board->name));
    count = PQntuples(res);
    if (count == 0) {
        send_to_char(ch, "This board is empty.\r\n");
        return;
    }

    acc_string_clear();
    acc_sprintf
        ("This is a bulletin board.  Usage: READ/REMOVE <messg #>, WRITE <header>\r\n%sThere %s %d message%s on the board.%s\r\n",
        CCGRN(ch, C_NRM), (count == 1) ? "is" : "are", count,
        (count == 1) ? "" : "s", CCNRM(ch, C_NRM));

    for (idx = 0; idx < count; idx++) {
        post_time = atol(PQgetvalue(res, idx, 0));
        strftime(time_buf, 30, "%b %e, %Y", localtime(&post_time));
        acc_sprintf("%s%-2d %s:%s %s %-12s :: %s\r\n",
            CCGRN(ch, C_NRM), count - idx, CCRED(ch, C_NRM), CCNRM(ch, C_NRM),
            time_buf, tmp_sprintf("(%s)", PQgetvalue(res, idx, 1)),
            PQgetvalue(res, idx, 2));
    }

    page_string(ch->desc, acc_get_string());
}
Exemplo n.º 12
0
void PRS_PERSONEL_AILE_FISI::DELETE_LINE(int record_id, int row_number)
{
    Q_UNUSED(record_id);

    int aile_bilgi_id = table_widget_aile_satirlari->item(row_number,ROW_ID_COLUMN)->text().toInt();

    SQL_QUERY sql_query (DB);

    sql_query.PREPARE_SELECT(" prs_personel_aile_uyeleri","adi_soyadi",
                             "aile_bilgi_id = :aile_bilgi_id");
    sql_query.SET_VALUE(":aile_bilgi_id" , aile_bilgi_id);

    if (sql_query.SELECT() EQ 0 ) {
        return;
    }
    sql_query.NEXT();
    QString adi_soyadi = sql_query.VALUE(0).toString();

    sql_query.PREPARE_DELETE("prs_personel_aile_uyeleri",  "aile_bilgi_id = :aile_bilgi_id");
    sql_query.SET_VALUE(":aile_bilgi_id", aile_bilgi_id );
    sql_query.DELETE();

    QString personel_adi_soyadi = line_edit_personel_adi->text();
    QString personel_sicil_no   = line_edit_personel_sicil_no->text();

    QString log_detaylari = "Aile Bireyi Ekleme";

    log_detaylari.append("\nPersonel Adı / Soyadı : " + personel_adi_soyadi +
                         "Sicil No : " + personel_sicil_no);
    log_detaylari.append("\nAile Bireyi : " + adi_soyadi);

    K9_LOG_KAYDI_EKLE ( PERSONEL_MODULU , LOG_PRS_PERSONEL , LOG_ISLEM_DELETE , log_detaylari);

}
Exemplo n.º 13
0
bool  DBService::exec(const QString& sql,bool vaccum)
{
//    qDebug()<<"exec sql : "<<sql;
    bool res = false;
    if(!open())
    {
        qDebug()<<database.lastError();
        return res;
    }
    else
    {
        QSqlQuery sql_query(database);
        sql_query.exec("PRAGMA foreign_keys = ON");
        if(!sql_query.exec(sql))
        {
            qDebug()<<sql_query.lastError();
        }
        else
        {
            qDebug()<<"inserted!";
            if(vaccum)
                vacuum();
//            sql_query.exec("VACUUM");
            res = true;
        }
    }
    close();
    return res;
}
Exemplo n.º 14
0
static void sql_lookup_pass(struct passdb_sql_request *sql_request)
{
	struct passdb_module *_module =
		sql_request->auth_request->passdb->passdb;
	struct sql_passdb_module *module = (struct sql_passdb_module *)_module;
	const char *query, *error;

	if (t_auth_request_var_expand(module->conn->set.password_query,
				      sql_request->auth_request,
				      passdb_sql_escape, &query, &error) <= 0) {
		auth_request_log_debug(sql_request->auth_request, AUTH_SUBSYS_DB,
			"Failed to expand password_query=%s: %s",
			module->conn->set.password_query, error);
		sql_request->callback.verify_plain(PASSDB_RESULT_INTERNAL_FAILURE,
						   sql_request->auth_request);
		return;
	}

	auth_request_log_debug(sql_request->auth_request, AUTH_SUBSYS_DB,
			       "query: %s", query);

	auth_request_ref(sql_request->auth_request);
	sql_query(module->conn->db, query,
		  sql_query_callback, sql_request);
}
Exemplo n.º 15
0
/*************************************************************************
 *
 *	Function: sql_select_query
 *
 *	Purpose: Issue a select query to the database
 *
 *************************************************************************/
static int sql_select_query(rlm_sql_handle_t *handle, rlm_sql_config_t *config, char *querystr) {
	rlm_sql_unixodbc_conn_t *conn = handle->conn;
	SQLINTEGER column;
	SQLLEN len;
	int numfields;
	int state;

	/* Only state = 0 means success */
	if ((state = sql_query(handle, config, querystr))) {
		return state;
	}

	numfields=sql_num_fields(handle, config);
	if (numfields < 0) {
		return -1;
	}

	/* Reserving memory for result */
	conn->row = (char **) rad_malloc((numfields+1)*sizeof(char *));
	conn->row[numfields] = NULL;

	for(column = 1; column <= numfields; column++) {
		SQLColAttributes(conn->statement,((SQLUSMALLINT) column),SQL_COLUMN_LENGTH,NULL,0,NULL,&len);
		conn->row[column-1] = (char*)rad_malloc((int)++len);
		SQLBindCol(conn->statement, column, SQL_C_CHAR, (SQLCHAR *)conn->row[column-1], len, NULL);
	}
	return 0;
}
Exemplo n.º 16
0
bool  DBService::insertCarInfo_tb(const CarInfo_tb& carInfo)
{
    bool res = false;
    if(!database.open())
    {
        qDebug()<<database.lastError();
        return res;
    }
    else
    {

        QSqlQuery sql_query(database);
        QString update_sql("insert into tb_car_info (slm1,slm2,car_name) values(?,?,?);");
        sql_query.prepare(update_sql);
        sql_query.addBindValue(carInfo.slm1);
        sql_query.addBindValue(carInfo.slm2);
        sql_query.addBindValue(carInfo.carName);
        if(!sql_query.exec())
        {
            qDebug()<<sql_query.lastError();
        }
        else
        {
            qDebug()<<"inserted!";
            res = true;
        }
    }
    database.close();
    return res;
}
Exemplo n.º 17
0
CarInfo_tb  DBService::getCarInfo_tb(const QString& carName)
{
    CarInfo_tb carInfo;
    if(!database.open())
    {
        qDebug()<<database.lastError();
        carInfo.isValid = false;
        return carInfo;
    }
    else
    {
        QString select_sql("select slm1,slm2 from tb_car_info where car_name=?");
        QSqlQuery sql_query(database);
        sql_query.prepare(select_sql);
        sql_query.addBindValue(carName);
        if(!sql_query.exec())
        {
            qDebug()<<sql_query.lastError();
        }
        else
        {
            while(sql_query.next())
            {
                carInfo.carName = carName;
                carInfo.slm1 = sql_query.value(0).toString();
                carInfo.slm2 = sql_query.value(1).toString();
                carInfo.isValid = true;
                break;
            }
        }
    }
    database.close();
    return carInfo;

}
Exemplo n.º 18
0
void DVZ_DOVIZLER_BATCH::RUN_BATCH ()
{
    SQL_QUERY sql_query ( DB );

    sql_query.PREPARE_SELECT ( "dvz_dovizler", "doviz_kodu" );

    if ( sql_query.SELECT("doviz_adi ASC") EQ 0 ) {
        return;
    }

    while ( sql_query.NEXT() ) {
        for ( int i = 0 ; i < comma_edit_alis_degerleri.size() ; i++  ) {
            if ( sql_query.VALUE(0).toString() EQ doviz_kodlari.at(i) ) {
                double yeni_alis_degeri      =  comma_edit_alis_degerleri.at(i)->GET_DOUBLE();
                double yeni_satis_degeri     =  comma_edit_satis_degerleri.at(i)->GET_DOUBLE();

                if (yeni_alis_degeri EQ 0.00) {
                    yeni_alis_degeri = -1;
                }

                if (yeni_satis_degeri EQ 0.00) {
                    yeni_satis_degeri = -1;
                }

                DVZ_UPDATE_DOVIZ_KURLAR(sql_query.VALUE(0).toString(),m_ui->adakDate_kur_tarihi->QDATE(),yeni_alis_degeri,yeni_satis_degeri);

                break;
            }
        }
    }    

    MSG_WARNING( tr ( "Dövizler Kurları Güncellendi." ), NULL );
}
Exemplo n.º 19
0
bool  DBService::updateCarNuMap_tb(const CarNuMap_tb& carNuMap)
{
    bool res = false;
    if(!database.open())
    {
        qDebug()<<database.lastError();
        return res;
    }
    else
    {

        QSqlQuery sql_query(database);
        QString update_sql("update tb_car_nu_map set car_nu_l=?,car_nu_g=? where car_name=?");
        sql_query.prepare(update_sql);
        sql_query.addBindValue(carNuMap.car_nu_l);
        sql_query.addBindValue(carNuMap.car_nu_g);
        sql_query.addBindValue(carNuMap.carName);
        if(!sql_query.exec())
        {
            qDebug()<<sql_query.lastError();
        }
        else
        {
            qDebug()<<"updated!";
            res = true;
        }
    }
    database.close();
    return res;
}
Exemplo n.º 20
0
struct account *
account_by_name(char *name)
{
    PGresult *res;
    int acct_id;

    // First check to see if we already have it in memory
    struct account *acct = g_hash_table_find(account_cache,
                                             account_name_matches,
                                             name);

    if (acct)
        return acct;

    // Apprently, we don't, so look it up on the db
    res = sql_query("select idnum from accounts where lower(name)='%s'",
        tmp_sqlescape(tmp_tolower(name)));
    if (PQntuples(res) != 1)
        return NULL;
    acct_id = atoi(PQgetvalue(res, 0, 0));

    // Now try to load it
    CREATE(acct, struct account, 1);
    if (load_account(acct, acct_id))
        return acct;

    free(acct);
    return NULL;
}
Exemplo n.º 21
0
bool  DBService::updateCarInfo_tb(const CarInfo_tb& carInfo)
{
    bool res = false;
    if(!database.open())
    {
        qDebug()<<database.lastError();
        return res;
    }
    else
    {

        QSqlQuery sql_query(database);
        QString update_sql("update tb_car_info set slm1=?,slm2=? where car_name=?");
        sql_query.prepare(update_sql);
        sql_query.addBindValue(carInfo.slm1);
        sql_query.addBindValue(carInfo.slm2);
        sql_query.addBindValue(carInfo.carName);
        if(!sql_query.exec())
        {
            qDebug()<<sql_query.lastError();
        }
        else
        {
            qDebug()<<"updated!";
            res = true;
        }
    }
    database.close();
    return res;
}
Exemplo n.º 22
0
bool ISL_DEFTERI_RAPORU::DEVREDEN_TOPLAM_HESAPLA()
{
    SQL_QUERY sql_query ( DB );
    sql_query.PREPARE_SELECT ( "isl_fis_satirlari, isl_fisi","satir_kdv_haric_tutar, satir_kdv_tutari, satir_kdv_dahil_tutar, fis_turu ",
                               "isl_fis_satirlari.fis_id = isl_fisi.fis_id "
                               "AND fis_tarihi < :baslangic_tarihi" );
    sql_query.SET_VALUE      ( ":baslangic_tarihi", M_ISL_RV->baslangic_tarihi.toString ( "yyyy.MM.dd" ) );

    if ( sql_query.SELECT() EQ 0 ) {
        return false;
    }
    while ( sql_query.NEXT() EQ true ) {
        switch ( sql_query.VALUE(3).toInt() ) {

            case ENUM_GELIR_FISI :
            default         :
                m_gelir_kdv_haric_toplam += sql_query.VALUE(0).toDouble();
                m_gelir_kdv_tutar_toplam += sql_query.VALUE(1).toDouble();
                m_gelir_toplam           += sql_query.VALUE(2).toDouble();
                break;

            case ENUM_GIDER_FISI :

                m_gider_kdv_haric_toplam += sql_query.VALUE(0).toDouble();
                m_gider_kdv_tutar_toplam += sql_query.VALUE(1).toDouble();
                m_gider_toplam           += sql_query.VALUE(2).toDouble();
                break;

        }
    }
    return true;
}
Exemplo n.º 23
0
void FAT_IRSALIYE_ARAMA::SETUP_FORM ()
{
    SET_PAGE_TITLE( tr ( "FAT - İRSALİYE SEÇİMİ" ) );

    REGISTER_TABLE_WIDGET ( m_ui->tableWidget );
    REGISTER_ARAMA_BUTTONS_WIDGET ( m_ui->widget_batch_buttons );

    SET_HEADERS( QStringList() << tr("irsaliye_id") <<tr("İrs. Seri No") << tr("İrsaliye No") << tr("İrs. Tarihi") );

    SET_SORTING ( false );

    m_ui->tableWidget->hideColumn(0);
    m_ui->tableWidget->setColumnWidth ( 1, 20 );
    m_ui->tableWidget->setColumnWidth ( 2, 10 );
    m_ui->tableWidget->setColumnWidth ( 3, 200 );

    // Programa ilk girildiginde focuslanacak widget setlenmelidir.
    SET_FIRST_FOCUS_WIDGET ( m_ui->adakDate_bas_tarihi );

    SET_HELP_PAGE ("fat_irsaliye_secimi.html");

    m_ui->tableWidget->setColumnWidth( 3   , 10);

    SET_SETTING_NAME ( "FAT_IRSALIYE_SECIMI" );

    SET_ENTER_KEY_FOR_RUN_BATCH ( true );

    SET_FIND_BUTTON_NAME ( "İrsaliye Bul" );

    SQL_QUERY sql_query ( DB );

    sql_query.PREPARE_SELECT ( "k9_sabit_degerler","irs_faturalandirilacak_gun" ,"sabit_deger_id = :sabit_deger_id");
    sql_query.SET_VALUE(":sabit_deger_id" , 1);

    if ( sql_query.SELECT() EQ 0 ) {
        return;
    }

    sql_query.NEXT();

    int   faturandirilacak_gun            = sql_query.VALUE(0).toInt();

    QDate irsaliye_tarihi_bitis           = QDate::fromString ( m_irsaliye_tarihi_bitis, "yyyy.MM.dd" );
    int   irsaliye_tarihi_bitis_month     = irsaliye_tarihi_bitis.month();

    QDate irsaliye_tarihi_baslangic       = irsaliye_tarihi_bitis.addDays ( -1 * faturandirilacak_gun );
    int   irsaliye_tarihi_baslangic_month = irsaliye_tarihi_baslangic.month();

    if ( irsaliye_tarihi_baslangic_month NE irsaliye_tarihi_bitis_month ) {
        m_irsaliye_tarihi_baslangic = QDate( irsaliye_tarihi_bitis.year(), irsaliye_tarihi_bitis_month, 01 ).toString("yyyy.MM.dd");
    }
    else {
        m_irsaliye_tarihi_baslangic = irsaliye_tarihi_baslangic.toString("yyyy.MM.dd");
    }
   
    m_ui->adakDate_bas_tarihi->SET_DATE( m_irsaliye_tarihi_baslangic );
    m_ui->adakDate_bts_tarihi->SET_DATE( m_irsaliye_tarihi_bitis );

    AUTO_START();
}
Exemplo n.º 24
0
bool TABLOLARI_YAZ (QWidget * parent )
{
        SQL_QUERY sql_query     (DB);
        sql_query.PREPARE_SELECT("sql_tablolar","tablo_id ,tablo_adi");
        int tablo_sayisi = sql_query.SELECT("tablo_adi");
        if ( tablo_sayisi EQ 0 ) {
            ADAK_ERROR(QObject::tr ("Table is not found."),NULL,parent);
            return false;
        }
        int virgul_sayisi = tablo_sayisi;
        file_content += tab( 1, nl ( toString(tablo_sayisi) + ","));
        file_content += tab(1, nl("{"));

        while ( sql_query.NEXT() EQ true ) {
            file_content += tab(2, nl("{"));
            file_content += tab(3, nl("\"" + sql_query.VALUE(1).toString() + "\","));
            ALANLARI_YAZ( sql_query.VALUE(0).toInt());
            file_content += tab(2, "}");
            virgul_sayisi--;
            if ( virgul_sayisi > 0 ) {
                file_content += ",";
            }
            file_content += "\n";
        }

        file_content += tab(1, nl("}"));


        return true;
}
Exemplo n.º 25
0
int MSSQL_PLUGIN::LOCK_ROW (const QString ,const QString table_name, const QString where_info)
{
    //FIXME

    return ADAK_OK;

    // donen deger >= 0 sa locklanmistir aksi takdirde lock olmamistir.

    SQL_DDL sql_query      ( this );

    bool answer = sql_query.EXEC_SQL( QString("sp_getapplock @Resource = '%1', @LockMode = 'Exclusive',@LockTimeout = 2,@LockOwner = 'Session'").arg(QString ("LOCK("+table_name + "." + where_info+",2)")) );

    if(answer EQ false ) {
        return ADAK_FAIL;
    }

    if ( sql_query.NUM_OF_ROWS() <= 0 ) {
        return ADAK_FAIL;
    }

    sql_query.NEXT();

    if ( sql_query.VALUE(0).toInt() EQ 0 ) {
        return ADAK_FAIL;
    }

    return ADAK_OK;
}
Exemplo n.º 26
0
void GRUP_KERNEL::ADD_PARENT_ITEMS()
{
    SQL_QUERY sql_query ( m_db );

    QString table_name  = "";
    QString column_name = "";
    QString where_name  = "";
    QString order_by    = "";

    CREATE_SELECT_QUERY(&table_name,&column_name,&where_name,&order_by);

    sql_query.PREPARE_SELECT ( table_name,column_name,where_name,"" );

    if ( sql_query.SELECT(order_by) NE 0 ) {
        while ( sql_query.NEXT() EQ true ) {
            //QString id = sql_query.VALUE(0).toString();
            QStringList tree_row_str;
            tree_row_str << sql_query.VALUE(3).toString() << sql_query.VALUE(4).toString() <<
                         sql_query.VALUE(8).toString() << sql_query.VALUE(7).toString() <<
                         sql_query.VALUE(0).toString() << sql_query.VALUE(1).toString() <<
                         sql_query.VALUE(6).toString() << sql_query.VALUE(5).toString();

            ADD_PARENT_ITEM ( tree_row_str , sql_query.VALUE(8).toInt() );
        }
    }
}
Exemplo n.º 27
0
Arquivo: sql.c Projeto: debfx/bareos
/*
 * Utility routine for updates.
 * Returns: false on failure
 *          true on success
 */
bool UpdateDB(const char *file, int line, JCR *jcr, B_DB *mdb, char *cmd, int nr_afr)
{
   int num_rows;

   if (!sql_query(mdb, cmd)) {
      m_msg(file, line, &mdb->errmsg, _("update %s failed:\n%s\n"), cmd, sql_strerror(mdb));
      j_msg(file, line, jcr, M_ERROR, 0, "%s", mdb->errmsg);
      if (verbose) {
         j_msg(file, line, jcr, M_INFO, 0, "%s\n", cmd);
      }
      return false;
   }

   if (nr_afr > 0) {
      num_rows = sql_affected_rows(mdb);
      if (num_rows < nr_afr) {
         char ed1[30];
         m_msg(file, line, &mdb->errmsg, _("Update failed: affected_rows=%s for %s\n"),
               edit_uint64(num_rows, ed1), cmd);
         if (verbose) {
//          j_msg(file, line, jcr, M_INFO, 0, "%s\n", cmd);
         }
         return false;
      }
   }

   mdb->changes++;
   return true;
}
Exemplo n.º 28
0
void GRUP_KERNEL::ADD_CHILD_ITEMS (QStringList item)
{
    int item_id;

    item_id = item.at( m_grp_id_column ).toInt();

    SQL_QUERY sql_query ( m_db );

    QString table_name  = "";
    QString column_name = "";
    QString where_name  = "";
    QString order_by    = "";

    CREATE_SELECT_QUERY(&table_name,&column_name,&where_name,&order_by,item_id);

    sql_query.PREPARE_SELECT ( table_name,column_name,where_name,"" );

    if ( sql_query.SELECT(order_by) NE 0 ) {
        while ( sql_query.NEXT() EQ true ) {
            QStringList tree_row_str;
            tree_row_str << sql_query.VALUE(3).toString() << sql_query.VALUE(4).toString() <<
                         sql_query.VALUE(8).toString() << sql_query.VALUE(7).toString() <<
                         sql_query.VALUE(0).toString() << sql_query.VALUE(1).toString() <<
                         sql_query.VALUE(6).toString() << sql_query.VALUE(5).toString();


            ADD_CHILD_ITEM( tree_row_str , sql_query.VALUE(8).toInt() );
        }
    }
}
Exemplo n.º 29
0
Character *load_player_by_name(Connection *conn, const char *name)
{
    char buf[400];
    sql_stmt *stmt;
    db_begin_transaction();
    int len = sprintf(buf,
                      "select * from character natural join player where name='%s'",
                      escape_sql_str(name));

    if (sql_query(buf, len, &stmt) != SQL_OK)
    {
        log_data("could not prepare sql statement");
        return 0;
    }
    Character *ch = new_char();
    ch->pc = new_player(conn);

    if (sql_step(stmt) != SQL_DONE)
    {
        load_player_columns(conn->account, ch, stmt);
    }

    if (sql_finalize(stmt) != SQL_OK)
    {
        log_data("unable to finalize statement");
    }
    load_char_objs(ch);
    load_char_affects(ch);
    db_end_transaction();
    return ch;

}
Exemplo n.º 30
0
static sql_rcode_t sql_select_query(rlm_sql_handle_t *handle, rlm_sql_config_t *config, char const *query)
{
	rlm_sql_unixodbc_conn_t *conn = handle->conn;
	SQLINTEGER i;
	SQLLEN len;
	int colcount;
	int state;

	/* Only state = 0 means success */
	if ((state = sql_query(handle, config, query))) {
		return state;
	}

	colcount = sql_num_fields(handle, config);
	if (colcount < 0) {
		return RLM_SQL_ERROR;
	}

	/* Reserving memory for result */
	conn->row = talloc_zero_array(conn, char *, colcount + 1); /* Space for pointers */

	for (i = 1; i <= colcount; i++) {
		SQLColAttributes(conn->stmt, ((SQLUSMALLINT) i), SQL_COLUMN_LENGTH, NULL, 0, NULL, &len);
		conn->row[i - 1] = talloc_array(conn->row, char, ++len);
		SQLBindCol(conn->stmt, i, SQL_C_CHAR, (SQLCHAR *)conn->row[i - 1], len, NULL);
	}

	return RLM_SQL_OK;
}