将数组传输到SQLite中,反之亦然,而无需循环,尤其是在ActionScript3中而不循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将数组传输到SQLite中,反之亦然,而无需循环,尤其是在ActionScript3中而不循环相关的知识,希望对你有一定的参考价值。

我对使用ActionScript3进行编程和使用SQLite还是很陌生的。当前,我尝试制作一个AIR应用程序,它将处理来自excel的小数据集到大数据集,使用ActionScript3导入到AIR中并在其中进行计算,并将计算出的数据存储在SQLite中。

现在,我有两个关于使用数组将数据传输到SQLite的问题

1。是否可以在不使用循环的情况下在SQLite中插入数据或更新数据?

在我的AIR应用程序中,我有一个名为DataInput的对象,其中有62个变量/属性,这些变量/属性将包含来自Excel中62列的62个不同值。我确实知道,如果您创建DataInput的新实例并循环放入数组arDataInput,则可以使用arDataInput[i].variablename访问数组中的每个数据,其中i是数组的索引,变量名是对象的变量/属性。

[显然,现在我确实使用for loop访问excel中每个单元格的值,然后在AIR应用程序中进行计算,然后将计算出的数据逐行传输到sql事务中的SQLite中。

实际上有一种方法可以将数组中的数据传输到SQLite(INSERT新行或UPDATE现有行)中,而无需使用像INSERT INTO tblDataInputUW VALUES arDataInput这样的循环,因为SQLite表中的每个列名都与变量/属性相同数组中对象的数量,例如。 SQLite表,tblDataInput的列名称为namePlat,数组的变量/属性为arDataInput.namePlat

2。是否可以将我从SQLite获得的数据数组拆分为多个数组而无需循环?

现在,我使用以下代码从SQLite提取数据并存储为数组;

txtSQL = new String();
arData = new Array();
txtSQL = "SELECT namePlat, platLat, platLong FROM tblDataInput";
arData = getSQLData(txtSQL);

function getSQLData(text: String): Array
{
    sqlCon.begin();

    sqlStat = new SQLStatement();
    sqlStat.sqlConnection = sqlCon;
    sqlStat.text = text;
    sqlStat.execute();

    sqlCon.commit();

    var result: SQLResult = new SQLResult();
    var arData: Array = new Array();

    result = sqlStat.getResult();

    if (result != null)
    {
        arData = result.data;
    }

    return arData;
}

如果我的假设是正确的,我可以使用arData访问arData[i].variablename中的每个值,其中i是数组的索引,变量名是SQLite表tblDataInput中的表名。

[如果有方法可以将arData中的数据拆分为3个不同的数组,例如arNamePlat,而无需像arNamePlat = arData.variablename那样使用循环,因为我在AIR应用程序中有许多不同的图表要绘制,并且每个图表都有自己的数组从中获得价值。

现在,我实际上对不同的图表使用了不同的sql语句;

txtSQL = new String();
arData = new Array();
txtSQL = "SELECT namePlat FROM tblDataInput";
arData = getSQLData(txtSQL);

dgNamePlat.dataProvider = new DataProvider(arData);

txtSQL = new String();
arData = new Array();
txtSQL = "SELECT  platLat, platLong FROM tblDataInput";
arData = getSQLData(txtSQL);

dgPlatLatLong.dataProvider = new DataProvider(arData);

我为每个图表使用相同的arDatatxtSQL,因为在绘制图表后不再存储该值。

我使用for loop实际上没有任何限制,我问这个问题是因为我没有看到关于此问题的任何话题,作为一个自学的程序员,我喜欢探索不同的编码方式和方式将这些知识整合到我的项目中。

答案

发送和接收数据以及执行数据库工作的最佳方法是通过表单提交。 AIR可以发布常规表单提交(例如html页面),但也可以加载响应。像php这样的常规服务器端软件可以处理表单提交,对数据库执行任何操作并返回数据或简单的成功消息。

处理数据的最佳方法是使用XML(出于这种原因,请查看RESTful体系结构)。 PHP为该应用程序创建XML。 xml被加载,应放入对象数组。

这里有一些很好的链接,可以开始使用表单提交数据并读取XML:

代码共和国教程:

http://www.republicofcode.com/tutorials/flash/as3contactform/2.phphttp://www.republicofcode.com/tutorials/flash/as3xml/

https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest.htmlhttps://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequestMethod.html

以上是关于将数组传输到SQLite中,反之亦然,而无需循环,尤其是在ActionScript3中而不循环的主要内容,如果未能解决你的问题,请参考以下文章

ios 7 - 强制视图布局翻转到 RTL 而无需更改语言

根据一维数组中的值更改二维numpy数组中的某些值而无需for循环

将 FMDB SQLite 结果附加到 Swift 数组

将 Numpy 数组“转换”为 Matlab,反之亦然

将 SQLite 表数据显示到列表视图中,就在将数据插入同一 Activity 上的表之后,无需关闭 Activity 并重新打开

如何将数据从 SQL Server 传输到 Informix,反之亦然