2 * Firebird ADO.NET Data provider for .NET and Mono
4 * The contents of this file are subject to the Initial
5 * Developer's Public License Version 1.0 (the "License");
6 * you may not use this file except in compliance with the
7 * License. You may obtain a copy of the License at
8 * http://www.firebirdsql.org/index.php?op=doc&id=idpl
10 * Software distributed under the License is distributed on
11 * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
12 * express or implied. See the License for the specific
13 * language governing rights and limitations under the License.
15 * Copyright (c) 2002, 2005 Carlos Guzman Alvarez
16 * All Rights Reserved.
20 using System.Runtime.InteropServices;
22 namespace FirebirdSql.Data.Common
24 internal struct ArrayDesc
28 private byte dataType;
31 private string fieldName;
32 private string relationName;
33 private short dimensions;
35 private ArrayBound[] bounds;
43 get { return this.dataType; }
44 set { this.dataType = value; }
47 // Scale for numeric datatypes
50 get { return this.scale; }
51 set { this.scale = value; }
54 // Legth in bytes of each array element
57 get { return this.length; }
58 set { this.length = value; }
62 public string FieldName
64 get { return this.fieldName; }
65 set { this.fieldName = value; }
69 public string RelationName
71 get { return this.relationName; }
72 set { this.relationName = value; }
75 // Number of array dimensions
76 public short Dimensions
78 get { return this.dimensions; }
79 set { this.dimensions = value; }
82 // Specifies wheter array is to be accesed in
83 // row mayor or column-mayor order
86 get { return this.flags; }
87 set { this.flags = value; }
90 // Lower and upper bounds for each dimension - 16
91 public ArrayBound[] Bounds
93 get { return this.bounds; }
94 set { this.bounds = value; }
100 internal struct ArrayBound
104 private int lowerBound;
105 private int upperBound;
111 public int LowerBound
113 get { return this.lowerBound; }
114 set { this.lowerBound = value; }
117 public int UpperBound
119 get { return this.upperBound; }
120 set { this.upperBound = value; }