Пример #1
0
void db_prepare() {
    printf("Prepare ... ");
    fflush(stdout);

    PGresult* res = PQprepare(conn, STMT_ID_INSERT, Q_INSERT, 2, oidTypes);
    CHECK_RESULT(res);
    PQclear(res);

    res = PQprepare(conn, STMT_ID_SELECT, Q_SELECT, 1, oidTypes);
    CHECK_RESULT(res);
    PQclear(res);

    res = PQprepare(conn, STMT_ID_SELECT1, Q_SELECT1, 0, NULL);
    CHECK_RESULT(res);
    PQclear(res);

    res = PQprepare(conn, STMT_ID_UPDATE, Q_UPDATE, 2, oidTypes);
    CHECK_RESULT(res);
    PQclear(res);

    res = PQprepare(conn, STMT_ID_DELETE, Q_DELETE, 1, oidTypes);
    CHECK_RESULT(res);
    PQclear(res);

    printf("Done!\n");
}
Пример #2
0
void PgTblPlnrAMUserAccess::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblPlnrAMUserAccess_insertRec", "INSERT INTO TblPlnrAMUserAccess (refPlnrMUser, x1IxPlnrVCard, ixPlnrWUiaccess) VALUES ($1,$2,$3) RETURNING ref", 3, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrAMUserAccess_updateRec", "UPDATE TblPlnrAMUserAccess SET refPlnrMUser = $1, x1IxPlnrVCard = $2, ixPlnrWUiaccess = $3 WHERE ref = $4", 4, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrAMUserAccess_removeRecByRef", "DELETE FROM TblPlnrAMUserAccess WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblPlnrAMUserAccess_loadRecByRef", "SELECT ref, refPlnrMUser, x1IxPlnrVCard, ixPlnrWUiaccess FROM TblPlnrAMUserAccess WHERE ref = $1", 1, NULL);
};
Пример #3
0
void PgTblPlnrAccRMUserUniversal::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblPlnrAccRMUserUniversal_insertRec", "INSERT INTO TblPlnrAccRMUserUniversal (refPlnrMUser, unvIxPlnrVMaintable, unvUref, ixPlnrVAccess) VALUES ($1,$2,$3,$4) RETURNING ref", 4, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrAccRMUserUniversal_updateRec", "UPDATE TblPlnrAccRMUserUniversal SET refPlnrMUser = $1, unvIxPlnrVMaintable = $2, unvUref = $3, ixPlnrVAccess = $4 WHERE ref = $5", 5, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrAccRMUserUniversal_removeRecByRef", "DELETE FROM TblPlnrAccRMUserUniversal WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblPlnrAccRMUserUniversal_loadRecByRef", "SELECT ref, refPlnrMUser, unvIxPlnrVMaintable, unvUref, ixPlnrVAccess FROM TblPlnrAccRMUserUniversal WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblPlnrAccRMUserUniversal_loadRecByUsrMtbUnv", "SELECT ref, refPlnrMUser, unvIxPlnrVMaintable, unvUref, ixPlnrVAccess FROM TblPlnrAccRMUserUniversal WHERE refPlnrMUser = $1 AND unvIxPlnrVMaintable = $2 AND unvUref = $3", 3, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #4
0
void PgTblFmncSvcRMOrgMTool::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblFmncSvcRMOrgMTool_insertRec", "INSERT INTO TblFmncSvcRMOrgMTool (refFmncMOrg, refFmncMTool) VALUES ($1,$2) RETURNING ref", 2, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncSvcRMOrgMTool_updateRec", "UPDATE TblFmncSvcRMOrgMTool SET refFmncMOrg = $1, refFmncMTool = $2 WHERE ref = $3", 3, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncSvcRMOrgMTool_removeRecByRef", "DELETE FROM TblFmncSvcRMOrgMTool WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblFmncSvcRMOrgMTool_loadRecByRef", "SELECT ref, refFmncMOrg, refFmncMTool FROM TblFmncSvcRMOrgMTool WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblFmncSvcRMOrgMTool_loadRefsByTol", "SELECT ref FROM TblFmncSvcRMOrgMTool WHERE refFmncMTool = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #5
0
void PgTblFmncRMFileMSample::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblFmncRMFileMSample_insertRec", "INSERT INTO TblFmncRMFileMSample (refFmncMFile, refFmncMSample) VALUES ($1,$2) RETURNING ref", 2, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncRMFileMSample_updateRec", "UPDATE TblFmncRMFileMSample SET refFmncMFile = $1, refFmncMSample = $2 WHERE ref = $3", 3, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncRMFileMSample_removeRecByRef", "DELETE FROM TblFmncRMFileMSample WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblFmncRMFileMSample_loadRecByRef", "SELECT ref, refFmncMFile, refFmncMSample FROM TblFmncRMFileMSample WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblFmncRMFileMSample_loadRefsBySmp", "SELECT ref FROM TblFmncRMFileMSample WHERE refFmncMSample = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #6
0
void PgTblPlnrRMStackMStructure::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblPlnrRMStackMStructure_insertRec", "INSERT INTO TblPlnrRMStackMStructure (refPlnrMStack, refPlnrMStructure, fromSrefPlnrMLayer, toSrefPlnrMLayer) VALUES ($1,$2,$3,$4) RETURNING ref", 4, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrRMStackMStructure_updateRec", "UPDATE TblPlnrRMStackMStructure SET refPlnrMStack = $1, refPlnrMStructure = $2, fromSrefPlnrMLayer = $3, toSrefPlnrMLayer = $4 WHERE ref = $5", 5, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrRMStackMStructure_removeRecByRef", "DELETE FROM TblPlnrRMStackMStructure WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblPlnrRMStackMStructure_loadRecByRef", "SELECT ref, refPlnrMStack, refPlnrMStructure, fromSrefPlnrMLayer, toSrefPlnrMLayer FROM TblPlnrRMStackMStructure WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblPlnrRMStackMStructure_loadRstByStk", "SELECT ref, refPlnrMStack, refPlnrMStructure, fromSrefPlnrMLayer, toSrefPlnrMLayer FROM TblPlnrRMStackMStructure WHERE refPlnrMStack = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #7
0
void PgTblFmncAMToolChar::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblFmncAMToolChar_insertRec", "INSERT INTO TblFmncAMToolChar (refFmncMTool, x1OsrefFmncKToolchar, Val, Comment) VALUES ($1,$2,$3,$4) RETURNING ref", 4, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncAMToolChar_updateRec", "UPDATE TblFmncAMToolChar SET refFmncMTool = $1, x1OsrefFmncKToolchar = $2, Val = $3, Comment = $4 WHERE ref = $5", 5, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncAMToolChar_removeRecByRef", "DELETE FROM TblFmncAMToolChar WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblFmncAMToolChar_loadRecByRef", "SELECT ref, refFmncMTool, x1OsrefFmncKToolchar, Val, Comment FROM TblFmncAMToolChar WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblFmncAMToolChar_loadRefsByTol", "SELECT ref FROM TblFmncAMToolChar WHERE refFmncMTool = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #8
0
    bool dbUpdate::Prepare()
    {
       csString statement;

        // count - 1 fields to update
        statement.Format("UPDATE %s SET ", table);
        unsigned int i;
        for (i=0;i<(count-1);i++)
        {
            if (i>0)
                statement.Append(",");
            statement.Append(command[i]);
            statement += (i+1);
        }
        statement.Append(" where ");
        statement.Append(idfield);
        // field count is the idfield
        statement.Append(" = $");
        statement += (i+1);

        csString preparedName = "";
        preparedName += *stmtNum;

        PGresult *res = PQprepare(conn, preparedName.GetData(), statement.GetData(), 0,0);

        prepared = (res && PQresultStatus(res) != PGRES_FATAL_ERROR);
        
        if(prepared)
        {
            stmt = preparedName;
            (*stmtNum)++;
        }

        return prepared;
    }
