How do I get a Boolean value in AS3 whether a table or an entry exists in the database?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
As opposed to finding it manually with SQL you should use the built in Schema information classes/functions. Here is an example of how it would work.
public function doesTableExist(connection:SQLConnection, tableName:String):Boolean
{
connection.loadSchema();
var schema:SQLSchemaResult = connection.getSchemaResult();
for each (var table:SQLTableSchema in schema.tables)
{
if (table.name.toLowerCase() == tableName.toLowerCase())
{
return true;
}
}
return false;
}
回答2:
There is no simple statement to achieve boolean value, but you can:
use
PRAGMA table_info(tbl_status)
and analize list.try to execute
SELECT col FROM table_name
in try...catch block, in case of error simply set variable to bool.
BTW, maybe you need to use IF NOT EXISTS
in create statement for table, index creation...
回答3:
can be useful for someone - for async connection:
connection.loadSchema();
connection.addEventListener(SQLEvent.SCHEMA, check_result);
private function check_result(event:SQLEvent):void{
var schema:SQLSchemaResult = connection.getSchemaResult();
//as above
}