gpt4 book ai didi

javascript - 无法在融合表中更新超过 30 行?

转载 作者:行者123 更新时间:2023-11-30 16:50:29 25 4
gpt4 key购买 nike

我一次可以更新 30 行,但我尝试用下面的代码更新融合表,但我不能更新超过 30 条记录。如何解决这个问题呢 ?

如果 google API - 融合表中有任何限制。如何避免融合表限制。

当更新超过 30 条记录时,我遇到以下错误。

503 (Service Unavailable)

Object {code: 503, data: Array[1], message: "Internal error. Please try again.", error: Object}

下面是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Authorization Request</title>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
<script type="text/javascript" src="https://apis.google.com/js/client.js"></script>
<script type="text/javascript">
function auth() {
var config = {
'client_id': '607567025394-rmte05500pvsoj12dsrie1cbei5te506.apps.googleusercontent.com',
'scope': 'https://www.googleapis.com/auth/fusiontables',
'immediate': false
};
gapi.auth.authorize(config, function () {
console.log('login complete');
console.log(gapi.auth.getToken());
});
}

function Update_row() {
//First authenticate user:
auth();

//Set Google Development colsole API key
gapi.client.setApiKey('AIzaSyAnEhw4Y7n5V7bN226wWo0tHs0Bd7jAzxA');

//Fusion table URL : https://www.google.com/fusiontables/DataSource?docid=1ATc4raFfvVSJriqgIS2qBHE5GQY4wioDA13LrQ5o
gapi.client.load('fusiontables', 'v2', function () {
var i;
for (i = 0; i < 50; i++) {

var selectQry = "SELECT ROWID FROM 1ATc4raFfvVSJriqgIS2qBHE5GQY4wioDA13LrQ5o WHERE Number = '" + i + "'";

gapi.client.fusiontables.query.sql({ sql: selectQry }).execute(function (response) {
console.log(response);

//To get ROWID:
var getRowID = response["rows"][0][0];


//Update Fusion Table values - Based on selecred ROWID values :
var updateQry = "UPDATE 1ATc4raFfvVSJriqgIS2qBHE5GQY4wioDA13LrQ5o SET col2 = 'aaa', col3='2015/01/01' WHERE ROWID = '" + getRowID + "'";
gapi.client.fusiontables.query.sql({ sql: updateQry }).execute(function (response) {
console.log(response);
});
});
}
});
}
</script>
</head>

<body>
<button onclick="Update_row();">Update Fusion Table Rows</button>
</body>
</html>

有什么想法吗?

最佳答案

您有 50 个相同的查询,这不是好的解决方案。这可能是因为 google 表格响应此错误。您应该使用 sql 构造 WHERE BETWEEN X 和 Y

在你的情况下更好的解决方案是:

var selectQry = "SELECT ROWID FROM 1ATc4raFfvVSJriqgIS2qBHE5GQY4wioDA13LrQ5o WHERE Number BEETWEN 1 and 50";

代替

var selectQry = "SELECT ROWID FROM 1ATc4raFfvVSJriqgIS2qBHE5GQY4wioDA13LrQ5o WHERE Number = '" + i + "'";

此查询返回数组中的结果。之后你就可以使用这个数组了。

您还多次执行 UPDATE。最佳解决方案对您选择的所有行执行一次。所以你应该使用 WHERE ROWID IN (id1,id2,id3,...,idn)

在你的情况下,你应该像这样准备你的查询:

var updateQry = "UPDATE 1ATc4raFfvVSJriqgIS2qBHE5GQY4wioDA13LrQ5o SET col2 = 'aaa', col3='2015/01/01' WHERE ROWID IN (id1,id2,id3,...,idn)";

代替

var updateQry = "UPDATE 1ATc4raFfvVSJriqgIS2qBHE5GQY4wioDA13LrQ5o SET col2 = 'aaa', col3='2015/01/01' WHERE ROWID = '" + getRowID + "'";

关于javascript - 无法在融合表中更新超过 30 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30598497/

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