bool EpollPostgresql::queryPrepare(const char *stmtName,
                                     const char *query,const int &nParams,const bool &store)//return NULL if failed
{
    if(conn==NULL)
    {
        std::cerr << "pg not connected" << std::endl;
        return false;
    }
    //std::cout << "Prepare the name: " << stmtName << ", query: " << query << ", database: " << this << std::endl;
    PGresult *resprep = PQprepare(conn,stmtName,query,nParams,/*,paramTypes*/NULL);
    const auto &ret=PQresultStatus(resprep);
    if (ret != PGRES_COMMAND_OK)
    { //if failed quit
        #ifdef DEBUG_MESSAGE_CLIENT_SQL
        std::cerr << simplifiedstrCoPG << ", ";
        #endif
        std::cerr << "Problem to prepare the query: " << query << ", return code: " << ret << ", error message: " << PQerrorMessage(conn) << std::endl;
        abort();
        return false;
    }
    if(store)
    {
        PreparedStatementStore preparedStatementStore;
        preparedStatementStore.name=stmtName;
        preparedStatementStore.query=query;
        preparedStatementStore.nParams=nParams;
        preparedStatementUnitList.push_back(preparedStatementStore);
    }
    return true;
}
Пример #10
0
/*
 * create_prepared_statement:
 *     Returns 0 if prepared statement is created.
 *     Returns 1 if prepared statement can't created.
 */
