0

我想通过文件或任何最好的方式预加载 9000 条记录。我的想法是我想在某个地方有 9000 条记录,我想通过 phonegap 将它们加载到 sqlite 数据库中。除了从某个地方加载数据之外,我还有所有这些工作。这是我到目前为止所拥有的

我有一个文件 records.csv 文件,这是我的代码

function populate_events_from_csv(db){
  var event_data; 
  $.ajax({
      type: "GET",
      url: "records.csv",
      dataType: "text/csv",
      error: function (request, status, error) {
         console.log('fail'); 
        console.log(request.responseText);
      },
      success: function(data) { 
               console.log('success'); 
               event_data = $.csv.toObjects(data); }
   });
   console.log(event_data);
    db.transaction(function(tx) {
    var q = 'INSERT INTO Events (id, name) VALUES (?, ?)';
      _(event_data).each(function(row) {
        tx.executeSql(q, [row.id, row.name]);
      });
    });
}

这种方法可行,但由于记录 csv 中的双引号和单引号而失败

如果有人看到我做错了什么或最初插入这 9000 条记录的另一种解决方案

4

2 回答 2

1
function populate_events_from_csv(db) {
    var event_data;
    $.ajax({
        type: "GET",
        url: "records.csv",
        dataType: "text/csv",
        error: function (request, status, error) {
            console.log('fail');
            console.log(request.responseText);
        },
        success: function (data) {
            console.log('success');
            event_data = $.csv.toObjects(data);
            db.transaction(function (tx) {
                var q = 'INSERT INTO Events (id, name) VALUES (?, ?)';
                _(event_data).each(function (row) {
                    tx.executeSql(q, [row.id, row.name]);
                });
            });
        }
    });

}
于 2013-04-17T17:30:54.383 回答
0

为什么不将数据转换为 JSON,这将使其更快地加载到您的 javascript(最小解析)中,同时简化您的代码?

JSON化后,您将能够编写

function populate_events(db, url) {
    $.getJSON(url).done(function(data) {
        db.transaction(function (tx) {
            var q = 'INSERT INTO Events (id, name) VALUES (?, ?)';
            $(data).each(function (index, row) {
                tx.executeSql(q, [row.id, row.name]);
            });
        });
    }).fail(function(request, status, error) {
        console.log('fail');
        console.log(request.responseText);
    });
}

将 CSV 转换为 JSON 留作练习,但有许多工具可以处理该任务。我会使用 Python 脚本(csv + json 库)。

于 2013-04-17T18:31:01.720 回答