Reputation: 495
We are using ECPG and host variables to connect to a postgres database. We're trying to understand when to use char[]
vs VARCHAR[]
as our host binding variable. The documentation doesn't provide any pros/cons or use-cases.
For example:
Given column
x VARCHAR (10)
Why would I use
EXEC SQL BEGIN DECLARE SECTION;
char theX[10];
EXEC SQL END DECLARE SECTION;
cout << theX;
vs. say
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR theX[10];
EXEC SQL END DECLARE SECTION;
cout << theX.arr;
Thanks!
https://www.postgresql.org/docs/current/ecpg-variables.html
Upvotes: 2
Views: 1044
Reputation: 246383
It does not matter which type you use in C. As the documentation describes, the difference is that VARCHAR
is a struct that also contains the length of the string, while char
is the normal null-terminated C string.
If you need the length, VARCHAR
might be more convenient.
Upvotes: 1