mirror of
https://github.com/Microsoft/sql-server-samples.git
synced 2025-12-08 14:58:54 +00:00
Merge pull request #1031 from dbrownems/master
Updated T4 template for SQL Script and misc fixes
This commit is contained in:
@@ -9,10 +9,16 @@ using System.Threading;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class Curl
|
public partial class Curl
|
||||||
{
|
{
|
||||||
|
static Curl()
|
||||||
|
{
|
||||||
|
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||||
|
}
|
||||||
|
|
||||||
[SqlFunction]
|
[SqlFunction]
|
||||||
[return: SqlFacet(MaxSize = -1)]
|
[return: SqlFacet(MaxSize = -1)]
|
||||||
public static SqlChars Get(SqlChars H, SqlChars url)
|
public static SqlChars Get(SqlChars H, SqlChars url)
|
||||||
{
|
{
|
||||||
|
|
||||||
var client = new WebClient();
|
var client = new WebClient();
|
||||||
AddHeader(H, client);
|
AddHeader(H, client);
|
||||||
return new SqlChars(
|
return new SqlChars(
|
||||||
@@ -24,6 +30,7 @@ public partial class Curl
|
|||||||
[SqlProcedure]
|
[SqlProcedure]
|
||||||
public static void Post(SqlChars H, SqlChars d, SqlChars url)
|
public static void Post(SqlChars H, SqlChars d, SqlChars url)
|
||||||
{
|
{
|
||||||
|
|
||||||
var client = new WebClient();
|
var client = new WebClient();
|
||||||
AddHeader(H, client);
|
AddHeader(H, client);
|
||||||
if (d.IsNull)
|
if (d.IsNull)
|
||||||
@@ -39,6 +46,7 @@ public partial class Curl
|
|||||||
[SqlProcedure]
|
[SqlProcedure]
|
||||||
public static void PostWithRetry(SqlChars H, SqlChars d, SqlChars url)
|
public static void PostWithRetry(SqlChars H, SqlChars d, SqlChars url)
|
||||||
{
|
{
|
||||||
|
|
||||||
var client = new WebClient();
|
var client = new WebClient();
|
||||||
AddHeader(H, client);
|
AddHeader(H, client);
|
||||||
if (d.IsNull)
|
if (d.IsNull)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>SqlClr</RootNamespace>
|
<RootNamespace>SqlClr</RootNamespace>
|
||||||
<AssemblyName>SqlClrCurl</AssemblyName>
|
<AssemblyName>SqlClrCurl</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|||||||
@@ -24,27 +24,26 @@ SELECT @hash = hash
|
|||||||
FROM sys.trusted_assemblies ta
|
FROM sys.trusted_assemblies ta
|
||||||
WHERE ta.description = N'SqlClrCurl'
|
WHERE ta.description = N'SqlClrCurl'
|
||||||
|
|
||||||
EXEC sp_drop_trusted_assembly @hash;
|
if (@hash is not null)
|
||||||
|
EXEC sp_drop_trusted_assembly @hash;
|
||||||
GO
|
GO
|
||||||
|
|
||||||
--Drop the assembly if it already exists
|
--Drop the assembly if it already exists
|
||||||
DROP ASSEMBLY IF EXISTS SqlClrCurl;
|
DROP ASSEMBLY IF EXISTS SqlClrCurl;
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
DECLARE @assembly VARBINARY(MAX) = <#= "0x" + BitConverter.ToString(System.IO.File.ReadAllBytes(this.Host.ResolvePath("bin\\Release\\SqlClrCurl.dll"))).Replace("-","") #>
|
||||||
DECLARE @hash VARBINARY(64);
|
DECLARE @hash VARBINARY(64);
|
||||||
SELECT @hash = HASHBYTES('SHA2_512', BulkColumn)
|
SELECT @hash = HASHBYTES('SHA2_512', @assembly)
|
||||||
FROM OPENROWSET(BULK '<#= this.Host.ResolvePath("bin\\Release\\SqlClrCurl.dll") #>', SINGLE_BLOB) AS assembly_content
|
|
||||||
|
|
||||||
IF(@hash IS NOT NULL)
|
IF(not exists (select * from sys.trusted_assemblies where hash = @hash))
|
||||||
EXEC sp_add_trusted_assembly @hash, N'SqlClrCurl'
|
EXEC sp_add_trusted_assembly @hash, N'SqlClrCurl'
|
||||||
ELSE
|
ELSE
|
||||||
PRINT 'Cannot create hash for assembly!'
|
print 'Hash already exists'
|
||||||
GO
|
|
||||||
|
|
||||||
--Create the assembly
|
--Create the assembly
|
||||||
CREATE ASSEMBLY SqlClrCurl
|
CREATE ASSEMBLY SqlClrCurl
|
||||||
FROM '<#= this.Host.ResolvePath("bin\\Release\\SqlClrCurl.dll") #>'
|
FROM @assembly
|
||||||
WITH PERMISSION_SET = EXTERNAL_ACCESS;
|
WITH PERMISSION_SET = EXTERNAL_ACCESS;
|
||||||
GO
|
GO
|
||||||
|
|
||||||
@@ -60,4 +59,4 @@ GO
|
|||||||
|
|
||||||
CREATE PROCEDURE CURL.XPOST (@H NVARCHAR(MAX), @d NVARCHAR(MAX), @url NVARCHAR(4000))
|
CREATE PROCEDURE CURL.XPOST (@H NVARCHAR(MAX), @d NVARCHAR(MAX), @url NVARCHAR(4000))
|
||||||
AS EXTERNAL NAME SqlClrCurl.Curl.Post;
|
AS EXTERNAL NAME SqlClrCurl.Curl.Post;
|
||||||
GO
|
GO
|
||||||
|
|||||||
Reference in New Issue
Block a user