我需要通过跳转盒(Azure VM)从本地计算机连接到 Azure SQL DB。我使用以下命令设置端口转发:
ssh -fN -L 41433:my-db.database.windows.net:1433 me@jump-box
Run Code Online (Sandbox Code Playgroud)
我可以确认隧道已设置,因为在详细模式下我看到了消息
Local connections to LOCALHOST:41433 forwarded to remote address my-db.database.windows.net:1433
Run Code Online (Sandbox Code Playgroud)
现在,当我跑
sqlcmd -S 127.0.0.1,41433 -U username -P password -d db
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : [Microsoft][ODBC Driver 13 for SQL Server]
[SQL Server]Cannot open server "127.0.0.1" requested by the login. The login failed..
Run Code Online (Sandbox Code Playgroud)
我已经确保/etc/ssh/sshd_config有线条GatewayPorts yes和AllowTcpForwarding yes
有人可以帮我弄清楚我做错了什么吗?
我试图了解F#中的类型提供者以及它们可以用于什么.我有以下问题:
我在Azure Blob存储中有一系列JSON对象,存储方式如下:
container/YYYY/MM/DD/file.json
Run Code Online (Sandbox Code Playgroud)
我可以使用类型提供程序轻松导航到给定日期的特定文件.例如,我可以将JSON对象作为5月5日的字符串访问
type Azure = AzureTypeProvider<"ConnectionString">
let containers = Azure.Containers.``container``.``2017/``.``05/``.``05/``.``file.json``.Read()
Run Code Online (Sandbox Code Playgroud)
如何获取用户输入日期字符串,说"2017-05-05"并以类型安全的方式获取相应的JSON对象?我应该使用类型提供商吗?
我有以下代码,以根据索引1处的数组元素的值返回不同的对象
const myArray = Array(1,2,3)
const myOtherArray = Array(1,3,4)
const myThirdArray = Array(1,5,7)
// Creates object from array and prints it
let toObject = function(x){
var myObject
if (x[1] == 2){
myObject = {first: x[0],
second: x[1],
third: x[2]
}
}
else if (x[1] == 3){
myObject = {first: x[0],
second: x[1]-1,
third: x[2]
}
}
else {
myObject = {first: x[0],
second: x[1]+1,
third: x[2]
}
}
return myObject
}
console.log(toObject(myThirdArray))Run Code Online (Sandbox Code Playgroud)
上述实现的问题是我定义myObject并使用赋值语句.我想以"纯粹功能"的方式实现这一点,即避免可变性.在Scala或Haskell中,我想我可以使用模式匹配,但是如何在Javascript中完成此操作?是否可以在不使用的情况下实现这一点var?
我有一个简单的基于事件的FizzBuzz实现如下
// Events in F#
type FizzBuzz() =
let _event = Event<int>()
member this.Event = _event.Publish
member this.Check n = _event.Trigger n
// Instantiate
let fizzBuzzer = FizzBuzz()
// Add an event handler
fizzBuzzer.Event.Add (function
| x when x%5=0 && x%3=0 -> printfn "FizzBuzz"
| x when x%3=0 -> printfn "Fizz"
| x when x%5=0 -> printfn "Buzz"
| x -> printfn "%d" x)
Run Code Online (Sandbox Code Playgroud)
当我使用我测试它[|1..15|] |> Array.map fizzBuzzer.Check得到预期的输出:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz …Run Code Online (Sandbox Code Playgroud)