Ejemplo n.º 1
0
        /// <summary>
        ///   Executes the query and returns the first column of the first row in the result set returned by the query. All other columns and rows are ignored.
        /// </summary>
        /// <returns> The first column of the first row in the result set. </returns>
        public override object ExecuteScalar()
        {
            object ret = null;

            BindParameters();
            using (CUBRIDDataReader dr = ExecuteInternal())
            {
                if (dr.Read())
                {
                    ret = dr.GetValue(0);
                }
                if (ret == null)
                {
                    if (dr.GetColumnCount() != 0)
                    {
                        ret = DBNull.Value;
                    }
                }
                dr.Close();
            }
            return(ret);
        }
Ejemplo n.º 2
0
        private void LoadTableColumns(DataTable dt, string tableName, string columnRestriction)
        {
            string sql =
                String.Format(
                    "select * from db_attribute where class_name like '{0}' and attr_name like '{1}' order by def_order asc",
                    tableName, columnRestriction);

            using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn))
            {
                int pos = 1;
                using (CUBRIDDataReader reader = (CUBRIDDataReader)cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        string  colName = reader.GetString(0);
                        DataRow row     = dt.NewRow();

                        row["TABLE_CATALOG"]    = conn.Database;
                        row["TABLE_SCHEMA"]     = conn.Database;
                        row["TABLE_NAME"]       = tableName;
                        row["COLUMN_NAME"]      = colName;
                        row["ORDINAL_POSITION"] = pos++;

                        for (int i = 0; i < reader.GetColumnCount(); i++)
                        {
                            switch (reader.GetColumnName(i))
                            {
                            case "defalut_value":
                                row["COLUMN_DEFAULT"] = reader.GetString(i);
                                break;

                            case "is_nullable":
                                row["IS_NULLABLE"] = reader.GetString(i).Equals("YES");
                                break;

                            case "data_type":
                                row["DATA_TYPE"] = reader.GetString(i);
                                break;

                            case "prec":
                                row["NUMERIC_PRECISION"] = reader.GetInt(i);
                                break;

                            case "scale":
                                row["NUMERIC_SCALE"] = reader.GetInt(i);
                                break;

                            case "code_set":
                            case "charset":
                                row["CHARACTER_SET"] = reader.GetString(i);
                                break;

                            default:
                                break;
                            }
                        }

                        dt.Rows.Add(row);
                    }
                }
            }
        }