Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

How to search multiple records in RecordEnumaration

 
anjali limaye
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello experts,
I m developing sales person software in j2me using netbeans 6.5 IDE MIDP 2.0, on Motorola A810 mobile

Records are stored in RMS data base,we want to search date for this application with one Search key having multiple records.

were using following code but it giving only one record as result,but actually it contains multiple records in database.

part of our code is:
public void commandAction(Command command, Displayable displayable) {
if (command == exit) {
destroyApp(true);
notifyDestroyed();
} else if (command == start) {

try {
recordstore = RecordStore.openRecordStore(
"myRecordStore", true);
} catch (Exception error) {
alert = new Alert("Error Creating", error.toString(), null, AlertType.WARNING);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
}

try {
byte[] outputRecord;
String outputString[] = {"Adam", "Bob", "Bob"};
int outputInteger[] = {15, 10, 15};
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
DataOutputStream outputDataStream =
new DataOutputStream(outputStream);
for (int x = 0; x < 3; x++) {
outputDataStream.writeUTF(outputString[x]);
outputDataStream.writeInt(outputInteger[x]);
outputDataStream.flush();
outputRecord = outputStream.toByteArray();
recordstore.addRecord(outputRecord, 0, outputRecord.length);
outputStream.reset();
}
outputStream.close();
outputDataStream.close();
} catch (Exception error) {
alert = new Alert("Error Writing",
error.toString(), null, AlertType.WARNING);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
}

try {
String inputString;
byte[] byteInputData = new byte[300];
ByteArrayInputStream inputStream =
new ByteArrayInputStream(byteInputData);
DataInputStream inputDataStream =
new DataInputStream(inputStream);
if (recordstore.getNumRecords() > 0) {
filter = new Filter("Bob");
recordEnumeration = recordstore.enumerateRecords(
filter, null, false);
while (recordEnumeration.hasNextElement()) {
recordstore.getRecord(recordEnumeration.nextRecordId(), byteInputData, 0);
inputString = inputDataStream.readUTF() +
" " + inputDataStream.readInt() ;
alert = new Alert("Reading", inputString,
null, AlertType.WARNING);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
}
}
inputStream.close();
} catch (Exception error) {
alert = new Alert("Error Reading",
error.toString(), null, AlertType.WARNING);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
}
try {
recordstore.closeRecordStore();
} catch (Exception error) {
alert = new Alert("Error Closing",
error.toString(), null, AlertType.WARNING);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
}
if (RecordStore.listRecordStores() != null) {
try {
RecordStore.deleteRecordStore("myRecordStore");
filter.filterClose();
recordEnumeration.destroy();
} catch (Exception error) {
alert = new Alert("Error Removing",
error.toString(), null, AlertType.WARNING);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
}
}
}
}
}

class Filter implements RecordFilter {

private String search = null;
private ByteArrayInputStream inputstream = null;
private DataInputStream datainputstream = null;

public Filter(String searchcriteria) {
search = searchcriteria;
}

public boolean matches(byte[] suspect) {
String string = null;
try {
inputstream = new ByteArrayInputStream(suspect);
datainputstream = new DataInputStream(inputstream);
string = datainputstream.readUTF();
} catch (Exception error) {
return false;
}
if (string != null && string.indexOf(search) != -1) {
return true;
} else {
return false;
}
}

public void filterClose() {
try {
if (inputstream != null) {
inputstream.close();
}
if (datainputstream != null) {
datainputstream.close();
}
} catch (Exception error) {
}
}


thanks in advance
 
Swastik Dey
Rancher
Posts: 1639
6
Android Java Java ME
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Are you sure you dont have any issues with writing records.
 
Tim Holloway
Saloon Keeper
Posts: 18365
56
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Throwing away exceptions is perilous. Even things that are neve supposed to fail sometimes do.

It's said that you should never test for an exception that you don't know how to handle, but that's not really true. Even if you don't know how to handle it, you should report it.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic