【发布时间】:2010-11-26 08:12:15
【问题描述】:
我已阅读 flex 语言参考: http://livedocs.adobe.com/flex/3/langref/flash/data/SQLStatement.html#executing
如果调用了 execute() 并且并非所有结果都已从数据库返回,则此属性为真。
但是,我无法理解这到底是什么意思。我不断收到错误消息:
错误 #3106:当 SQLStatement.executing 为 true 时,无法更改属性。
我尝试为 SQLEvent.RESULT 创建一个事件处理程序,我的想法是这就是从数据库返回结果的方式,因此 execution() 将返回 false - 不起作用。
这是否意味着我试图太快地更改我的 SQLStatement 变量? execute() 函数需要多长时间?
有问题的代码:
private function fileProgress(p_evt:ProgressEvent):void {
var char:String;
var line:String = "";
var counter:int = 1;
sqlStatement = new SQLStatement();
sqlStatement.sqlConnection = dbConn;
while(stream.position < stream.bytesAvailable)
{
char = stream.readMultiByte(1, File.systemCharset);
if(char == "\n")
{
sqlStatement.text = "INSERT INTO stats VALUES ('" + counter + "','" + line + "');";
sqlStatement.execute();
counter++;
line = "";
}
else
{
line += char;
}
readProgress.text = ((p_evt.bytesLoaded/1048576).toFixed(2)) + "MB out of " + ((p_evt.bytesTotal/1048576).toFixed(2)) + "MB read";
}
if(line != "")
{
sqlStatement.text = "INSERT INTO stats VALUES ('" + line + "');";
sqlStatement.execute();
}
}
stream 是一个文件流
我正在尝试读取一个文本文件并将每一行放入一个新的 sqlite 表行中。
我也尝试使用 sqlStatement.parameters 作为插入查询的替代方法,但没有运气。引发不同的错误:
错误 #3110:当 SQLStatement.executing 为真时无法执行操作。
【问题讨论】:
标签: apache-flex sqlite air