OciParameterDescriptor.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. //
  2. // OciParameterDescriptor.cs
  3. //
  4. // Part of managed C#/.NET library System.Data.OracleClient.dll
  5. //
  6. // Part of the Mono class libraries at
  7. // mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
  8. //
  9. // Assembly: System.Data.OracleClient.dll
  10. // Namespace: System.Data.OracleClient.Oci
  11. //
  12. // Author:
  13. // Tim Coleman <[email protected]>
  14. //
  15. // Copyright (C) Tim Coleman, 2003
  16. //
  17. using System;
  18. using System.Data.OracleClient;
  19. using System.Runtime.InteropServices;
  20. namespace System.Data.OracleClient.Oci {
  21. internal sealed class OciParameterDescriptor : OciDescriptorHandle
  22. {
  23. #region Fields
  24. OciErrorHandle errorHandle;
  25. OciServiceHandle service;
  26. OciDataType type;
  27. #endregion // Fields
  28. #region Constructors
  29. public OciParameterDescriptor (OciHandle parent, IntPtr handle)
  30. : base (OciHandleType.Parameter, parent, handle)
  31. {
  32. }
  33. #endregion // Constructors
  34. #region Properties
  35. public OciErrorHandle ErrorHandle {
  36. get { return errorHandle; }
  37. set { errorHandle = value; }
  38. }
  39. #endregion // Properties
  40. #region Methods
  41. public string GetName ()
  42. {
  43. return GetAttributeString (OciAttributeType.Name, ErrorHandle);
  44. }
  45. public int GetDataSize ()
  46. {
  47. return (int) GetAttributeUInt16 (OciAttributeType.DataSize, ErrorHandle);
  48. }
  49. public OciDataType GetDataType ()
  50. {
  51. return (OciDataType) GetAttributeInt32 (OciAttributeType.DataType, ErrorHandle);
  52. }
  53. public string GetDataTypeName ()
  54. {
  55. switch(GetDataType())
  56. {
  57. case OciDataType.VarChar2:
  58. return "VarChar2";
  59. case OciDataType.Number:
  60. return "Number";
  61. case OciDataType.Integer:
  62. return "Integer";
  63. case OciDataType.Float:
  64. return "Float";
  65. case OciDataType.String:
  66. return "String";
  67. case OciDataType.VarNum:
  68. return "VarNum";
  69. case OciDataType.Long:
  70. return "Long";
  71. case OciDataType.VarChar:
  72. return "VarChar";
  73. case OciDataType.RowId:
  74. return "RowId";
  75. case OciDataType.Date:
  76. return "Date";
  77. case OciDataType.VarRaw:
  78. return "VarRaw";
  79. case OciDataType.Raw:
  80. return "Raw";
  81. case OciDataType.LongRaw:
  82. return "LongRaw";
  83. case OciDataType.UnsignedInt:
  84. return "UnsignedInt";
  85. case OciDataType.LongVarChar:
  86. return "LongVarChar";
  87. case OciDataType.LongVarRaw:
  88. return "LongVarRaw";
  89. case OciDataType.Char:
  90. return "Char";
  91. case OciDataType.CharZ:
  92. return "CharZ";
  93. case OciDataType.RowIdDescriptor:
  94. return "RowIdDescriptor";
  95. case OciDataType.NamedDataType:
  96. return "NamedDataType";
  97. case OciDataType.Ref:
  98. return "Ref";
  99. case OciDataType.Clob:
  100. return "Clob";
  101. case OciDataType.Blob:
  102. return "Blob";
  103. case OciDataType.BFile:
  104. return "BFile";
  105. case OciDataType.OciString:
  106. return "OciString";
  107. case OciDataType.OciDate:
  108. return "OciDate";
  109. default:
  110. return "Unknown";
  111. }
  112. }
  113. public short GetPrecision ()
  114. {
  115. return (short) GetAttributeByte (OciAttributeType.Precision, ErrorHandle);
  116. }
  117. public short GetScale ()
  118. {
  119. return (short) GetAttributeSByte (OciAttributeType.Scale, ErrorHandle);
  120. }
  121. public bool GetIsNull ()
  122. {
  123. return GetAttributeBool (OciAttributeType.IsNull, ErrorHandle);
  124. }
  125. #endregion // Methods
  126. }
  127. }