2

我目前正在尝试从 sqlite 检索文本。我看到请求的数据量确实正确,但另一方面,内容的格式似乎不正确。我尝试了一些转换:

var data:Array = sqls.getResult().data;

var stData:String = String(data[0]);

Alert.show(stData); // <--- displays "[object Object]"

字符串转换似乎没有做我想要的。我只是想要来自 sqlite 数据库的文本。在这种情况下,如何将 [object Object] 转换为正确的字符串?

4

2 回答 2

4

不管返回什么行(with(out))指定列,除非定义了 SQLStatement 的 itemClass 属性,否则它将始终返回一个匿名对象。这基本上就是远程处理与 AMF 一起工作的方式。

您可以做两件事(取决于项目的复杂性):

  1. 指定一个 SQLStatement.itemClass - 这将使用与列名相同的名称的公共访问器(var 或 get/set)定义并填充返回的结果。
  2. 如果保留为匿名 - 列名称将附加到您在其中迭代对象的对象,就像定义它时一样。

超级基本的例子:

//SQL table schema
CREATE TABLE accounts (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  num INTEGER NOT NULL,
  name TEXT NOT NULL,
  last_update DATE
);

//Define an Account class:
public class Account {
    public var id:int;
    public var num:int;
    public var name:String;
    public var last_update:Date;
}

//A statement to execute to get all accounts returned as an array of "Account"
var statement:SQLStatement = new SQLStatement();
    statement.sqlConnection = myConn;
    statement.itemClass = Account;
    statement.text = 'SELECT * FROM accounts';
    statement.addEventListener(SQLEvent.RESULT, onResults);
    statement.execute();

 protected function onResults(event:SQLEvent):void
 {
      var statement:SQLStatement = SQLStatement(event.currentTarget);
      var results:SQLResult = statement.getResult();
      for each (var account:Account in results)
      {
          //do something useful like populate a model, grid, etc...
      }
 }


 //Anonymous objects would iterate much the same way -when an item class isn't defined
 protected function onResults(event:SQLEvent):void
 {
      var statement:SQLStatement = SQLStatement(event.currentTarget);
      var results:SQLResult = statement.getResult();
      for each (var account:Object in results)
      {
          //our 'Object' will have properties: id, num, name, last_update
          //do something useful like populate a model, grid, etc...
      }
 }
于 2012-05-07T16:15:25.167 回答
0

请尝试Objectutil.toString();将任何类型的对象转换为字符串的函数。

于 2013-01-17T10:00:48.157 回答