Example #1
0
        public void TestParserSql()
        {
            string     sql1   = @"SELECT (SELECT top 1 sklad FROM lcs.sk_hlavicka h WHERE h.cislo_subjektu = s.cislo_subjektu)
 ,s.*
FROM lcs. [subjekty] s with (updlock, holdlock)
   /* podmnožina hlaviček pro pořadač 15307 a sklady s referencí 6%, a doklady s referencí obsahující 3 */
inner join (select * from lcs.sk_hlavicka where cislo_poradace = 15307) x on x.cislo_subjektu = s.cislo_subjektu 
    and (x.sklad in (select sk.cislo_subjektu from lcs.sk_sklad sk join lcs.subjekty su on su.cislo_subjektu = sk.cislo_subjektu where su.reference_subjektu like '6%'))
where s.reference_subjektu like '%3%' or s.nazev_subjektu = 'Kontra''A';

DECLARE @cislo INT;
SET @cislo = 15307;
";
            ParsedItem result = Parser.ParseString(sql1, DefaultSettings.MsSql);
            string     sql2   = result.Text;
            string     sql3   = ((IParsedItemExtended)result).TextEdit;

            string rtf = ((IParsedItemExtended)result).RtfText;

            string segmentName = DefaultSettings.SQL_CODE;
            string tables      = "";

            result.ScanItems(
                null,
                f => (f.SegmentName == segmentName),
                t =>
            {
                if (t.ItemType == Data.Parsing.ItemType.Text)
                {
                    tables += t.Text + "; ";
                }
                return(null);
            });
        }