Я хотел бы передать глобальную переменную некоторые внешние параметры.входные параметры в файле C++ для глобальной переменной
Мой фактический код:
static const char conn_str[] =
"user='postgres' password='' host='127.0.0.1' port='5432' dbname='database'";
pqxx::connection C(conn_str);
pqxx::nontransaction N(C);
И я хотел бы, чтобы иметь возможность кормить код с параметрами ARGV и до сих пор используют соединение C в качестве глобального.
Любые мысли? заранее спасибо ...
изменение:
//I initialized
static const char conn_str[][150]="";
pqxx::connection* C(conn_str);
pqxx::nontransaction* N(C);
int main(int argc, char* argv[])
{
// code (....)
database=argv[4];
char data[]="dbname=%s user=postgres hostaddr=127.0.0.1 port=5432";
sprintf(conn_str,database);
C = new pqxx::connection(conn_str);
N = new pqxx::nontransaction (C);
OpenPSQL();
LoadHeader();
LoadCustomers();
LoadProducts();
LoadTaxes();
// code
delete C; //dont forget to delete it when you are done
delete N; //dont forget to delete it when you are done
}
я получил такие ошибки:
main.cpp: In function ‘void OpenPSQL()’:
main.cpp:268: error: request for member ‘is_open’ in ‘C’, which is of non-class type ‘pqxx::connection*’
Зачем использовать необработанные указатели? –
Приятный подход, я сделал это, и что-то не работает нормально. –
измените эту строку на следующую, указав указатель так: N = new pqxx :: nontransaction (* C); – Sinapse