Exemple #1
0
        protected bool InsertImpl(DataSource ds, ColumnMode mode, params DataColumn[] columns)
        {
            InsertBucket bucket = GetInsertSql(ds, mode, columns);
            string       sql    = ds.Provider.BuildInsertSql(GetTableName(), bucket.Names, bucket.Values, bucket.Id);

            return(InsertImpl(ds, sql, this, bucket.Parameters));
        }
Exemple #2
0
        protected bool InsertOrReplaceImpl(DataSource ds, ColumnMode mode, params DataColumn[] columns)
        {
            if (ds.Provider.SupperReplace)
            {
                InsertBucket bucket = GetInsertSql(ds, mode, columns);
                string       sql    = ds.Provider.BuildInsertOrReplaceSql(GetTableName(), bucket.Names, bucket.Values, bucket.Id);
                return(ds.ExecuteNonQuery(sql, bucket.Parameters) > 0);
            }

            DataWhereQueue ps = null;

            KeyValuePair <string, FieldInfo>[] pks = GetPrimaryKeys();
            foreach (KeyValuePair <string, FieldInfo> pair in pks)
            {
                if (ps == null)
                {
                    ps = new DataParameter(pair.Key, pair.Value.GetValue(this));
                }
                else
                {
                    ps &= new DataParameter(pair.Key, pair.Value.GetValue(this));
                }
            }
            if (ExecuteCount(ds, ps) > 0)
            {
                return(UpdateImpl(ds, mode, columns, ps) > 0);
            }

            return(InsertImpl(ds, mode, columns));
        }
Exemple #3
0
        protected static bool InsertImpl <T>(T instance, DataSource ds, ColumnMode mode, params DataColumn[] columns) where T : DbTable
        {
            InsertBucket bucket = TDbTable <T> .GetInsertSql(ds, instance, mode, columns);

            string sql = ds.Provider.BuildInsertSql(GetTableName <T>(), bucket.Names, bucket.Values, bucket.Id);

            return(InsertImpl(ds, sql, instance, bucket.Parameters));
        }