2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / FirebirdSql.Data.Firebird / FirebirdSql.Data.Firebird / DbSchema / FbCharacterSets.cs
1 /*
2  *      Firebird ADO.NET Data provider for .NET and     Mono 
3  * 
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
9  *
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.
14  * 
15  *      Copyright (c) 2002,     2004 Carlos     Guzman Alvarez
16  *      All     Rights Reserved.
17  */
18
19 using System;
20 using System.Data;
21 using System.Globalization;
22 using System.Text;
23
24 namespace FirebirdSql.Data.Firebird.DbSchema
25 {
26         internal class FbCharacterSets : FbDbSchema
27         {
28                 #region Constructors
29
30                 public FbCharacterSets() : base("CharacterSets")
31                 {
32                 }
33
34                 #endregion
35
36                 #region Protected Methods
37
38                 protected override StringBuilder GetCommandText(object[] restrictions)
39                 {
40                         StringBuilder sql       = new StringBuilder();
41                         StringBuilder where     = new StringBuilder();
42
43                         sql.Append(
44                                 @"SELECT " +
45                                         "null AS CHARACTER_SET_CATALOG, " +
46                                         "null AS CHARACTER_SET_SCHEMA, " +
47                                         "rdb$character_set_name AS CHARACTER_SET_NAME, " +
48                                         "rdb$character_set_id AS CHARACTER_SET_ID, " +
49                                         "rdb$default_collate_name AS DEFAULT_COLLATION," +
50                                         "rdb$bytes_per_character AS     BYTES_PER_CHARACTER, " +
51                                         "rdb$description AS     DESCRIPTION     " +
52                                  "FROM " +
53                                         "rdb$character_sets");
54
55                         if (restrictions !=     null)
56                         {
57                                 int     index = 0;
58
59                                 /* CHARACTER_SET_CATALOG */
60                                 if (restrictions.Length >= 1 && restrictions[0] != null)
61                                 {
62                                 }
63
64                                 /* CHARACTER_SET_SCHEMA */
65                                 if (restrictions.Length >= 2 && restrictions[1] != null)
66                                 {
67                                 }
68
69                                 /* CHARACTER_SET_NAME */
70                                 if (restrictions.Length >= 3 && restrictions[2] != null)
71                                 {
72                                         where.AppendFormat(CultureInfo.CurrentUICulture, "rdb$character_set_name = @p{0}", index++);
73                                 }
74                         }
75
76                         if (where.Length > 0)
77                         {
78                                 sql.AppendFormat(CultureInfo.CurrentUICulture, " WHERE {0} ", where.ToString());
79                         }
80
81                         sql.Append(" ORDER BY rdb$character_set_name");
82
83                         return sql;
84                 }
85
86                 #endregion
87         }
88 }