Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
        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];
        }
Esempio n. 4
0
 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();
     }
 }
Esempio n. 5
0
        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 ");
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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());
        }
Esempio n. 8
0
        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);
                }
            }
        }
Esempio n. 9
0
 public abstract void GenerateSql(ISqlDumper dmp, IDataSynAdapter sada, SynSourceInfo info, SynQueryType qtype, Action <ISqlDumper> putCondition);