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.
21 using System.Globalization;
24 namespace FirebirdSql.Data.Firebird.DbSchema
26 internal class FbProcedures : FbDbSchema
30 public FbProcedures() : base("Procedures")
36 #region Protected Methods
38 protected override StringBuilder GetCommandText(object[] restrictions)
40 StringBuilder sql = new StringBuilder();
41 StringBuilder where = new StringBuilder();
45 "null AS PROCEDURE_CATALOG, " +
46 "null AS PROCEDURE_SCHEMA, " +
47 "rdb$procedure_name AS PROCEDURE_NAME, " +
48 "rdb$procedure_inputs AS INPUTS, " +
49 "rdb$procedure_outputs AS OUTPUTS, " +
50 "rdb$procedure_source AS SOURCE, " +
51 "rdb$description AS DESCRIPTION " +
55 if (restrictions != null)
59 /* PROCEDURE_CATALOG */
60 if (restrictions.Length >= 1 && restrictions[0] != null)
64 /* PROCEDURE_SCHEMA */
65 if (restrictions.Length >= 2 && restrictions[1] != null)
70 if (restrictions.Length >= 3 && restrictions[2] != null)
72 where.AppendFormat(CultureInfo.CurrentCulture, "rdb$procedure_name = @p{0}", index++);
78 sql.AppendFormat(CultureInfo.CurrentCulture, " WHERE {0} ", where.ToString());
81 sql.Append(" ORDER BY rdb$procedure_name");
86 protected override DataTable ProcessResult(DataTable schema)
88 schema.BeginLoadData();
90 foreach (DataRow row in schema.Rows)
92 if (row["INPUTS"] == DBNull.Value)
96 if (row["OUTPUTS"] == DBNull.Value)
102 schema.EndLoadData();
103 schema.AcceptChanges();