Я видел это сообщение , но это не помогло мне решить мою проблему.
Я использую диалоговое окно HTML
, открытое с помощью надстройки в таблицах Google, и яЯ использую JBDC
.
Я загружаю из нескольких запросов некоторые данные из моей базы данных MYSQL
, у меня также есть панель поиска для поиска данных в БД, и в будущем я бы хотел, чтобы мой HTMLавтоматически показывать различные значения базы данных в зависимости от опции, выбранной на моей странице HTML
.В основном это много запросов только для одного приложения, поэтому я предполагаю, что должен использоваться один объект подключения.
Я пробовал несколько вещей, которые я могу показать вам в псевдокоде.
- открывать новое соединение каждый раз
, поэтому здесь будет мой 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>
Но так как я использую бесплатный поставщик базы данных для разработки третьего соединения, возвращается сообщение об ошибке, в котором говорится, что мне нужно подтвердить пароль или имя пользователя, потому что ему не удалось подключиться к базе данных.
попробуйте передать соединение с сервера клиенту, а затем обратно на сервер:
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>
Но здесь conn
равно null
.
У меня также есть много запросов, отправленных, когда мой ввод (панель поиска) равен onchange
, и я использую первый методон работает, за исключением того, что не позволяет быстро набирать текст, поскольку увеличивает количество запросов на соединение для каждого набираемого символа.
Что я могу сделать?