先日、お客様よりタイトルのご質問をいただき、サンプルコードを作成しました。せっかくですので、こちらでも共有したいと思います。
今回は、データベースの空き容量情報を取得する、%SYS.DatabaseQueryクラスのFreeSpaceクエリを使用したサンプルとします。
C#.Net と VB.Net で作成してみました。
★C#.Net
using System;
using InterSystems.Data.IRISClient;
{
class Program
{
static void Main(string[] args)
{
IRISConnection IRISConnect = new IRISConnection();
IRISConnect.ConnectionString = "Server=localhost;Port=1972;Namespace=USER;User ID=_SYSTEM;Password=SYS";
IRISConnect.Open();
String queryString = "select * from %SYS.DatabaseQuery_FreeSpace(?)"; // call %SYS.DatabaseQuery_FreeSpace(?) でもOK
IRISCommand cmd = new IRISCommand(queryString, IRISConnect);
IRISParameter p1 = new IRISParameter("Mask", IRISDbType.NVarChar);
p1.Value = "*";
cmd.Parameters.Add(p1);
IRISDataReader Reader = cmd.ExecuteReader();
while (Reader.Read())
{
// Select values : DatabaseName:0, Directory:1, MaxSize:2, Size:3, ExpansionSize:4, Available:5, %Free:6, DiskFreeSpace:7, Status:8, SizeInt:9, AvailableNum:10, DiskFreeSpaceNum:11, ReadOnly:12
Console.WriteLine(Reader.GetValue(0).ToString() + ", " + Reader.GetValue(3).ToString() + ", " + Reader.GetValue(5).ToString());
}
Reader.Close();
cmd.Dispose();
IRISConnect.Close();
}
}
}