#include <stdio.h>
EXEC SQL include sqlca;
EXEC SQL define FNAME_LEN 16;
int main()
{
EXEC SQL begin declare section;
char dbname[FNAME_LEN + 1];
int total;
int free;
int use;
int lock;
int session;
char servername[FNAME_LEN + 1];
char dname[FNAME_LEN + 1];
EXEC SQL end declare section;
printf("Enter name of database:");
gets(dbname);
EXEC SQL connect to :dbname;
if(SQLCODE == 0)
{
printf("Database %s is now open.\n",dbname);
// servername
EXEC SQL declare servername cursor for
select dbsvrnm into :servername from sysmaster:syssqlhosts;
// dbspace size
EXEC SQL declare democursor cursor for
select d.name, round(sum(c.chksize*c.pagesize)/1024,2),
round(sum(c.nfree*c.pagesize)/1024,2),
round((sum(c.chksize*c.pagesize) - sum(c.nfree*c.pagesize))/sum(c.chksize*c.pagesize) *100,2)
into :dname, :total, :free, :use
from sysmaster:syschunks c, sysmaster:sysdbspaces d
where c.dbsnum = d.dbsnum group by d.name;
// lock
EXEC SQL declare lock cursor for
select count(type) into :lock from sysmaster:syslocks where type like '%X';
// session
EXEC SQL declare session cursor for
select count(*) into :session from sysmaster:sysuserthreads;
EXEC SQL open democursor;
for(;;)
{
EXEC SQL fetch democursor;
if(sqlca.sqlcode != 0)
break;
EXEC SQL open servername;
EXEC SQL fetch servername;
if(sqlca.sqlcode != 0)
break;
printf("%s-%s\n",servername,dname);
printf("total - %dKb\n",total);
printf("free - %dKb\n",free);
printf("use - %d%%\n",use);
}
EXEC SQL open servername;
EXEC SQL fetch servername;
EXEC SQL open lock;
EXEC SQL fetch lock;
printf("[%s]Lock - %d\n",servername, lock);
EXEC SQL open session;
EXEC SQL fetch session;
printf("[%s]Session - %d\n",servername, session);
}
else
printf("Error %ld opening database\n",SQLCODE);
EXEC SQL close democursor;
EXEC SQL free democursor;
EXEC SQL close servername;
EXEC SQL free servername;
EXEC SQL close lock;
EXEC SQL free lock;
EXEC SQL close session;
EXEC SQL free session;
exit(0);
return 0;
}
두꺼운 부분이 db에 접속하는 건데.... db명으로는 잘 됩니다... 그런데...instance명으로 접속할려면 25550 에러가 납니다..
메뉴얼을 보니 '@서버명' 들어가는데...저는 왜 안될까요....
한번 봐주시면 고맙겠습니다..