文档说应该支持它。 它似乎没有在gen.go文件中实现:
function myFunction() {
var stime = new Date();
var col1;
var col2;
var col3;
var dbconnection = Jdbc.getConnection(dbUrl, root, rootPwd);
var statement = dbconnection.createStatement();
var googlesheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1');
var data = googlesheet.getDataRange().getValues();
var itrows=1000;
var complete=false;
if(PropertiesService.getScriptProperties().getProperty('iteration'))
{
var iteration=Number(PropertiesService.getScriptProperties().getProperty('iteration') + 1);
}
else
{
var iteration=Number(PropertiesService.getScriptProperties().setProperty('iteration', 1));
}
var max=itrows * iteration;
var min=max - itrows + 1;
if(max>data.length-1)
{
max=data.length-1;
complete=true;
}
dbconnection.setAutoCommit(false)
for (var i=min;i<=max;i++)
{
col1 = data[i][0];
col2 = data[i][1];
col3 = data[i][2];
var sql = "{call [dbo].[sp_googlesheetimport](?,?,?)}";
statement = dbconnection.prepareCall(sql);
statement.setString(1, col1);
statement.setString(2, col2);
statement.setString(3, col3);
statement.addBatch();
}
statement.executeBatch();
dbconnection.commit();
statement.close();
dbconnection.close();
if(complete)
{
PropertiesService.getScriptProperties().deleteProperty('iteration');
}
var etime = new Date();
Logger.log('Exec time: ' + (etime.getTime() - stime.getTime()));
}
function createGASTrigger() {
var varUserPropertiesService = PropertiesService.getUserProperties();
var varUserTriggerId = varUserPropertiesService.getProperty("myFunction");
var varUserTrigger = ScriptApp.getProjectTriggers();
for (var i=0;i<varUserTrigger.length;i++)
{
if (varUserTrigger[i].getUniqueId() == varUserTriggerId)
{
ScriptApp.deleteTrigger(varUserTrigger[i]);
break;
}
}
var userProperties = PropertiesService.getUserProperties();
var nextTrigger = ScriptApp.newTrigger("myFunction").timeBased().after(1 * 120 * 1000).create();
}
我读到我需要修补移动支持 但是在更改文件以支持Uint64后,(go / src / golang.org / x / mobile / bind / gen.go) 并重新启动移动:gomobile init
同样的错误仍然出现,我错过了一些明显的东西吗?
答案 0 :(得分:0)
我认为这里的问题是Java没有unsigned。因此,Java接口不能将uint64(和uint32 IIRC)文件类型作为全局变量,函数返回值或函数参数。
您可以在Go mobile中使用uint64。
基于以上两种解决方案:
答案 1 :(得分:0)
我通过修补Go mobile来解决这个问题,受到这个StackOverflow帖子的启发!我使用&#34; patch&#34;非常松散,我不鼓励任何人使用此代码,因为它是非常特定于目的的。
我只是将default
案例短路以返回uint64
- 您可以看到我在这里做了什么:https://github.com/Sidetalker/mobile/commit/01eb11be69a781e71c7f00df6fc17b35f828f7a2
我需要在该分支上进行一些其他查找/替换更改以使其正确构建,我还必须修复我非常确定的移动错误{{{ 1}}类型。所有这些都可以在分支上看到。
另外,关键的是,我必须完全byte
这个项目 - 进行更改并运行go get
是不够的。
不要使用此代码。请注意这一点。