Re: FW: Libpq - multibyte character support

From: "Pradeepkumar, Pyatalo (IE10)" <Pradeepkumar(dot)Pyatalo(at)honeywell(dot)com>
To: Miguel Higuera <miguelstratoss(at)gmail(dot)com>, "Pradeepkumar, Pyatalo (IE10)" <Pradeepkumar(dot)Pyatalo(at)honeywell(dot)com>, pgsql-admin(at)postgresql(dot)org
Subject: Re: FW: Libpq - multibyte character support
Date: 2005-09-07 06:10:24
Message-ID: 77ED2BF75D59D1439F90412CC5B1097424027290@ie10-sahara.hiso.honeywell.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

The problem that I am facing is not with creating the database to support
multi bytes. I have a code written in C/C++. I am using libpq functions to
do the database operations. But the problem is the libpq functions accept
the database queries only in the form of char * . It does not accept wchar_t
* If i have to execute a query say "SELECT * FROM GSNAMES WHERE GSName =
'some chinese_string'"....i am not able to pass the paramater to the libpq
function PQexe(PGconn *, char *). I need help regarding this.

_____

From: Miguel Higuera [mailto:miguelstratoss(at)gmail(dot)com]
Sent: Wednesday, September 07, 2005 10:34 AM
To: Pradeepkumar, Pyatalo (IE10); pgsql-admin(at)postgresql(dot)org
Subject: Re: [ADMIN] FW: Libpq - multibyte character support

CREATE DATABASE name ENCODING = WIN1256

THIS MAY BE THE SOLUTION
ALSO YOU CAN PROBE WITH :
ALT, LATIN1 TO LATIN9, EUC_CN, EUC_JP,EUCCREATE DATABASE name ENCODING =
WIN1256

THIS MAY BE THE SOLUTION
ALSO YOU CAN PROBE WITH :
ALT, LATIN1 TO LATIN9, EUC_CN, EUC_JP,EUC_KR......................

I WAIT THIS BE USEFULL
_KR......................

I WAIT THIS BE USEFULL

2005/9/6, Pradeepkumar, Pyatalo (IE10) <Pradeepkumar(dot)Pyatalo(at)honeywell(dot)com
<mailto:Pradeepkumar(dot)Pyatalo(at)honeywell(dot)com> >:

Hi all,

My question is does PgSQL libpq functions support multibyte
characters...if not then is there a way to provide multibyte data to
Postgres using libpq functions. The other question is does Postgres support
Chinese characters....if I insert chinese characters into a table, when I
read, will I get the same chinese characters. Please help me out in this
regard.

I have created a database with UNICODE support which has a table
GSNames(Gsname varchar(40), status int, errorcode int)
I tried to insert into this table from a simple C program using libpq
functions....but it gives error as libpq does not support wchar datatypes.
Here is the code -

int main()
{
// wchar_t szQuery[255];
char szQuery[255];

PGconn *DBCon;
PGresult *DBResult;

//Connect to the database with default settings
DBCon = PQsetdbLogin(NULL, NULL, NULL, NULL, "test1", "postgres",
""); //test1 is database created with UNICODE encoding

//check if there is any error in connecting to the database
if(PQstatus(DBCon) == CONNECTION_BAD)
{
fprintf(stderr,"\nGetAttributeInfo(): Connection to database
failed.");
fprintf(stderr,"\nGetAttributeInfo(): %s",
PQerrorMessage(DBCon));
return ERROR_DB_CON;
}
else
{
fprintf(stderr,"\nGetAttributeInfo(): Connection to database
successful.");
}

//form the DELETE command as character buffer.
//swprintf(szQuery,500,L"INSERT INTO gsnames values('×¢²á',2,2)");
sprintf(szQuery,"INSERT INTO gsnames values('×¢²á',2,2)");

//execute the command.
DBResult = PQexec(DBCon, (char *)szQuery);

//check for any errors in executing the query.
if(PQresultStatus(DBResult) != PGRES_COMMAND_OK)
{
fprintf(stderr,"\nGetAttributeInfo(): %s",
PQresultErrorMessage(DBResult));
PQclear(DBResult);
PQfinish(DBCon);
return ERROR_DB_EXEC;
}
else
{
fprintf(stderr,"\nDBInsertPointAttribute(): Insertion
successful. No. of rows affected = %d.", PQntuples(DBResult));

}

PQclear(DBResult);
PQfinish(DBCon);

return 0;
}

The problem is I am not able to pass multibyte characters to
postgres. Please help.....Thanks in advance.

Between I am using Postgres version 7.4.3. While installing Pgsql, I
dnt specify any encoding or multi byte character support for initdb.

Regs,
Pradeep

Browse pgsql-admin by date

  From Date Subject
Next Message Adam Witney 2005-09-07 09:50:44 pg_dump error
Previous Message Jim C. Nasby 2005-09-07 05:38:44 Re: [HACKERS] How to determine date / time of last postmaster restart