protected void GenerateSqlOrder(ISqlDumper dmp, IDataSynAdapter sada, SynSourceInfo info, SynQueryType qtype) { if (qtype == SynQueryType.SelectKeyMd5 || qtype == SynQueryType.SelectKeyNull) { dmp.Put(" order by %,i", (IEnumerable <string>)info.KeyCols); } }
public override void GenerateSql(ISqlDumper dmp, IDataSynAdapter sada, SynSourceInfo info, SynQueryType qtype, Action <ISqlDumper> putCondition) { GenerateSqlToFrom(dmp, sada, info, qtype); dmp.Put("%f", Table); if (putCondition != null) { putCondition(dmp); } GenerateSqlOrder(dmp, sada, info, qtype); }
public SynItem(Synchronizer syn, DataSynDefItem item) { m_item = item; m_options = m_item.GetOptions(); m_syn = syn; m_srcCache = Path.GetTempFileName(); m_dstCache = Path.GetTempFileName(); m_srcSada = m_syn.m_srcSada; m_dstSada = m_syn.m_dstSada; var vals = Enum.GetValues(typeof(SynTableData)); m_gridFills = new GridTable[vals.Length]; m_grids = new GridTable[vals.Length]; }
public Synchronizer(IDatabaseSource src, IDatabaseSource dst, IProgressInfo progress, DataSynDef datasyn, DataSynReportEnv repenv, string outFile, DataSynGuiEnv guienv) { m_source = src; m_target = dst; m_progress = progress; m_datasyn = datasyn; m_outFile = outFile; m_srcSada = m_source.Dialect.CreateDataSynAdapter(); m_dstSada = m_target.Dialect.CreateDataSynAdapter(); m_dstDDA = m_target.GetAnyDDA(); m_reportEnvObj = repenv; m_reportEnv = repenv; m_guienv = guienv; if (m_reportEnv == null) { m_reportEnv = new DummyDataSynReportEnv(); } }
protected void GenerateSqlToFrom(ISqlDumper dmp, IDataSynAdapter sada, SynSourceInfo info, SynQueryType qtype) { dmp.Put("^select %,i", (IEnumerable <string>)info.KeyCols); if (qtype == SynQueryType.SelectKeyMd5) { var colexprs = new List <string>(); bool was = false; foreach (string col in info.CompareCols) { if (was) { colexprs.Add("'(SEP#n3f9)'"); } var type = info.Model.Columns[col].DataType; colexprs.Add(sada.Coalesce(sada.GetHashableString(dmp.Dialect.QuoteIdentifier(col), type), "'(NULL#093foew)'")); was = true; } if (colexprs.Count == 0) { colexprs.Add("'(NONEswgg5)'"); } dmp.Put(","); dmp.WriteRaw(sada.Md5(sada.Concat(colexprs))); } if (qtype == SynQueryType.SelectKeyNull) { dmp.Put(",^null"); } if (qtype == SynQueryType.SelectAll) { if (info.DataCols.Length > 0) { dmp.Put(",%,i", (IEnumerable <string>)info.DataCols); } } dmp.Put(" from "); }
public static SynFootprint FromReader(IBedRecord record, int keylen, BedValueHolder holder, BedValueConvertor conv, IDataSynAdapter adapter) { var res = new SynFootprint(); res.KeyData = new string[keylen]; for (int i = 0; i < keylen; i++) { record.ReadValue(i); conv.ConvertValue(record, TypeStorage.String, holder); res.KeyData[i] = holder.GetString(); } record.ReadValue(keylen); res.Hash = adapter.ReadHash(record, conv, holder); return(res); }
private string CreateQuery(IEnumerable <string[]> keys, IDatabaseSource dbconn, IDataSynAdapter sada, SynSourceInfo info) { var sw = new StringWriter(); var dmp = dbconn.Dialect.CreateDumper(sw); m_srcInfo.Query.GenerateSql(dmp, sada, info, SynQueryType.SelectAll, d => { d.Put(" where "); PutConditionList(d, keys); }); //dmp.Put("select %,i, %,i from (%s) sub where ", m_srcInfo.KeyCols, m_srcInfo.DataCols, m_srcInfo.ReadQuery); //PutConditionList(dmp, keys); return(sw.ToString()); }
private void FillGridTable(IEnumerable <string[]> keys, GridTable grid, IDatabaseSource conn, IDataSynAdapter sada, SynSourceInfo info) { string query = CreateQuery(keys, conn, sada, info); using (var cmd = conn.Connection.SystemConnection.CreateCommand()) { cmd.CommandText = query; using (IBedReader reader = conn.GetAnyDDA().AdaptReader(cmd.ExecuteReader())) { grid.Fill(reader); } } }
public abstract void GenerateSql(ISqlDumper dmp, IDataSynAdapter sada, SynSourceInfo info, SynQueryType qtype, Action <ISqlDumper> putCondition);