我读过柔性语言参考: http://livedocs.adobe.com/flex/3/langref/flash/data/SQLStatement.html#executing什么时候执行()返回错误在sqlite为flex?
This property is true if execute() has been called and not all of the results have been returned from the database.
不过,我无法理解这意味着什么究竟。我不断收到一个错误:
Error #3106: Property cannot be changed while SQLStatement.executing is true.
我已经试过了SQLEvent.RESULT创建一个事件处理程序,我的想法是,是如何的结果会得到从数据库返回,因此执行()将返回错误 - 没”工作。
这是否意味着我想改变我的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();
}
}
流是FILESTREAM
我试图读取一个文本,并把每行到一个新的sqlite的表行。
我也尝试使用sqlStatement.parameters作为替代方式来做我的插入查询,但没有运气。引发不同的错误:
Error #3110: Operation cannot be performed while SQLStatement.executing is true.
只是试了一下,没有工作。但我很高兴,因为我不想取消sqlstatement.execute()。我希望它在每次再次被解雇之前完成 – marauder 2009-09-07 22:52:35