Por que não consigo atualizar meu J2ME RecordStore?

votos
2

Basicamente, eu quero o meu Midlet a capacidade de editar registros.

Eu tenho esse código

a informação é adicionado como se segue

 protected void searchForNameToEdit()
 {
          Editrecord.deleteAll();

    try
    {

        rs = RecordStore.openRecordStore(Detail, true);
        RecordEnumeration re = rs.enumerateRecords(new NameMatcher(EditSearch.getString()), null, false);
        while (re.hasNextElement())
        {
            byte [] recordBuffer = re.nextRecord();
            String record = new String(recordBuffer);


            int endOfName = record.indexOf(;);
            int endOfDesc = record.indexOf(; , endOfName + 1);
            int endOfTown = record.indexOf(;, endOfDesc + 1);
            int endOfPlace = record.indexOf(;, endOfTown + 1);
            int endOfSDay = record.indexOf(/, endOfPlace +1);
            int endOfSMonth = record.indexOf(/,endOfSDay + 1);
            int endOfSYear = record.indexOf(;, endOfSMonth + 1);
            int endOfEDay = record.indexOf(/, endOfSYear + 1);
            int endOfEMonth = record.indexOf(/, endOfEDay + 1);
            int endOfEYear = record.indexOf(;, endOfEMonth + 1);
            int endOfComment = record.indexOf(;, endOfEYear + 1);
            int endOfRating = record.indexOf (;, endOfComment + 1);
            int endOfReview = record.indexOf (;, endOfRating + 1);


            String Name = record.substring(0, endOfName);
            String Desc = record.substring(endOfName + 1, endOfDesc);
            String Town = record.substring(endOfDesc + 1, endOfTown);
            String Place= record.substring(endOfTown + 1, endOfPlace);
            String SDay = record.substring(endOfPlace +1, endOfSDay);
            String SMonth = record.substring(endOfSDay + 1, endOfSMonth);
            String SYear = record.substring(endOfSMonth + 1, endOfSYear);
            String EDay = record.substring(endOfSYear + 1, endOfEDay);
            String EMonth = record.substring(endOfEDay + 1, endOfEMonth);
            String EYear = record.substring(endOfEMonth + 1, endOfEYear);
            String Comment = record.substring(endOfEYear + 1, endOfComment);
            String Rating = record.substring(endOfComment + 1, endOfRating);
            String Review = record.substring(endOfRating + 1, endOfReview);


            EtxtName = new TextField(Name of Event: , Name, 15, TextField.ANY);
            EdescEvent = new TextField(Describe the Event : , Desc, 250, TextField.ANY);
            EtownEvent = new TextField(Name of Town : , Town, 50, TextField.ANY);
            EplaceEvent = new TextField(Name of Place : , Place, 25, TextField.ANY);
            EcommentEvent = new TextField(Any comments : , Comment, 300, TextField.ANY);
            EStartDate = new TextField(Start Date : , SDay + / + SMonth + / + SYear +;, 300, TextField.ANY);
            EEndDate =new TextField(End Date : , EDay + / + EMonth + / + EYear +;, 300, TextField.ANY);
            EEventRating = new TextField(Event Rating : , Rating, 10, TextField.ANY);
            EOverallReview = new TextField(Overall Review : , Review, 300, TextField.ANY);


            Editrecord.append(EtxtName);
            Editrecord.append(EdescEvent);
            Editrecord.append(EtownEvent);
            Editrecord.append(EplaceEvent);
            Editrecord.append(EStartDate);
           // Editrecord.append(Start Date;  + SDay + / + SMonth + / + SYear);
            //Editrecord.append(End Date;  + EDay + / + EMonth + / + EYear);
            Editrecord.append(EEndDate);
            Editrecord.append(EcommentEvent);
            Editrecord.append(EEventRating);
            Editrecord.append(EOverallReview);




    }
        rs.closeRecordStore();
    }

    catch(Exception e)
    {
        mAlertConfirmDetailsSaved.setString(Couldn't read details);
        System.err.println(Error accessing database);
    }

    Display.setCurrent(Editrecord);

}

e este é o método para realizar a atualização

protected void PerformUpdate()
{
    int id;

    strEName = EtxtName.getString();
    strEDescEvent = EdescEvent.getString();
    strETown = EtownEvent.getString();
    strEPlace = EplaceEvent.getString();

    strStartDate = EStartDate.getString();

    strEndDate = EEndDate.getString();

    strECommentE = EcommentEvent.getString();
    strERating = EEventRating.getString();
    strEReview = EOverallReview.getString();


        String detailsToUpdate = strEName + ; +\n+
                                 strEDescEvent + ; + \n+
                                 strETown + ; + \n +
                                 strEPlace + ;+ \n +
                                 strEStartDate + ; + \n +
                                 strEEndDate + ; + \n +
                                 strECommentE + ;+ \n +
                                 strERating + ;+ \n +
                                 strEReview + ;;

    if (listOfIDs != null)
    {

        try {
            //RecordStore
                    rs = RecordStore.openRecordStore(Detail, true);
            for (Enumeration e = listOfIDs.elements() ; e.hasMoreElements() ;)
            {
                id  = ((Integer)e.nextElement()).intValue();
                byte [] detailsBuffer = detailsToUpdate.getBytes();
             rs.setRecord(id,detailsBuffer, 0, detailsBuffer.length);

            }

            rs.closeRecordStore();

            mAlertDeleteDone.setString(  Selected record updated);

            }
        catch(Exception e)
            {
            mAlertDeleteDone.setString(Couldn't update record);
            System.err.println(Error accessing database);
            }

    } 
    else
    {
        mAlertDeleteDone.setString(No records to update);
    }

    Display.setCurrent(mAlertDeleteDone, mOpeningForm);
}

Tudo o que eu recebo é a pessoa resultado Não há registros para atualizar e não tenho nenhuma razão para que?

Por favor ajudar ou me enviar um tutorial útil graças

Publicado 09/04/2009 em 11:34
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more