Использование Flex для реализации кнопки «Далее» или «Предыдущий» из базы данных SQLite - PullRequest
0 голосов
/ 09 августа 2011

Я пытаюсь заставить мою локальную базу данных sqlite отображать следующую запись одним нажатием кнопки.

Я смотрел на сообщения типа Получение следующей записи в базе данных SQLite для мобильного приложения , но их код дал мне небольшое решение.Вот пример моего кода:

AS3:

    private function getNext():void
        {
            nextRecordId = targetRecordId + 1;

            selectStmt = new SQLStatement();
            selectStmt.sqlConnection = conn;
            var sql:String = "SELECT [Index], Title, CAST(Picture AS ByteArray) AS Picture FROM Data WHERE [Index] = 1" ;
            /*  selectStmt.parameters[@nextRecordId] = nextRecordId;  */ // Id of next record
            selectStmt.text = sql;
            selectStmt.addEventListener(SQLEvent.RESULT, selectResult2);
            selectStmt.addEventListener(SQLErrorEvent.ERROR, selectError2);
            selectStmt.execute();

        }

        private function selectResult2(event:SQLEvent):void
        {
            selectStmt.removeEventListener(SQLEvent.RESULT, selectResult2);
            selectStmt.removeEventListener(SQLErrorEvent.ERROR, selectError2);

            var result2:SQLResult = selectStmt.getResult(); 

            dataField2 = new ArrayCollection(result2.data);
            dp2 = ArrayCollection(dataField);  

            if (result2.data != null) 
            {
                pngIndex = result2.data[0].Index;
                pngTitle = result2.data[0].Title;
                pngByteArray = result2.data[0].Picture; 
                displayPic.source = pngByteArray;
            }   
        }

Пользовательский интерфейс MXML:

    <s:Scroller interactionMode="touch"
            width="640"
            height="830">   
        <s:Group>
            <s:Image id="displayPic"
                     x="0" y="16" 
                     width="640" 
                     scaleMode="stretch" 
                     smooth="true" smoothingQuality="high"
                     />
            <!--<s:TextArea x="9" y="731" text="@{pngTitle}"/>-->
    </s:Group>
</s:Scroller>

Большое спасибо за помощь / совет

1 Ответ

0 голосов
/ 09 августа 2011

Я не вижу, где у вас проблемы с этим.Вы пробовали эту штуку под названием google?

selectStmt = new SQLStatement();
selectStmt.sqlConnection = conn;
selectStmt.text = "SELECT Title, CAST(Picture AS ByteArray) AS Picture FROM Data WHERE id=@index LIMIT 1";
selectStmt.parameters['@index'] = index++;
selectStmt.execute();

Пока вы сохраняете индексную переменную в качестве переменной класса по умолчанию, равной 0, у вас все будет в порядке, пока в ней не закончатся строки.Конечно, есть и другие способы сделать это, например, получить массив всех строк и управлять им с помощью ActionScript.Это проще, если у вас нет очень большой базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...