Hello,
Configuration:
Platforms: Linux Debian 10.7
Informix server: IDS IDS-14.10.FC5
Informix client: CSDK 4.50.FC5
DB_LOCALE = en_us.utf8
CLIENT_LOCALE = en_us.8859-15
Can someone from IBM explain this? Depending on the usage of DATABASE or CONNECT TO, a PREPARE + EXECUTE produces error -202 with CONNECT:
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>
#include <string.h>
#include <locale.h>
void check_sqlcode(const char *msg)
{
printf(">> [%s]: sqlcode=%d\n", msg, sqlca.sqlcode);
if (sqlca.sqlcode != 0 && sqlca.sqlcode != 100)
exit(1);
}
int main(int argc, char ** argv)
{
/* Not related but that's what we do in our C program */
if (setlocale(LC_ALL,NULL)==NULL) {
fprintf(stderr,">> Could not set the locale env...\n");
exit(1);
}
#ifdef USE_DATABASE
EXEC SQL DATABASE test2;
check_sqlcode("DATABASE test2");
#else
EXEC SQL CONNECT TO "test2";
check_sqlcode("CONNECT TO test2");
#endif
EXEC SQL DROP TABLE tab1;
EXEC SQL CREATE TABLE tab1 ( pk INT, vc100 VARCHAR(100) );
check_sqlcode("CREATE TABLE tab1");
EXEC SQL PREPARE s1 FROM "INSERT INTO tab1 VALUES ( 101, 'Wörthstr' )";
check_sqlcode("PREPARE s1");
EXEC SQL EXECUTE s1;
check_sqlcode("EXECUTE s1");
}
sf@toro:~/genero/devel/fgl/tests$ esql -o esql-8859-15.bin esql-8859-15.ec && ./esql-8859-15.bin
>> [CONNECT TO test2]: sqlcode=0
>> [CREATE TABLE tab1]: sqlcode=0
>> [PREPARE s1]: sqlcode=-202
sf@toro:~/genero/devel/fgl/tests$ esql -DUSE_DATABASE -o esql-8859-15.bin esql-8859-15.ec && ./esql-8859-15.bin
>> [DATABASE test2]: sqlcode=0
>> [CREATE TABLE tab1]: sqlcode=0
>> [PREPARE s1]: sqlcode=0
>> [EXECUTE s1]: sqlcode=0
sf@toro:~/genero/devel/fgl/tests$ file esql-8859-15.ec
esql-8859-15.ec: C source, ISO-8859 text
sf@toro:~/genero/devel/fgl/tests$ locale
LANG=
LANGUAGE=
LC_CTYPE="en_US.iso885915"
LC_NUMERIC="en_US.iso885915"
LC_TIME="en_US.iso885915"
LC_COLLATE="en_US.iso885915"
LC_MONETARY="en_US.iso885915"
LC_MESSAGES="en_US.iso885915"
LC_PAPER="en_US.iso885915"
LC_NAME="en_US.iso885915"
LC_ADDRESS="en_US.iso885915"
LC_TELEPHONE="en_US.iso885915"
LC_MEASUREMENT="en_US.iso885915"
LC_IDENTIFICATION="en_US.iso885915"
LC_ALL=en_US.iso885915
sf@toro:~/genero/devel/fgl/tests$ dbaccess test2 -
Database selected.
> select * from tab1;
pk 101
vc100 Wörthstr
1 row(s) retrieved.
------------------------------
Sebastien FLAESCH
------------------------------
#Informix