小编Opf*_*ash的帖子

使用TSqlParser

我正在尝试使用microsoft提供的TSql100Parser解析SQL.现在我使用它似乎意图使用的方式有点麻烦.此外,缺乏文档也无济于事.(例如:http://msdn.microsoft.com/en-us/library/microsoft.data.schema.scriptdom.sql.tsql100parser.aspx)

当我通过解析器运行一个简单的SELECT语句时,它返回一个包含SELECT语句的TSqlStatements集合.麻烦的是,TSqlSelect语句不包含诸如WHERE子句之类的属性,即使该子句是作为类实现的.http://msdn.microsoft.com/en-us/library/microsoft.data.schema.scriptdom.sql.whereclause.aspx 解析器确实识别WHERE子句,查看令牌流.所以,我的问题是,我正确使用解析器吗?现在令牌流似乎是解析器最有用的功能......

我的测试项目:

public static void Main(string[] args)
{
    var parser = new TSql100Parser(false);

            IList<ParseError> Errors;
            IScriptFragment result = parser.Parse(
                new StringReader("Select col from T1 where 1 = 1 group by 1;" +
                    "select col2 from T2;" +
                    "select col1 from tbl1 where id in (select id from tbl);"),
                    out Errors);

            var Script = result as TSqlScript;

            foreach (var ts in Script.Batches)
            {
                Console.WriteLine("new batch");

                foreach (var st in ts.Statements)
                {
                    IterateStatement(st);
                }
            } …
Run Code Online (Sandbox Code Playgroud)

t-sql parsing

20
推荐指数
3
解决办法
1万
查看次数

F# - 创建委托

目前正在阅读一系列关于F#的博客文章,针对C#程序员.现在我已经读完了第3部分(http://www.jelovic.com/weblog/?p=220),我感到很困惑.

和...之间的不同

让readLine = Console.ReadLine()

let readLine()= Console.ReadLine()

很清楚,但为什么需要指定两个括号 - () - 在以下行:

let print(text:string)()= Console.WriteLine文本

编译器是否应该能够通过省略大括号来确定您是否声明了委托打印,因此它看起来如下所示:

let print(text:string)= Console.WriteLine文本

此外,以下几行对我来说没什么意义

通常当你有一个带有不同类型参数的函数时,编译器可以区分函数调用和委托引用,但是对于单元,你必须强制它.

这是否意味着当参数不同时,编译器可以安全地假设它是一个函数调用?

谢谢大家的答案,现在我很清楚.至于报价,我们会让它休息.

f# c#-to-f# unit-type

4
推荐指数
1
解决办法
811
查看次数

按等号分组对象

我有一个对象的集合,我想使用如下所示的方法比较相等:

bool AreEqual(MyObject O1,MyObject O2);

将所有相等对象分组的最友好的表现方式是什么?显而易见的答案是将每个对象与集合中的所有其他对象进行比较,但这会影响性能(N ^ N,我相信).

LINQ group by operator能提供解决方案吗?

编辑:

我应该将MyObject命名为MyObject,因为我无法修改它的实现(并且它没有实现IComparable).这意味着我可能会使用ICR的解决方案.

c#

3
推荐指数
1
解决办法
3064
查看次数

标签 统计

c# ×1

c#-to-f# ×1

f# ×1

parsing ×1

t-sql ×1

unit-type ×1