クライアントインターフェイスガイド > ADO.NET経由でのTDVサーバーへの接続 > ADO.NETドライバーをテストするためのサンプルコード > 特別なデータタイプの例
 
特別なデータタイプの例
このセクションには、CLOB、日付、時刻、日時など、特殊なデータタイプを定義および使用するさまざまな方法を示すいくつかのコードサンプルが含まれています。
以下は、時間データタイプを使用するコードを呼び出すプロシージャです。
public void TestTime()
{
string sql = "{call p_time(?time1,?date,?timestamp)}";
CompositeCommand cmd = new CompositeCommand(sql, conn);
cmd.CommandType = CommandType.StoredProcedure;
CompositeParameter timestamp = new CompositeParameter("?timestamp", new CompositeTimeStamp(DateTime.Parse("2003-12-24 03:12:52.112")));
CompositeParameter time = new CompositeParameter("?time1", new CompositeTime(DateTime.Parse("03:16:54.111")));
CompositeParameter date = new CompositeParameter("?date", DateTime.Parse("1999-09-11"), CompositeDbType.DATE);
timestamp.Direction = ParameterDirection.InputOutput;
time.Direction = ParameterDirection.InputOutput;
date.Direction = ParameterDirection.InputOutput;
cmd.Parameters.Add(time);
cmd.Parameters.Add(date);
cmd.Parameters.Add(timestamp);
try
{
cmd.ExecuteNonQuery();
string timeStr = ((DateTime)time.Value).ToString("HH:mm:ss.fff");
string dateStr = ((DateTime)date.Value).ToString("yyyy-MM-dd");
string timestampStr = ((DateTime)timestamp.Value).ToString("yyyy-MM-dd HH:mm:ss.fff");
}
catch (Exception ex)
{
throw ex;
}
}
 
日付、時刻、またはタイムスタンプのデータタイプを使用する場合は、そのデータタイプを指定するか、CompositeDate、CompositeTime、またはCompositeTimestampオブジェクトを使用する必要があります。
CompositeParameter date = new CompositeParameter("?date", DateTime.Parse("1999-09-11"), CompositeDbType.DATE)
 
新しいCompositeParameterオブジェクトを作成し、タイプを次のいずれかに設定できます。
CompositeDbType.DATE
CompositeDbType.TIME
CompositeDbType.TIMESTAMP
 
valueをCompositeTimeStamp、CompositeTime、またはCompositeDateオブジェクトに設定します。
DATE型パラメーターが指定されていない場合、ADO.NETドライバーはデフォルトで型をTimeStampに設定します。
Date(time、timestamp)値として取得される値は、DateTime(.NETオブジェクト)タイプです。 GetDateTimeメソッドを使用して、DateTimeオブジェクトに変換できる値を取得できます。
CompositeParameter timestamp = new CompositeParameter("?timestamp", new CompositeTimeStamp(DateTime.Parse("2003-12-24 03:12:52.112")));
 
CLOBタイプの定義は、次のコードに示されています。または、CompositeClobタイプを使用して探索できます。
public void TestClob()
{
try
{
CompositeConnection conn = GetConnection();
string sql = "insert into ALL_TYPE(ID,COLUMN_10) values(?id,?clob) ";
CompositeCommand cmd = new CompositeCommand(sql, conn);
CompositeParameter id = new CompositeParameter("?id", 111);
CompositeParameter clob = new CompositeParameter("?clob", "www.compositesw.com", CompositeDbType.CLOB);
cmd.Parameters.Add(clob);
cmd.Parameters.Add(id);
int cnt = cmd.ExecuteNonQuery();
}
catch (Exception e)
{
throw ex;
}
}