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

SQLStatement の itemClass プロパティが定義されていない限り、返される行 (with(out)) に関係なく、常に匿名オブジェクトが返されます。これは基本的に、リモートが AMF でどのように機能するかです。

できることは 2 つあります (プロジェクトの複雑さによって異なります)。

  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 に答える