ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » MySQL及其它开源数据库 » ecpg 基础问题求解!!! 急!急!急!

标题: ecpg 基础问题求解!!! 急!急!急!
离线 chinaup
初级会员



精华贴数 0
个人空间 0
技术积分 16 (64065)
社区积分 0 (450409)
注册日期 2005-6-7
论坛徽章:0
      
      

发表于 2008-4-30 15:25 
ecpg 基础问题求解!!! 急!急!急!

问题: segmentation fault 为什么会这样呢?
运行环境:postgres-8.3.1 数据库 ecpg-4.4.0   debian-2.6.18-6-686
操作步骤:1)ecpg Test_ecpg.pgc
               2)gcc -Wall -g -o test Test_ecpg.c -I/usr/local/pgsql/include -lecpg -lpq
               3)./test
结果:segmentation fault
PS:以上操作都是以postgres身份,数据库和表都是没有问题的.
------------------------------------------------------------------------------------
代码如下:
#include <stdio.h>
EXEC SQL INCLUDE sqlca;
EXEC SQL BEGIN DECLARE SECTION;
int myid;
char *name = "lee";
char *db = "test@127.0.0.1";
char *user = "postgres";
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER SQLERROR SQLPRINT;
EXEC SQL WHENEVER NOT FOUND DO print_not_found();
void print_not_found()
{
    printf( "No results were returned.
" );
}
int main()
{
    EXEC SQL CONNECT TO :db AS conn USER :user;
    if( !ECPGstatus( __LINE__, "conn") )
    {
        fprintf( stderr, "unable to connect to database.
" );
        return 1;
    }
    EXEC SQL SELECT id INTO :myid FROM person WHERE name = :name; /*此句导致了段错误,通过gdb跟踪得知*/
    if( sqlca.sqlcode == 0 )
        printf( "ID of %s:  %d
", name, myid );
    EXEC SQL DISCONNECT conn;
    return 0;
}
--------------------------------------------------------------------------------------------------------------------------
各位大虾帮忙.


只看该作者    顶部
离线 chinaup
初级会员



精华贴数 0
个人空间 0
技术积分 16 (64065)
社区积分 0 (450409)
注册日期 2005-6-7
论坛徽章:0
      
      

发表于 2008-5-4 13:36 
Who can give any idea?


只看该作者    顶部
离线 chinaup
初级会员



精华贴数 0
个人空间 0
技术积分 16 (64065)
社区积分 0 (450409)
注册日期 2005-6-7
论坛徽章:0
      
      

发表于 2008-5-8 11:13 
大家说说自己的看法,不用管对错. 说不定你说的就是解决问题的关键


只看该作者    顶部
离线 chinaup
初级会员



精华贴数 0
个人空间 0
技术积分 16 (64065)
社区积分 0 (450409)
注册日期 2005-6-7
论坛徽章:0
      
      

发表于 2008-5-8 15:45 
终于解决了, libpq库版本问题.

具体方法:

在/usr/lib下制作一个libpq.so.5链接文件, link到最新的libpq.so.5.1即可.(postgres8.3默认的位置为/usr/local/pgsql/lib)

PS:/usr/lib下还有一个lbpg.so.4的库,不要删除它.


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问