public static int NextGeneratorValue(string generator)
 {
     try
     {
         return(Convert.ToInt32(SqlText.ExecuteScalar(String.Format("SELECT NEXT VALUE FOR {0} FROM RDB$DATABASE", generator))));
     }
     catch (Exception)
     {
         return(0);
     }
 }
 public static int NextSequenceValue(string sequence)
 {
     try
     {
         return(Convert.ToInt32(SqlText.ExecuteScalar(String.Format("select {0}.nextval from dual", sequence))));
     }
     catch (Exception)
     {
         return(0);
     }
 }
 public static object[] Execute(string text, params System.Object[] args)
 {
     using (SqlText sel = Create(text, args))
         if (sel.Read())
         {
             object[] result = new object[sel.Reader.FieldCount];
             sel.Reader.GetValues(result);
             return(result);
         }
         else
         {
             return(null);
         }
 }
        public static SqlText Create(string text, params System.Object[] args)
        {
            SqlText sel            = new SqlText(text);
            Match   m              = Regex.Match(text, String.Format("({0}\\w+)", sel.ParameterMarker));
            int     parameterIndex = 0;

            while (m.Success)
            {
                sel.AddParameter(m.Value, args[parameterIndex]);
                parameterIndex++;
                m = m.NextMatch();
            }
            return(sel);
        }
 public static int ExecuteNonQuery(string text, params System.Object[] args)
 {
     using (SqlText sel = Create(text, args))
         return(sel.ExecuteNonQuery());
 }
 public static object ExecuteScalar(string text, params System.Object[] args)
 {
     using (SqlText sel = Create(text, args))
         return(sel.ExecuteScalar());
 }