免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1627 | 回复: 2
打印 上一主题 下一主题

为什么我的udf drop不掉?大家帮帮忙啊! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-21 16:09 |只看该作者 |倒序浏览
函数代码如下:
/*******************************************************/
/* 功能:从文件中读出数据                              */
/* 输入参数:1.文件指针  2.读数据长度                  */
/* 输出参数: 1.读出字符串(出错时为-1)                  */
/*******************************************************/
#ifdef _cplusplus
extern "C"
#endif
void SQL_API_FN ffread(
SQLUDF_INTEGER   *infp,
SQLUDF_INTEGER   *rsize,
SQLUDF_VARCHAR   *outstring,
SQLUDF_NULLIND   *infpnull,
SQLUDF_NULLIND   *rsizenull,
SQLUDF_NULLIND   *outstringnull,
SQLUDF_TRAIL_ARGS
)
{
FILE *fp;
int len=1024;
long rlen;/*实际读出长度*/
char* ret;
char  tmpbuf[1024];

if(*infpnull == -1 ){
*outstring = NULL;
*outstringnull = -1;
return;
}

fp = ( FILE* ) *infp;
           ret = fgets(tmpbuf, len ,fp);
//             fread(tmpbuf, len,1, fp);
             if (ret == NULL){
                        *outstring=NULL;
                        *outstringnull = -1;
                        return;
                }

rlen = strlen( tmpbuf );
if( rlen >; *rsize )
rlen = *rsize ;

//              memcpy(outstring, tmpbuf, rlen);
outstring[rlen] = '\x0';

}
然后我写了一个简单得存储过程调用了一下这个函数,还有一个写文件的write函数,但是存储过程出不来结果(系统没有反应),强行推出以后,再去drop function ,结果发现drop不掉了,也不知道为什么!!
在我一句一句的测试过程中,我发现这个函数体中,一到fgets函数那系统就没有了反应,若注释掉这一句,存储过程可以返回!!!
声明一下,我的数据库版本是DB2 7.2.0,系统是turbo linux,我怀疑是不是db2的版本太低,与c语言的兼容性不好!!
请诸位给点意见,谢谢啦!!

论坛徽章:
0
2 [报告]
发表于 2004-10-22 10:07 |只看该作者

为什么我的udf drop不掉?大家帮帮忙啊!

先把调用这个函数的存储过程drop掉

论坛徽章:
0
3 [报告]
发表于 2004-10-22 10:31 |只看该作者

为什么我的udf drop不掉?大家帮帮忙啊!

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP