Skip site navigation (1) Skip section navigation (2)

FW: Libpq - multibyte character support

From: "Pradeepkumar, Pyatalo (IE10)" <Pradeepkumar(dot)Pyatalo(at)honeywell(dot)com>
To: pgsql-novice(at)postgresql(dot)org
Subject: FW: Libpq - multibyte character support
Date: 2005-09-06 09:39:48
Message-ID: 77ED2BF75D59D1439F90412CC5B1097423F23FAF@ie10-sahara.hiso.honeywell.com (view raw or flat)
Thread:
Lists: pgsql-novice
> 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.
> 
> Regs,
> Pradeep
> 
> 

pgsql-novice by date

Next:From: Oliver ElphickDate: 2005-09-06 10:13:19
Subject: Re: howto to do an automated backup on windows xp?
Previous:From: meDate: 2005-09-06 09:32:33
Subject: Re: Last Id?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group