내 코드가 내 모든 쿼리에 대해 null을 반환하는 이유를 해결하기 위해 노력하고 있으며 결국 sql 쿼리가 아무것도 반환하지 않는다는 사실을 발견했습니다. 최소한의 코드 :이 코드 프로그래머에 비해SQL 오류 : "해당 테이블이 없습니다"
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
private var sqlConnection:SQLConnection;
private var select:SQLStatement;
private var databaseFile:File;
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
var dbPath:String = "Movie Manager Settings/moovioDB2.db";
databaseFile = File.userDirectory.resolvePath(dbPath);
sqlConnection = new SQLConnection();
select = new SQLStatement();
sqlConnection.addEventListener(SQLEvent.OPEN, onDatabaseOpen);
sqlConnection.openAsync();
}
private function onDatabaseOpen(event:SQLEvent):void
{
select.sqlConnection = sqlConnection;
var query:String = "SELECT title FROM movies";
select.text = query;
select.addEventListener(SQLEvent.RESULT, done);
select.execute();
}
private function done(event:SQLEvent):void{
var res:SQLResult = select.getResult();
}
]]>
</fx:Script>
다른 플렉스 만든 바로 표준 태그입니다 : 나는 새로운 AIR 문서 (WindowedApplication들)을 만들었습니다. 나는 2 개 개의 다른 SQLite는 프로그램과 데이터베이스 파일을 확인하고 성공적으로 쿼리를 실행 한
Error #2044: Unhandled SQLErrorEvent:. errorID=3115, operation=execute , message=Error #3115: SQL Error. , details=no such table: 'movies'
: 실행시 나는이 오류가 발생합니다. '영화'테이블과 '제목'열이 모두 존재합니다. 영화가 중요한 경우에는 3 개의 테이블 중 하나이며 모든 값이있는 열이 10 개 이상 있습니다.
내가 뭘 잘못하고 있니? 이전에 예상했던 결과와 동일한 코드를 사용했지만, 일부 변경 사항을 적용한 후에도이 기본 코드를 새 문서에서 사용할 수 있습니다. 그것을 확인하고 나는 그것을 볼 수 없기 때문에 어리석은 실수를하고 있는지 확인하십시오 :)
"query"를 "var query : String ="PRAGMA database_list ";"로 바꾸시겠습니까? "오류 # 2044 : 처리되지 않은 SQLErrorEvent : 오류 ID = 3115, 작업 = 실행, 메시지 = 오류 # 3115 : SQL 오류., 세부 정보 = PRAGMA는 SQL에서 허용되지 않습니다." 그렇지 않은 경우 AS에서이 쿼리를 실행하는 방법을 지정할 수 있습니까? – DominicM
Doh! 이것은 내가 잠시 동안 만든 가장 실망스러운 실수 여야합니다. 나는 데이터베이스 파일의 위치를 결코 "openAsync()"로 전달하지 않았습니다. :) – DominicM
답변을 수락하면 문제가 표시됩니다. 감사합니다. 동일한 문제가있을 수있는 다른 사용자를 위해 수정 사항을 포함하여 답변을 업데이트하십시오. "sqlConnection.openAsync();"대신 " 그것은 "sqlConnection.openAsync (databaseFile);"이어야합니다. – DominicM