我正在从pqsql数据库中读取信息(并从mysql中更改了我的引擎) 返回的字符串数据中有一些奇怪的东西,
如果db中的字段长度为50个字符,则返回的值具有50个字符长度,因此 即使使用较少的元素插入db中的值,返回的值大小也是50。
在mysql中,返回的值大小与在db中插入的大小相同。
例如
create table values(data char(50))
insert into table values('info');
当我使用PQgetvalue
获取此数据时res=PQexec(conn,"select * from values");
printf(" the value has the lenght of %d chars",strlen(PQgetvalue(res,0,0)));
它会显示
the value has the lenght of 50
我有点意外,因为现在我需要存储o以某种方式计算字段的实际大小,没有最大字段大小
我做错了什么?
(对不起错别字)
答案 0 :(得分:1)
该字段声明为char,而不是varchar。 char字段的值将始终具有声明的长度,可能在使用空格填充右边的值之后。根据您的描述,我会考虑将其更改为varchar。
请参阅http://www.postgresql.org/docs/8.2/static/datatype-character.html