static int create_prepared_statement(DistDefInfo *dist_info)
{
    static char sql[1024];
    PGresult *result;

#ifdef HAVE_PQPREPARE
    snprintf(sql, 1024, "SELECT %s($1::%s)", dist_info->dist_def_func,
             dist_info->type_list[dist_info->dist_key_col_id]);
    result = PQprepare(system_db_info->pgconn,
                       dist_info->prepare_name,
                       sql, 1, NULL);
#else
    snprintf(sql, 1024, "PREPARE %s (%s) AS SELECT %s($1::%s)",
             dist_info->prepare_name,
             dist_info->type_list[dist_info->dist_key_col_id],
             dist_info->dist_def_func,
             dist_info->type_list[dist_info->dist_key_col_id]);
    result = PQexec(system_db_info->pgconn,	sql);
#endif /* HAVE_PQPREPARE */

    if (!result || PQresultStatus(result) != PGRES_COMMAND_OK)
    {
        ereport(WARNING,
                (errmsg("error while creating prepared statement, PQprepare failed: \"%s\"", PQerrorMessage(system_db_info->pgconn))));
        return 1;
    }
    dist_info->is_created_prepare = 1;
    return 0;
}
Пример #11
0
CAMLprim value PQprepare_stub(value v_conn, value v_stm_name, value v_query)
{
  CAMLparam1(v_conn);
  PGconn *conn = get_conn(v_conn);
  np_callback *np_cb = get_conn_cb(v_conn);
  PGresult *res;
  size_t stm_name_len = caml_string_length(v_stm_name) + 1;
  size_t query_len = caml_string_length(v_query) + 1;
  char *stm_name = caml_stat_alloc(stm_name_len);
  char *query = caml_stat_alloc(query_len);
  memcpy(stm_name, String_val(v_stm_name), stm_name_len);
  memcpy(query, String_val(v_query), query_len);
  caml_enter_blocking_section();
    res = PQprepare(conn, stm_name, query, 0, NULL);
    free(stm_name);
    free(query);
  caml_leave_blocking_section();
  CAMLreturn(alloc_result(res, np_cb));
#else
CAMLprim value PQprepare_stub(
  value __unused v_conn, value __unused v_stm_name, value __unused v_query)
{
  caml_failwith("Postgresql.prepare: not supported");
  return Val_unit;
#endif
}
Пример #12
0
postgresql_statement::postgresql_statement(shared_ptr<postgresql_connection_impl> conn,
					   const string &query)
  : conn(conn)
{
  postgresql_result res(PQprepare(conn->get(), "", convert_query(query).c_str(), 0, NULL));

  if (!res.command_ok())
    throw database_error(PQresultErrorMessage(res.get()));
}
Пример #13
0
static bool
prepare_common(int lineno, struct connection *con, const char *name, const char *variable)
{
	struct statement *stmt;
	struct prepared_statement *this;
	PGresult   *query;

	/* allocate new statement */
	this = (struct prepared_statement *) ecpg_alloc(sizeof(struct prepared_statement), lineno);
	if (!this)
		return false;

	stmt = (struct statement *) ecpg_alloc(sizeof(struct statement), lineno);
	if (!stmt)
	{
		ecpg_free(this);
		return false;
	}
	memset(stmt, 0, sizeof(struct statement));

	/* create statement */
	stmt->lineno = lineno;
	stmt->connection = con;
	stmt->command = ecpg_strdup(variable, lineno);
	stmt->inlist = stmt->outlist = NULL;

	/* if we have C variables in our statement replace them with '?' */
	replace_variables(&(stmt->command), lineno);

	/* add prepared statement to our list */
	this->name = ecpg_strdup(name, lineno);
	this->stmt = stmt;

	/* and finally really prepare the statement */
	query = PQprepare(stmt->connection->connection, name, stmt->command, 0, NULL);
	if (!ecpg_check_PQresult(query, stmt->lineno, stmt->connection->connection, stmt->compat))
	{
		ecpg_free(stmt->command);
		ecpg_free(this->name);
		ecpg_free(this);
		ecpg_free(stmt);
		return false;
	}

	ecpg_log("prepare_common on line %d: name %s; query: \"%s\"\n", stmt->lineno, name, stmt->command);
	PQclear(query);
	this->prepared = true;

	if (con->prep_stmts == NULL)
		this->next = NULL;
	else
		this->next = con->prep_stmts;

	con->prep_stmts = this;
	return true;
}
Пример #14
0
void prepareQueries_p(preparation_t queries[],ssize_t num) {
  int i;
  for(i=0;i<num;++i) {
    fprintf(stderr,"Preparing query %s %p\n",queries[i].name,PQconn);
    PGresult* result = 
      PQprepare(PQconn,
                queries[i].name,
                queries[i].query,
                0,
                NULL);
    PQassert(result,result && PQresultStatus(result)==PGRES_COMMAND_OK);
  }
}
Пример #15
0
void PgTblFmncMSample::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblFmncMSample_insertRec", "INSERT INTO TblFmncMSample (grp, own, supRefFmncMSample, supLvl, refFmncMArticle, sref, Material, refJState, ixVState, Comment) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10) RETURNING ref", 10, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMSample_updateRec", "UPDATE TblFmncMSample SET grp = $1, own = $2, supRefFmncMSample = $3, supLvl = $4, refFmncMArticle = $5, sref = $6, Material = $7, refJState = $8, ixVState = $9, Comment = $10 WHERE ref = $11", 11, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMSample_removeRecByRef", "DELETE FROM TblFmncMSample WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblFmncMSample_loadRecByRef", "SELECT ref, grp, own, supRefFmncMSample, supLvl, refFmncMArticle, sref, Material, refJState, ixVState, Comment FROM TblFmncMSample WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblFmncMSample_confirmByRef", "SELECT ref FROM TblFmncMSample WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMSample_loadRefBySupSrf", "SELECT ref FROM TblFmncMSample WHERE supRefFmncMSample = $1 AND sref = $2", 2, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMSample_loadRefsBySup", "SELECT ref FROM TblFmncMSample WHERE supRefFmncMSample = $1 ORDER BY sref ASC", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMSample_loadRstBySup", "SELECT ref, grp, own, supRefFmncMSample, supLvl, refFmncMArticle, sref, Material, refJState, ixVState, Comment FROM TblFmncMSample WHERE supRefFmncMSample = $1 ORDER BY sref ASC", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMSample_loadSrfByRef", "SELECT sref FROM TblFmncMSample WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMSample_loadSupByRef", "SELECT supRefFmncMSample FROM TblFmncMSample WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #16
0
void sql_database::load_queries(const std::unordered_map<std::string, std::string> & queries)
{
    auto & c = get_free_connection();
    auto guard = make_guard(std::bind(&std::mutex::unlock, &c.lock));
    for(auto && it : queries)
    {
        auto res = PQprepare(c.conn, it.first.c_str(), it.second.c_str(), 0, nullptr);
        auto res_guard = make_guard(std::bind(PQclear, res));
        auto status = PQresultStatus(res);
        if (status == PGRES_FATAL_ERROR)
        {
            throw sql_error { "sql query failed due to "_s + PQresultErrorMessage(res)
                + ", query: " + it.first };
        }
    }
}
Пример #17
0
VALUE db_postgres_statement_initialize(VALUE self, VALUE adapter, VALUE sql) {
    PGresult *result;
    Statement *s = db_postgres_statement_handle(self);
    Adapter *a   = db_postgres_adapter_handle_safe(adapter);

    snprintf(s->id, 128, "s%s", CSTRING(rb_uuid_string()));
    s->adapter = adapter;

    if (!a->native)
        sql = db_postgres_normalized_sql(sql);

    result = PQprepare(a->connection, s->id, CSTRING(sql), 0, 0);
    db_postgres_check_result(result);
    PQclear(result);
    return self;
}
Пример #18
0
void PgTblPlnrMStructure::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblPlnrMStructure_insertRec", "INSERT INTO TblPlnrMStructure (hkIxVTbl, hkUref, sref, x0, x1, y0, y1) VALUES ($1,$2,$3,$4,$5,$6,$7) RETURNING ref", 7, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrMStructure_updateRec", "UPDATE TblPlnrMStructure SET hkIxVTbl = $1, hkUref = $2, sref = $3, x0 = $4, x1 = $5, y0 = $6, y1 = $7 WHERE ref = $8", 8, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrMStructure_removeRecByRef", "DELETE FROM TblPlnrMStructure WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblPlnrMStructure_loadRecByRef", "SELECT ref, hkIxVTbl, hkUref, sref, x0, x1, y0, y1 FROM TblPlnrMStructure WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblPlnrMStructure_loadRefByHktHkuSrf", "SELECT ref FROM TblPlnrMStructure WHERE hkIxVTbl = $1 AND hkUref = $2 AND sref = $3", 3, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrMStructure_loadRefsByHktHku", "SELECT ref FROM TblPlnrMStructure WHERE hkIxVTbl = $1 AND hkUref = $2", 2, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrMStructure_loadRstByHktHku", "SELECT ref, hkIxVTbl, hkUref, sref, x0, x1, y0, y1 FROM TblPlnrMStructure WHERE hkIxVTbl = $1 AND hkUref = $2", 2, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrMStructure_loadSrfByRef", "SELECT sref FROM TblPlnrMStructure WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #19
0
PreparedStatement_T PostgresqlConnection_prepareStatement(T C, const char *sql, va_list ap) {
        char *name;
        int paramCount = 0;
        va_list ap_copy;
        assert(C);
        assert(sql);
        PQclear(C->res);
        va_copy(ap_copy, ap);
        StringBuffer_vset(C->sb, sql, ap_copy);
        va_end(ap_copy);
        paramCount = StringBuffer_prepare4postgres(C->sb);
        uint32_t t = ++statementid; // increment is atomic
        name = Str_cat("%d", t);
        C->res = PQprepare(C->db, name, StringBuffer_toString(C->sb), 0, NULL);
        C->lastError = C->res ? PQresultStatus(C->res) : PGRES_FATAL_ERROR;
        if (C->lastError == PGRES_EMPTY_QUERY || C->lastError == PGRES_COMMAND_OK || C->lastError == PGRES_TUPLES_OK)
		return PreparedStatement_new(PostgresqlPreparedStatement_new(C->db, C->maxRows, name, paramCount), (Pop_T)&postgresqlpops, paramCount);
        return NULL;
}
Пример #20
0
void PgTblFmncMStep::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblFmncMStep_insertRec", "INSERT INTO TblFmncMStep (grp, own, refFmncMActivity, rlvIxVTbl, rlvUref, tplRefFmncMStep, ixWFilecfg, Title, start, refFmncMPerson) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10) RETURNING ref", 10, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMStep_updateRec", "UPDATE TblFmncMStep SET grp = $1, own = $2, refFmncMActivity = $3, rlvIxVTbl = $4, rlvUref = $5, tplRefFmncMStep = $6, ixWFilecfg = $7, Title = $8, start = $9, refFmncMPerson = $10 WHERE ref = $11", 11, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMStep_removeRecByRef", "DELETE FROM TblFmncMStep WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblFmncMStep_loadRecByRef", "SELECT ref, grp, own, refFmncMActivity, rlvIxVTbl, rlvUref, tplRefFmncMStep, ixWFilecfg, Title, start, refFmncMPerson FROM TblFmncMStep WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblFmncMStep_loadRefsByAct", "SELECT ref FROM TblFmncMStep WHERE refFmncMActivity = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMStep_loadRefsByRltRlu", "SELECT ref FROM TblFmncMStep WHERE rlvIxVTbl = $1 AND rlvUref = $2", 2, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMStep_loadTitByRef", "SELECT Title FROM TblFmncMStep WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #21
0
void PgTblPlnrJMUserState::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblPlnrJMUserState_insertRec", "INSERT INTO TblPlnrJMUserState (refPlnrMUser, x1Startd, ixVState) VALUES ($1,$2,$3) RETURNING ref", 3, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrJMUserState_updateRec", "UPDATE TblPlnrJMUserState SET refPlnrMUser = $1, x1Startd = $2, ixVState = $3 WHERE ref = $4", 4, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrJMUserState_removeRecByRef", "DELETE FROM TblPlnrJMUserState WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblPlnrJMUserState_loadRecByRef", "SELECT ref, refPlnrMUser, x1Startd, ixVState FROM TblPlnrJMUserState WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblPlnrJMUserState_loadRecByUsrSta", "SELECT ref, refPlnrMUser, x1Startd, ixVState FROM TblPlnrJMUserState WHERE refPlnrMUser = $1 AND x1Startd <= $2 ORDER BY x1Startd DESC OFFSET 0 LIMIT 1", 2, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrJMUserState_loadRefsByUsr", "SELECT ref FROM TblPlnrJMUserState WHERE refPlnrMUser = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrJMUserState_loadRstByUsr", "SELECT ref, refPlnrMUser, x1Startd, ixVState FROM TblPlnrJMUserState WHERE refPlnrMUser = $1 ORDER BY x1Startd ASC", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #22
0
void PgTblFmncMUsergroup::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblFmncMUsergroup_insertRec", "INSERT INTO TblFmncMUsergroup (grp, own, sref, Comment) VALUES ($1,$2,$3,$4) RETURNING ref", 4, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMUsergroup_updateRec", "UPDATE TblFmncMUsergroup SET grp = $1, own = $2, sref = $3, Comment = $4 WHERE ref = $5", 5, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMUsergroup_removeRecByRef", "DELETE FROM TblFmncMUsergroup WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblFmncMUsergroup_loadRecByRef", "SELECT ref, grp, own, sref, Comment FROM TblFmncMUsergroup WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblFmncMUsergroup_loadRecBySrf", "SELECT ref, grp, own, sref, Comment FROM TblFmncMUsergroup WHERE sref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMUsergroup_loadRefBySrf", "SELECT ref FROM TblFmncMUsergroup WHERE sref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncMUsergroup_loadSrfByRef", "SELECT sref FROM TblFmncMUsergroup WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #23
0
static boolean
prepareQuery(char *qName, char *query, int parameters, Oid *types)
{
    PGresult *res = NULL;
    ASSERT(postgresIsInitialized());
    PGconn *c = plugin->conn;

    res = PQprepare(c,
                    qName,
                    query,
                    parameters,
                    types);
    if (PQresultStatus(res) != PGRES_COMMAND_OK)
        CLOSE_RES_CONN_AND_FATAL(res, "prepare query %s failed: %s",
                qName, PQresultErrorMessage(res));
    PQclear(res);

    DEBUG_LOG("prepared query: %s AS\n%s", qName, query);

    return TRUE;
}
Пример #24
0
int pgpool_prepare(const char *name, const char *query, 
		int num_params, const Oid *param_types)
{
	assert(initialized);
	for (int i=0; i < poolsize; i++) {
		PGresult *res = PQprepare(
				pool[i], 
				name,
				query,
				num_params, 
				param_types);
		if (PQresultStatus(res) != PGRES_COMMAND_OK) {
			fprintf(stderr, "ERROR: prepare %s failed: %s", name,
					PQerrorMessage(pool[i]));
			PQclear(res);
			return -1;
		}
		PQclear(res);
	}
	return 0;
}
Пример #25
0
void PgTblFmncHistRMUserUniversal::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblFmncHistRMUserUniversal_insertRec", "INSERT INTO TblFmncHistRMUserUniversal (refFmncMUser, unvIxFmncVMaintable, unvUref, ixFmncVCard, ixFmncVPreset, preIxFmncVMaintable, preUref, start) VALUES ($1,$2,$3,$4,$5,$6,$7,$8) RETURNING ref", 8, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncHistRMUserUniversal_updateRec", "UPDATE TblFmncHistRMUserUniversal SET refFmncMUser = $1, unvIxFmncVMaintable = $2, unvUref = $3, ixFmncVCard = $4, ixFmncVPreset = $5, preIxFmncVMaintable = $6, preUref = $7, start = $8 WHERE ref = $9", 9, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncHistRMUserUniversal_removeRecByRef", "DELETE FROM TblFmncHistRMUserUniversal WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblFmncHistRMUserUniversal_loadRecByRef", "SELECT ref, refFmncMUser, unvIxFmncVMaintable, unvUref, ixFmncVCard, ixFmncVPreset, preIxFmncVMaintable, preUref, start FROM TblFmncHistRMUserUniversal WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblFmncHistRMUserUniversal_loadRstByUsrCrd", "SELECT ref, refFmncMUser, unvIxFmncVMaintable, unvUref, ixFmncVCard, ixFmncVPreset, preIxFmncVMaintable, preUref, start FROM TblFmncHistRMUserUniversal WHERE refFmncMUser = $1 AND ixFmncVCard = $2 ORDER BY start DESC", 2, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncHistRMUserUniversal_loadUnuByRef", "SELECT unvUref FROM TblFmncHistRMUserUniversal WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #26
0
void PgTblPlnrRMFaceMVertex::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblPlnrRMFaceMVertex_insertRec", "INSERT INTO TblPlnrRMFaceMVertex (fceRefPlnrMFace, fceNum, refPlnrMVertex, rteIxVTbl, rteUref, ixVDir) VALUES ($1,$2,$3,$4,$5,$6) RETURNING ref", 6, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrRMFaceMVertex_updateRec", "UPDATE TblPlnrRMFaceMVertex SET fceRefPlnrMFace = $1, fceNum = $2, refPlnrMVertex = $3, rteIxVTbl = $4, rteUref = $5, ixVDir = $6 WHERE ref = $7", 7, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrRMFaceMVertex_removeRecByRef", "DELETE FROM TblPlnrRMFaceMVertex WHERE ref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblPlnrRMFaceMVertex_loadRecByRef", "SELECT ref, fceRefPlnrMFace, fceNum, refPlnrMVertex, rteIxVTbl, rteUref, ixVDir FROM TblPlnrRMFaceMVertex WHERE ref = $1", 1, NULL);
	res = PQprepare(dbs, "TblPlnrRMFaceMVertex_loadRstByFce", "SELECT ref, fceRefPlnrMFace, fceNum, refPlnrMVertex, rteIxVTbl, rteUref, ixVDir FROM TblPlnrRMFaceMVertex WHERE fceRefPlnrMFace = $1 ORDER BY fceNum ASC", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrRMFaceMVertex_loadRstByRttRtu", "SELECT ref, fceRefPlnrMFace, fceNum, refPlnrMVertex, rteIxVTbl, rteUref, ixVDir FROM TblPlnrRMFaceMVertex WHERE rteIxVTbl = $1 AND rteUref = $2", 2, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #27
0
    bool dbInsert::Prepare()
    {
        csString statement;

        // count fields to update
        statement.Format("INSERT INTO %s (", table);
        for (unsigned int i=0;i<count;i++)
        {
            if (i>0)
                statement.Append(", ");
            statement.Append(command[i]);
        }

        statement.Append(") VALUES (");
        for (unsigned int i=0;i<count;i++)
        {
            if (i>0)
                statement.Append(", ");
            statement.Append("$");
            statement += (i+1);
        }

        statement.Append(")");

        csString preparedName = "";
        preparedName += *stmtNum;

        PGresult *res = PQprepare(conn, preparedName.GetData(), statement.GetData(), 0,0);

        prepared = (res && PQresultStatus(res) != PGRES_FATAL_ERROR);
        
        if(prepared)
        {
            stmt = preparedName;
            (*stmtNum)++;
        }

        return prepared;
    }
Пример #28
0
static awk_value_t *
do_pg_prepare(int nargs, awk_value_t *result)
{
  PGconn *conn;
  awk_value_t command;
  char *stmtName;
  PGresult *res;

  if (do_lint && (nargs > 2))
    lintwarn(ext_id, _("pg_prepare: called with too many arguments"));

  if (!(conn = find_handle(conns, 0))) {
    set_ERRNO(_("pg_prepare called with unknown connection handle"));
    RET_NULSTR;
  }

  if (!get_argument(1, AWK_STRING, &command)) {
    set_ERRNO(_("pg_prepare 2nd argument should be a string"));
    RET_NULSTR;
  }

  res = PQprepare(conn, (stmtName = prep_name()), command.str_value.str,
		  0, NULL);

  if (!res) {
    /* I presume the connection is probably bad, since no result returned */
    set_ERRNO(PQerrorMessage(conn));
    RET_NULSTR;
  }

  if (PQresultStatus(res) != PGRES_COMMAND_OK) {
    set_ERRNO(PQresultErrorMessage(res));
    PQclear(res);
    RET_NULSTR;
  }

  PQclear(res);
  return make_string_malloc(stmtName, strlen(stmtName), result);
}
Пример #29
0
void PgTblFmncQUsgMNUser::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblFmncQUsgMNUser_insertRec", "INSERT INTO TblFmncQUsgMNUser (jref, jnum, mref, ref, ixFmncVUserlevel) VALUES ($1,$2,$3,$4,$5) RETURNING qref", 5, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncQUsgMNUser_updateRec", "UPDATE TblFmncQUsgMNUser SET jref = $1, jnum = $2, mref = $3, ref = $4, ixFmncVUserlevel = $5 WHERE qref = $6", 6, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncQUsgMNUser_removeRecByQref", "DELETE FROM TblFmncQUsgMNUser WHERE qref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncQUsgMNUser_removeRstByJref", "DELETE FROM TblFmncQUsgMNUser WHERE jref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblFmncQUsgMNUser_loadRecByQref", "SELECT qref, jref, jnum, mref, ref, ixFmncVUserlevel FROM TblFmncQUsgMNUser WHERE qref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblFmncQUsgMNUser_loadRstByJref", "SELECT qref, jref, jnum, mref, ref, ixFmncVUserlevel FROM TblFmncQUsgMNUser WHERE jref = $1 ORDER BY jnum ASC", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};
Пример #30
0
void PgTblPlnrQDtpAPar::initStatements() {
	PGresult* res;

	res = PQprepare(dbs, "TblPlnrQDtpAPar_insertRec", "INSERT INTO TblPlnrQDtpAPar (jref, jnum, ref, x2SrefKKey, refPlnrMFile, Val) VALUES ($1,$2,$3,$4,$5,$6) RETURNING qref", 6, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrQDtpAPar_updateRec", "UPDATE TblPlnrQDtpAPar SET jref = $1, jnum = $2, ref = $3, x2SrefKKey = $4, refPlnrMFile = $5, Val = $6 WHERE qref = $7", 7, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrQDtpAPar_removeRecByQref", "DELETE FROM TblPlnrQDtpAPar WHERE qref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrQDtpAPar_removeRstByJref", "DELETE FROM TblPlnrQDtpAPar WHERE jref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);

	res = PQprepare(dbs, "TblPlnrQDtpAPar_loadRecByQref", "SELECT qref, jref, jnum, ref, x2SrefKKey, refPlnrMFile, Val FROM TblPlnrQDtpAPar WHERE qref = $1", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
	res = PQprepare(dbs, "TblPlnrQDtpAPar_loadRstByJref", "SELECT qref, jref, jnum, ref, x2SrefKKey, refPlnrMFile, Val FROM TblPlnrQDtpAPar WHERE jref = $1 ORDER BY jnum ASC", 1, NULL);
	if (PQresultStatus(res) != PGRES_COMMAND_OK) initStatementsErr(res);
};