2013-06-22 3 views
0

У меня есть сценарий Google Apps, связанный с экземпляром Google Cloud SQL через JDBC. Я использую подготовленные инструкции, и у меня возникают проблемы при попытке установить значение NULL. Чтобы установить любой другой вид, вы просто выполните:Использование JDBC Подготовленное заявление setNull() function

preparedStatement.setFloat(3, myFloatVar); 

но я не могу получить setNull() для работы. В качестве аргумента предполагается использовать тип данных Java. Docs Link

Я попробовал следующее:

preparedStatement.setNull(4,"java.sql.Types.DECIMAL"); 
    preparedStatement.setNull(4,java.sql.Types.DECIMAL); <-- This is how you would do it in Java, I believe 
    preparedStatement.setNull(4); 
    preparedStatement.setNull(4,null); 
    preparedStatement.setNull(4,"null"); 

Это будет либо дать мне «ошибка сервера, пожалуйста, попробуйте еще раз чуть позже», или что-то похожее на «Не удается найти метод (класс) (класс) setNull (число, null) "в зависимости от того, что я пытаюсь.

Так что я только что обошел его, установив вещи в 0 вместо нуля, но было бы неплохо иметь этот вариант!

ответ

0

Из того, что я понимаю из documentation, ожидаемым вторым параметром является целое число. Служба JDBC должна иметь «ENUM», чтобы перечислять параметры, как и другие службы, например Charts или Content.

Я думаю, что это хороший кандидат на отчет о проблеме. Если вы откроете один на Apps Script issue tracker, будьте любезны поделиться ссылкой здесь, в комментариях.

Теперь, при отсутствии надлежащего ENUM, вы должны попробовать разные целые числа. Думаю, вам повезет с несколькими попытками. например

preparedStatement.setNull(4, 1); 
//or preparedStatement.setNull(4, 2); //and so on..