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)); }
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)); }
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)); }