Попробуйте так:
int PQconnectdb(uchar &conninfo[]);
//--- строка подключения string str_con="dbname=db user=postgres password=pass"; //--- конвертация в ansi строку uchar ansi_con[]; StringToCharArray(str_con,ansi_con); //--- соединение int con = PQconnectdb(ansi_con);
Попробовал: выполняю вызов с преобразованием через StringToCharArray(), результат аналогичный.
При этом ни в лог терминала ни в лог сервера Postgres ничего не пишется. Например при попытке соединиться c сервером из Java-приложения с указанием только порта (он нестандартный - 5433) параметры хоста и базы подставляются по умолчанию и в лог сервера попадает запись о невозможности соединиться, т.к. не указан юзер.
А если выполнять
#import "libpq.dll" int PQconnectdb(uchar &conninfo[]); #import
string connStrUnicode = "port=5433"; uchar connStrAnsi[]; StringToCharArray(connStrUnicode,connStrAnsi); int conn = PQconnectdb(connStrAnsi);
то ничего не логируется.
Может ли быть так, что библиотека не соответствует соглашению о вызове, поддерживаемому MQL5 ?
k47:
В таком случае будет ругаться уже терминал в логах.
Может ли быть так, что библиотека не соответствует соглашению о вызове, поддерживаемому MQL5 ?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
и соединиться :
во время выполнения PQconnectdb() падает с сообщением: initializing of pgTest (AUDCAD,H1) failed
Спецификация функции соединения из документации Postgres:
PQconnectdb
This function opens a new database connection using the parameters taken from the string conninfo.Makes a new connection to the database server.
Функция string UNICODE2ANSI(string s) нормально срабатывает в частности при соединении с MySQL.
Кто-нибудь знает что я делаю не так? :)
UPD: при указании хоста и порта в строке соединения результат аналогичный.