VBA POST 调用网页API 格式化SQL语句

Posted 窗外蔡大岭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA POST 调用网页API 格式化SQL语句相关的知识,希望对你有一定的参考价值。

工作中遇到一个场景,需要用VBA把SQL语句重新美观格式化一下,本来想直接调用本地的SQLWORKBENCH工具来实现这一功能,无奈找不到command参数,不能被VBA直接调用,作罢.

网上找到可以直接调用网站的API用VBA 调用http post可以来实现.

网页API说明:

https://github.com/sqlparser/sql-pretty-printer/wiki/SQL-FaaS-API-manual

里面必选的参数 rqst_input_sql,传入带转化的SQL语句.

Response里面关注的参数,rspn_output_fmt 为转化完之后的SQL语句.

 

VBA函数代码如下:

Function CallSQLFormat(ByVal SQL As String)
  Dim http

  Set http = CreateObject("Microsoft.XMLHTTP")

  http.Open "POST", "http://www.gudusoft.com/format.php", False
  http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

  http.send "rqst_input_sql=" & SQL

  If http.Status = 200 Then

    Resp_text = http.responseText
    istart = InStr(Resp_text, "rspn_formatted_sql")
    iend = InStr(Resp_text, "}")
    CallSQLFormat = Replace(Mid(Resp_text, istart + 18 + 2 + 1, iend - istart - 22), "\n", vbLf)

  Else

    CallSQLFormat = SQL

  End If
End Function

 

以上是关于VBA POST 调用网页API 格式化SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 VBA 动态 SQL SELECT 语句调用 MS Access 参数查询

VBA 中的 SQL 语句

VBA SQL写入语句,从一个表格写入令一个表格?

用vba如何使用sql

POST 参数未使用 VBA 传递给 Web API

请问,在Excel中如何用VBA提取数据后保留原格式不变?