2009-03-30 16 views
0

私は結果に影響すると思われる最も重要なビットに短縮したが、基本的にはバイトに関するエラーがあります。なぜ私はコードを借用したので、このコードが別のプログラムで動作するのかわかりません。これは、検索ボタンでレコードストアからデータを抽出し、更新ボタンで変更が加えられたときにデータを更新するものですが、実行することができません。Java j2meでRecordStoreのアップデートに関する問題が発生しましたか?

誰かが助けてくれますか、または役に立つアップデートレコードストアチュートリアルを教えてください。

おかげ

private RecordStore rs; 

    Update = new Form("Update"); 
    Update.addCommand(new Command("Home", Command.BACK, 0));  
    cmRetrieve = new Command("Retrieve", Command.SCREEN, 1); 
    cmUpdate = new Command("Update", Command.SCREEN, 2); 
    tfRecID = new TextField("Record ID:", "", 8, TextField.NUMERIC); 
    txtName = new TextField("Name of Event: ", null, 15, TextField.ANY); 

    Update.append(tfRecID); 
    Update.append(txtName); 
    Update.addCommand(cmRetrieve); 
    Update.addCommand(cmUpdate); 
    Update.setCommandListener(this); 


    String str; 
    byte bytes[]; 
    int recID; 

else 
    if (c.getLabel().equals("Retrieve")) 
    { 
      recID = Integer.parseInt(tfRecID.getString()); 
      bytes = rs.getRecord(recID); 
      str = new String(bytes); 
      int idx = str.indexOf(";"); 
      txtName.setString(str.substring(0, idx)); 


    } 
    else 
    if(c.getLabel().equals("Update")) 
    { 
      recID = Integer.parseInt(tfRecID.getString()); 
      str = txtName.getString() + ":"; 
      bytes = str.getBytes(); 
      rs.setRecord(recID, bytes, 0, bytes.length); 

    } 

答えて

0

http://developers.sun.com/mobility/midp/articles/databaserms/は、RMSの良いチュートリアルを提供します。

コードを実行せずに見ると、setRecordに渡される最後のインデックスは正しくありません。あなたは変更する必要があります:

rs.setRecord(recID, bytes, 0, bytes.length); 

へ:

rs.setRecord(recID, bytes, 0, bytes.length-1); 
0

私はこれが問題であるthiskいけません。 rs.setRecord(recID、bytes、0、bytes.length); 最後のパラメータはバイトの長さです

関連する問題