Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RecordStore больная тема, Обновление всей базы 
:(
    Опции темы
newinjava
Дата 30.8.2009, 17:34 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


ATokS
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Здравствуйте уважаемые форумчане!

У меня вазник вопрос по поводу deleteRecord(int); и возможности обновления RecordStore !

Я понял так что функция deleteRecord(int); после удаления данных не обнавляет Базу в RecordStore
и если моя база в начале выглядит так:

Код

1 Певая запись
2 Вторая запись
3 Третья запись
4 Четвёртая запись




то после вызова функции deleteRecord(3);

моя база выглядит так:

Код

1 Певая запись
2 Вторая запись
3 
4 Четвёртая запись




и после запроса о количистве записей обратно получаю 4 в место 3, хотя их там на самом деле 3.

Как можно обновить базу, чтобы получилось после удаления так:

Код

1 Певая запись
2 Вторая запись
3 Четвёртая запись


И естественно о запросе колличества записей получать действителное чесло существующих, а не проезведённых в общем записей


Спасибо зарание 
PM WWW   Вверх
hamsterKSU
Дата 30.8.2009, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 7
Всего: 11



для перебора записей лучше юзать RecordEnumeration

Добавлено через 1 минуту и 9 секунд
если надо подобие DB то уже существую разные решения. можно поискать по инету
PM MAIL ICQ   Вверх
newinjava
Дата 30.8.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ATokS
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Спасиб буду рыть RecordEnumeration
PM WWW   Вверх
Выхухоль
Дата 3.9.2009, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 9.10.2008
Где: Ташкент

Репутация: 2
Всего: 2



пример использование RecordEnumeration в классе денежных переводов

Код

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Payment.Objects;

import XMLRPC.USING.Constants;
import java.io.DataOutputStream;
import java.util.Vector;
import javax.microedition.rms.InvalidRecordIDException;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import javax.microedition.rms.RecordStoreNotOpenException;

/**
 *
 * @author ВыХухоль
 */
public class TranfersListings {

    Vector ListIn;

    public Vector getListIn() {
        return ListIn;
    }

    public Vector getListOut() {
        return ListOut;
    }
    Vector ListOut;
    private RecordStore CrStatusIn;
    private RecordStore CrStatusOut;
    private RecordEnumeration re_enumIn;
    private RecordEnumeration re_enumOut;
    
    //конструктор класса
    public TranfersListings()
    {
         try {
         //входящие переводы
            ListIn = new Vector();
            //исходящие переводы
            ListOut = new Vector();
            //РМС входящих переводов
            CrStatusIn = RecordStore.openRecordStore(Constants.TransfersInStoreName, true);
            //RecordEnumeration  входящих переводов
            re_enumIn = CrStatusIn.enumerateRecords(null, null, true);
            //РМС исходящих переводов
            CrStatusOut = RecordStore.openRecordStore(Constants.TransfersOutStoreName, true);
            //RecordEnumeration  исходящих переводов
            re_enumOut = CrStatusOut.enumerateRecords(null, null, true);
            LoadData();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }
    }
//Десериализация данных в РМСах (запись их в вектора)
    private void LoadData()
    {
         re_enumIn.reset();

        DataOutputStream dos;
        
        //класс TransfersListing описывает значения денежного перевода, и содержит метод Serialize для перевода значий класса в масив байт 
        //и DeSerialize для перевода массива бат в значения класса
        TransfersListing tr =null;
        for(int i=0;i<re_enumIn.numRecords();i++)
        {
            try {
                tr = new TransfersListing();
                //запись значений из РМС в объект класса TransfersListing
                tr.DeSerialize(re_enumIn.nextRecord());
                ListIn.addElement(tr);
            } catch (InvalidRecordIDException ex) {
                ex.printStackTrace();
            } catch (RecordStoreNotOpenException ex) {
                ex.printStackTrace();
            } catch (RecordStoreException ex) {
                ex.printStackTrace();
            }
        }
        for(int i=0;i<re_enumOut.numRecords();i++)
        {
            try {
                tr = new TransfersListing();
                tr.DeSerialize(re_enumOut.nextRecord());
                ListOut.addElement(tr);
            } catch (InvalidRecordIDException ex) {
                ex.printStackTrace();
            } catch (RecordStoreNotOpenException ex) {
                ex.printStackTrace();
            } catch (RecordStoreException ex) {
                ex.printStackTrace();
            }
        }
    }

    //добавление нового входящего перевода
    public void AddTransferIN(TransfersListing tr)
    {
        if(ListIn.size()==30) return;
        ListIn.addElement(tr);
        refreshIn();
    }
    //добавление нового исходящего перевода
    public void AddTransferOUT(TransfersListing tr)
    {
        if(ListOut.size()==30) return;
        ListOut.addElement(tr);
        refreshOut();
    }
//перезапись входящих переводов 
    private void refreshIn()
    {
    
        re_enumIn.reset();
        for(;re_enumIn.hasNextElement();)
        {
            try {
                CrStatusIn.deleteRecord(re_enumIn.nextRecordId());
            } catch (RecordStoreNotOpenException ex) {
                ex.printStackTrace();
            } catch (InvalidRecordIDException ex) {
                ex.printStackTrace();
            } catch (RecordStoreException ex) {
                ex.printStackTrace();
            }
        }


        for(int i = 0;i<ListIn.size();i++)
       {

            try {
                TransfersListing tr = (TransfersListing)ListIn.elementAt(i);
                CrStatusIn.addRecord(tr.Serialize(), 0, tr.Serialize().length);
            } catch (RecordStoreNotOpenException ex) {
                ex.printStackTrace();
            } catch (RecordStoreException ex) {
                ex.printStackTrace();
            }
       }
    }
    //перезапись исходящих переводов 
    private void refreshOut()
    {
        re_enumOut.reset();
        for(;re_enumOut.hasNextElement();)
        {
            try {
                CrStatusOut.deleteRecord(re_enumOut.nextRecordId());
            } catch (RecordStoreNotOpenException ex) {
                ex.printStackTrace();
            } catch (InvalidRecordIDException ex) {
                ex.printStackTrace();
            } catch (RecordStoreException ex) {
                ex.printStackTrace();
            }
        }


        for(int i = 0;i<ListOut.size();i++)
       {

            try {
                TransfersListing tr = (TransfersListing)ListOut.elementAt(i);
                CrStatusOut.addRecord(tr.Serialize(), 0, tr.Serialize().length);
            } catch (RecordStoreNotOpenException ex) {
                ex.printStackTrace();
            } catch (RecordStoreException ex) {
                ex.printStackTrace();
            }
       }
    }

    //удаляет все элементы из РМС входящиз переводов
    public void DeleteAllIn()
    {
            ListIn.removeAllElements();
    }
//удаляет все элементы из РМС исходящих переводов
    public void DeleteAllOut()
    {
     ListOut.removeAllElements();
    }


    public void Close()
    {
        try {
            refreshIn();
            refreshOut();
            CrStatusOut.closeRecordStore();
             CrStatusIn.closeRecordStore();
        } catch (RecordStoreNotOpenException ex) {
            ex.printStackTrace();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }

    }

}


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.