jinwh12 发表于 2013-04-16 10:58

新手咨询:informix如何访问系统表

执行以下perl脚本:
#!env perl -w
#Author: autoCreated
sub getUsers()
{      
      my $string = "";   
         $s = qx{dbaccessol_informix1170<<EOF
                select * from sysusers;
                EOF};
      print "s=$s";
}
getUsers();

提示 :Database not found or no system permission.
         ISAM error:no record found.
--------------------------------------------------------------------------
ol_informix1170 是安装informix时默认建的一个库;因为我只需要获取系统表的一些信息来判断informix是否做了安全加固,所以没有业务库
初次接触informix,请大拿们指点一下:如何获取informix的系统表数据;小弟需要的数据有:
select * from sysusers;
select systables.tabname, systabauth.* from systables, systabauth
where systables.tabid = systabauth.tabid and systables.tabid >99 order by tabname;

liaosnet 发表于 2013-04-16 20:16

dbaccessol_informix1170<<EOF
------------------->
ol_informix1170 改成具体的database,这个database列表在sysmaster库中。

因为ol_informix1170实际上是INFORMIXSERVER,并不是具体的库。。

jinwh12 发表于 2013-04-18 14:27

十分感谢楼上的解答

jinwh12 发表于 2013-04-20 09:17

linux/unix核心的操作系统已经实现了;但是windows的怎么搞呢?
我写了一个bat:
set INFORMIXDIR=D:\Informix\11.70
set REGMACHINE=\\SKY-20121229HBI
set INFORMIXSERVER=ol_informix1170
set ONCONFIG=onconfig.ol_informix1170
echo %PATH%
set PATH=%INFORMIXDIR%\bin;%PATH%
dbaccess -e sysmaster test.sql
pause

test.sql:
select * from sysusers;

但是dos窗口没有期望的结果显示
页: [1]
查看完整版本: 新手咨询:informix如何访问系统表