当前位置: 代码迷 >> DB2 >> db2 存储过程中无法读写文件,不知道什么原因,多谢
  详细解决方案

db2 存储过程中无法读写文件,不知道什么原因,多谢

热度:8864   发布时间:2013-02-26 00:00:00.0
db2 存储过程中无法读写文件,不知道什么原因,紧急求助!谢谢!
各位同仁,小弟现在在Aix下写db2存储过程,自己只是能看懂代码,还不是非常了解存储过程。现在是仿着别人的写。

需要在存储过程中读写文件,我写了一个,但是读不了,在存储过程中使用ffopen(已存在全路径文件名,'r')读文件,读不了,返回-1。
我也不知道这个ffopen是存储过程自带的还是在哪编的。但是别人的那个存储过程却能读写文件,同样的方式,人家的可以读,我的就读不了,我看那文件的权限三个组都有读的权限。

然后我就测试读写,用ffopen(文件名,'w+b'),文件能创建,但是创建了空文件,用ffopen(文件名,'r')也没法读,但是这次返回的是-268416704。

希望各路高手好汉能给解惑!谢谢!

------解决方案--------------------------------------------------------
FILE *t;
mode_t Mode2;
Mode2 = 0777;
chmod("/log/log",Mode2);

t=fopen("/log/log","a");
fprintf(t,"-->start of stored procedure \n");
 这样就可以创建并追加文件内容了。
------解决方案--------------------------------------------------------
ffopen应该不是C的标准函数。
------解决方案--------------------------------------------------------
这个应该是和权限有关,在db2的存储过程里执行的,用户应该不是你数据库名字的那个权限吧,具体的原因我也说不明白。
  相关解决方案