gpt4 book ai didi

html - 如何使用 JDBC 和 Google-App-Script 为多个查询保持连接?

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:07 25 4
gpt4 key购买 nike

我看到了this post但它并没有真正帮助我解决问题。

我使用 HTML 对话框打开,并在 google 电子表格上添加了一个插件,我使用的是 JBDC

我从我的 MYSQL 数据库中从多个查询加载一些数据,我还有一个搜索栏来搜索数据库中的数据,将来我希望我的 HTML 自动显示各种数据库值取决于在我的 HTML 页面中选择的选项。基本上只有一个应用程序有很多查询,所以我想应该使用一个连接对象。

我已经尝试了很多可以用伪代码向您展示的东西。

  1. 每次打开一个新连接

所以这是我的 GS 文件

function firstFunc()
{
var conn = Jdbc.getConnection(dbUrl, user, userPwd);
//do my thing
return (datas);
}
function secondFunc()
{
var conn = Jdbc.getConnection(dbUrl, user, userPwd);
//do my thing
return (datas);
}
function thirdFunc()
{
var conn = Jdbc.getConnection(dbUrl, user, userPwd);
//do my thing
return (datas);
}

然后是我的HTML

<script>
var onSuccessFirst = function (data){
//update my HTML with data
}
var onSuccessSecond = function (data){
//update my HTML with data
}
var onSuccessThird = function (data){
//update my HTML with data
}
google.script.run.withSuccessHandler(onSuccessFirst).firstFunc();
google.script.run.withSuccessHandler(onSuccessSecond).secondFunc();
google.script.run.withSuccessHandler(onSuccessThird).thirdFunc();
</script>

但是因为我使用免费的数据库提供程序来开发第三个连接,所以返回一个错误告诉我验证密码或用户名,因为它无法连接到数据库。

  1. 尝试将连接从服务器传递到客户端,然后返回到服务器:

GS 文件

function getConnection()
{
return (Jdbc.getConnection(dbUrl, user, userPwd););
}
function firstFunc(conn)
{
conn...
//do my thing
return (datas);
}
function secondFunc(conn)
{
conn...
//do my thing
return (datas);
}
function thirdFunc(conn)
{
conn...
//do my thing
return (datas);
}

然后是我的HTML

<script>
var onSuccessFirst = function (data){
//update my HTML with data
}
var onSuccessSecond = function (data){
//update my HTML with data
}
var onSuccessThird = function (data){
//update my HTML with data
}
var onSuccessConnection = function(conn)
{
google.script.run.withSuccessHandler(onSuccessFirst).firstFunc(conn);
google.script.run.withSuccessHandler(onSuccessSecond).secondFunc(conn);
google.script.run.withSuccessHandler(onSuccessThird).thirdFunc(conn);
}
google.script.run.withSuccessHandler(onSuccessConnection).getConnection();
</script>

但是这里的connnull

当我的输入(搜索栏)是 onchange 时,我也收到了很多查询,我使用第一种方法,但它不允许快速输入,因为它增加了每个字符的连接请求打字。

我能做什么?

最佳答案

也许尝试用你的第一种方法链接:

<script>
var onSuccessThird = function (data){
//update my HTML with data
}
var onSuccessSecond = function (data){
//update my HTML with data
google.script.run.withSuccessHandler(onSuccessThird).thirdFunc();
}
var onSuccessFirst = function (data){
//update my HTML with data
google.script.run.withSuccessHandler(onSuccessSecond).secondFunc();
}
google.script.run.withSuccessHandler(onSuccessFirst).firstFunc();
</script>

注意事项:

  • google.script.run 是一个异步函数。所有三个运行都将一个接一个地调用,而无需等待前一个运行完成,这意味着在第一种方法中将或多或少同时打开几乎 3 个 Jdbc 连接。
  • 单个script.run 调用将关闭连接。因此,在您的第二种方法中, conn 在第一次运行结束或之前将为 null 。

    JDBC connections close automatically when a script finishes executing. (Keep in mind that a single google.script.run call counts as a complete execution, even if the HTML service page that made the call remains open.)

引用资料:

关于html - 如何使用 JDBC 和 Google-App-Script 为多个查询保持连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52488218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com