#include <stdio.h>
#include <stdlib.h>

void
print_error(void)
{
	fprintf(stderr, "sqlstate: %5s\n", sqlca.sqlstate);
	fprintf(stderr, "sqlerrm.sqlerrmc: %s\n", sqlca.sqlerrm.sqlerrmc);
	exit(1);
}

int
main(int argc, char *argv[])
{
	EXEC SQL BEGIN DECLARE SECTION;
	unsigned int oid;
	char dbname[64];
	int connlimit = -1;
	EXEC SQL END DECLARE SECTION;

	EXEC SQL WHENEVER SQLERROR CALL print_error();

	EXEC SQL CONNECT TO postgres;

	EXEC SQL DECLARE cur CURSOR FOR
		SELECT oid, datname
		FROM pg_database
		WHERE datname LIKE 'post%' ESCAPE '\' AND datconnlimit = :connlimit;

	EXEC SQL OPEN cur;

	EXEC SQL WHENEVER NOT FOUND DO BREAK;
	while (1)
	{
		EXEC SQL FETCH cur INTO :oid, :dbname;
		printf("oid=%u  dbname=%s\n", oid, dbname);
	}

	EXEC SQL CLOSE cur;
	EXEC SQL ROLLBACK;

	EXEC SQL DISCONNECT;
	
	return 0;
}
