AFAIK сначала вам нужен встроенный файл SQL C (с расширением pgc
). Простой пример:
int main(void)
{
EXEC SQL BEGIN DECLARE SECTION;
int ordinaryInt;
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO tcp:postgresql://localhost:5432/postgres AS myconnection USER postgres USING '12345';
EXEC SQL INSERT INTO t (value) VALUES ('abcdefgj');
EXEC SQL COMMIT;
EXEC SQL DISCONNECT myconnection;
return 0;
}
Строка подключения хорошо объяснена в doc . После этого вам нужно ecpg.exe
, чтобы преобразовать вышеуказанный код в известный код C:
Перед компиляцией вы запускаете файл через встроенный SQL C
препроцессор, который преобразует используемые вами операторы SQL в специальные
вызовы функций. После компиляции необходимо связать со специальной библиотекой
который содержит необходимые функции.
Например:
"C:\Program Files (x86)\PostgreSQL\9.0\bin\ecpg.exe" -o ecpgTest.c ecpgTest.pgc
Ваш сгенерированный код C выглядит так:
/* Processed by ecpg (4.2.1) */
/* These include files are added by the preprocessor */
#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
/* End of automatic include section */
#line 1 "ecpgTest.pgc"
int main(void)
{
/* exec sql begin declare section */
#line 4 "ecpgTest.pgc"
int ordinaryInt ;
/* exec sql end declare section */
#line 5 "ecpgTest.pgc"
{ ECPGconnect(__LINE__, 0, "tcp:postgresql://localhost:5432/postgres" , "postgres" , "'12345'" , "myconnection", 0); }
#line 7 "ecpgTest.pgc"
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into t ( value ) values ( 'abcdefgj' )", ECPGt_EOIT, ECPGt_EORT);}
#line 9 "ecpgTest.pgc"
{ ECPGtrans(__LINE__, NULL, "commit");}
#line 10 "ecpgTest.pgc"
{ ECPGdisconnect(__LINE__, "myconnection");}
#line 12 "ecpgTest.pgc"
return 0;
}
Добавьте путь C:\Program Files (x86)\PostgreSQL\9.0\include
в Дополнительные каталоги включения (Свойства конфигурации → C / C ++) и поместите libecpg.lib
в Дополнительные зависимости (Линкер → Ввод). Вероятно, вам нужно добавить путь C:\Program Files (x86)\PostgreSQL\9.0\lib
в Дополнительные директории библиотеки (Линкер → Общие ) и вы готовы к работе (обратите внимание, что некоторые библиотеки DLL расположены в C:\Program Files (x86)\PostgreSQL\9.0\bin
).