a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
93 lines
2.0 KiB
C#
93 lines
2.0 KiB
C#
//
|
|
// OciIntervalDescriptor.cs - used for an Oracle TIMESPAN/INTERVAL{YTM/DTS}
|
|
//
|
|
// Part of managed C#/.NET library System.Data.OracleClient.dll
|
|
//
|
|
// Part of the Mono class libraries at
|
|
// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
|
|
//
|
|
// Assembly: System.Data.OracleClient.dll
|
|
// Namespace: System.Data.OracleClient.Oci
|
|
//
|
|
// Author:
|
|
// Veerapuram Varadhan <vvaradhan@novell.com>
|
|
//
|
|
// Copyright (C) Novell Inc, 2009
|
|
//
|
|
|
|
using System;
|
|
using System.Data;
|
|
using System.Data.OracleClient;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace System.Data.OracleClient.Oci {
|
|
internal sealed class OciIntervalDescriptor : OciDescriptorHandle, IDisposable
|
|
{
|
|
#region Fields
|
|
|
|
OciErrorHandle errorHandle;
|
|
bool disposed = false;
|
|
|
|
#endregion // Fields
|
|
|
|
#region Constructors
|
|
|
|
public OciIntervalDescriptor (OciHandle parent, OciHandleType type, IntPtr newHandle)
|
|
: base (type, parent, newHandle)
|
|
{
|
|
}
|
|
|
|
#endregion // Constructors
|
|
|
|
#region Properties
|
|
|
|
public OciErrorHandle ErrorHandle {
|
|
get { return errorHandle; }
|
|
set { errorHandle = value; }
|
|
}
|
|
|
|
#endregion // Properties
|
|
|
|
#region Methods
|
|
|
|
protected override void Dispose (bool disposing)
|
|
{
|
|
if (!disposed) {
|
|
disposed = true;
|
|
base.Dispose (disposing);
|
|
}
|
|
}
|
|
|
|
public TimeSpan GetDayToSecond (OciHandle handle, OciErrorHandle errorHandle)
|
|
{
|
|
int days = 0;
|
|
int hours = 0;
|
|
int mins = 0;
|
|
int secs = 0;
|
|
int fsec = 0;
|
|
int fs = 0;
|
|
|
|
OciCalls.OCIIntervalGetDaySecond (handle, errorHandle, out days, out hours,
|
|
out mins, out secs, out fsec, this.handle);
|
|
if (fsec > 0) {
|
|
int fseci = (int) fsec;
|
|
fs = fseci / 1000000;
|
|
}
|
|
return new TimeSpan (days, hours, mins, secs, fs);
|
|
}
|
|
|
|
public int GetYearToMonth (OciHandle handle, OciErrorHandle errorHandle)
|
|
{
|
|
int years = 0;
|
|
int months = 0;
|
|
|
|
OciCalls.OCIIntervalGetYearMonth (handle, errorHandle, out years, out months, this.handle);
|
|
|
|
return ((years * 12) + months);
|
|
}
|
|
|
|
#endregion // Methods
|
|
}
|
|
}
|
|
|