예제 #1
0
        public void SetDateTime(OciHandle handle, OciErrorHandle errorHandle,
                                short year, byte month, byte day,
                                byte hour, byte min, byte sec, uint fsec, string timezone)
        {
            // Get size of buffer
            ulong   rsize  = 0;
            UIntPtr rsizep = new UIntPtr(rsize);
            int     status = OciCalls.OCIUnicodeToCharSet(handle, null, timezone, ref rsizep);

            // Fill buffer
            rsize = rsizep.ToUInt64();
            byte[] bytes = new byte[rsize];
            if (status == 0 && rsize > 0)
            {
                OciCalls.OCIUnicodeToCharSet(handle, bytes, timezone, ref rsizep);
            }

            if (fsec > 0)
            {
                fsec = fsec * 1000000;
            }

            uint timezoneSize = (uint)bytes.Length;

            OciCalls.OCIDateTimeConstruct(handle,
                                          errorHandle, this.Handle,
                                          year, month, day,
                                          hour, min, sec, fsec,
                                          bytes, timezoneSize);

            //uint valid = 0;
            //int result = OciCalls.OCIDateTimeCheck (handle,
            //	errorHandle, this.Handle, out valid);
        }