Microsoft.SqlServer.Management.SqlParser.Native 172.0.1

Prefix Reserved
dotnet add package Microsoft.SqlServer.Management.SqlParser.Native --version 172.0.1                
NuGet\Install-Package Microsoft.SqlServer.Management.SqlParser.Native -Version 172.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Microsoft.SqlServer.Management.SqlParser.Native" Version="172.0.1" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以引用包。
paket add Microsoft.SqlServer.Management.SqlParser.Native --version 172.0.1                
#r "nuget: Microsoft.SqlServer.Management.SqlParser.Native, 172.0.1"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将此复制到交互式工具或脚本的源代码中,以引用包。
// Install Microsoft.SqlServer.Management.SqlParser.Native as a Cake Addin
#addin nuget:?package=Microsoft.SqlServer.Management.SqlParser.Native&version=172.0.1

// Install Microsoft.SqlServer.Management.SqlParser.Native as a Cake Tool
#tool nuget:?package=Microsoft.SqlServer.Management.SqlParser.Native&version=172.0.1                

Microsoft.SqlServer.Management.SqlParser.Native

概述

此 nuget 包提供了 Microsoft.SqlServer.Management.SqlParser 的 MSIL 和本地预先编译 (AoT) 版本,供 Net8.0 应用程序使用。

AoT 二进制文件可由 AoT 控制台应用程序 消费。

有一个专门为使用 C++ 应用程序等本地调用者提供的入口点 - Parse

这是原型

    [System.Text.Json.Serialization.JsonSourceGenerationOptions(PropertyNamingPolicy = System.Text.Json.Serialization.JsonKnownNamingPolicy.CamelCase)]
    [System.Text.Json.Serialization.JsonSerializable(typeof(ParseResultBase))]
    internal partial class ParseResultContext : System.Text.Json.Serialization.JsonSerializerContext
    { 
    }

    public static class NativeApi
    {
        /// <summary>
        /// Native API for parsing TSQL
        /// </summary>
        /// <param name="pString">The text to parse, encoded in UTF 8</param>
        /// <param name="pVersion">An identifier of the version, encoded in UTF8. Can be a number associated with a 
        /// SQL Server version like "160" or a member of the TransactSqlVersion enumeration</param>
        /// <returns></returns>
        [UnmanagedCallersOnly(EntryPoint = "Parse")]
        public static IntPtr Parse(IntPtr pString, IntPtr pVersion)
        {
        }
    }

入门

这是一个示例 C++ 程序,列出调用 Parse 并打印结果的代码。

#include <windows.h>

typedef char* (*parse)(const char*, const char*);

int main()
{
    HMODULE h = ::LoadLibrary(L"win-x64\\native\\Microsoft.SqlServer.Management.SqlParser.dll");
    parse parser = (parse)::GetProcAddress(h, "Parse");
    char* result = parser("sel b from foo", "160");
    printf(result);
}

输出

{"batchCount":1,"parseErrors":[{"message":"Incorrect syntax near \u0027from\u0027.","start":{"lineNumber":1,"columnNumber":7,"offset":6},"end":{"lineNumber":1,"columnNumber":11,"offset":10},"isWarning":false,"type":1}],"resultId":1}
产品 兼容和额外的计算目标框架版本。
.NET net8.0 兼容。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
兼容目标框架
包含的目标框架(在包中)
更多关于 目标框架.NET Standard 的信息。
  • net8.0

    • 无依赖性。

NuGet 包

此包未被任何 NuGet 包使用。

GitHub 仓库

此包未被任何流行 GitHub 仓库使用。

版本 下载 最后更新
172.0.1 1,224 3/21/2024

查看包中的 CHANGELOG.md 文件