PDA

View Full Version : سوال: مشکل در خواندن از RMS



dr_jacky_2005
سه شنبه 26 بهمن 1389, 09:57 صبح
من 3 تا کلاس دارم ( که یکیش main است ) .
توو دومی نیز کار ذخیره یک اطلاعاتی رو دارم.
اینطوری:
این توو کانستراکتور:


try
{
rs = RecordStore.openRecordStore("DBName", true);
}
catch(RecordStoreException e)
{
log("opennemishe: "+e);
}
اینم واسه ذخیره:


byte[] Norec = UTF8.UTF8Encode(str);
try
{
rs.addRecord(Norec, 0, Norec.length);

closeRecord();
}
catch(RecordStoreException e)
{
log("addnemisherecord:"+e);
}
ذخیره مشکلی نداره.
مشکل اونجاییه که میخوام ازین رکورد ذخیره شده استفاده کنم.
این کلاس سوم ( که میخوام استفاده کنم):
این در کانستراکتور:


try
{
// UqNo.openRecord("UqNo");
rs = RecordStore.openRecordStore("DBName", true);
resultttttt = UTF8.UTF8Decode(rs.getRecord(0), 0, rs.getRecord(0).length) ;
}
catch(RecordStoreException e)
{
log("OpennemisheDarRRcrd\u062E\u0637\u0627: "+e);
}
اینجا ارور که میده و میافته توو exception.:javax.microedition.rms.invalidRecordIDE xception.

مسایلی که هس یکی اون
getRecord(0)
است که باید 0 باشه یا 1؟
(1 هم بود باز ارور میداد )!!!
دوم اینکه باید از اون rs توو کلاس دومی استفاده کنم ( جایی که کار ذخیره رو انجام میدم ) ؟
یا
باید باز توو کلاس سومی نیز یک RecordStore rs بنویسم؟
(از همون rs توو کلاس دوم استفاده کردم،برنامه ران نمیشه! ( توو گوشی و شبیه ساز هر دو ).


منظورم از سوال 2:
من توو کلاس A اون بالای بالای کلاس نوشتم: RecordStore rs
حالا اینو میگم که واسه کلاس B باید اون بالاب بالای کلاسش اینو بنویسم:
RecordStore rs
و در کانستراکتور اینو:

rs = RecordStore.openRecordStore("DBName", true);یا اینو :
در اون بالای بالا RecordStore rs ننویسم و بجاش یک instance بگیرم از کلاس A و اینم بنویسم در کانستراکتور:


instance.rs = RecordStore.openRecordStore("DBName", true);
[/PHP

این کارم کردم...نشد:
byte[] Norec = UTF8.UTF8Encode(str);
try
{
k = rs.addRecord(Norec, 0, Norec.length);

closeRecord();
}
catch(RecordStoreException e)
{
log("addnemisherecord:"+e);
}
[/code]

.................
k متغیری از نو int
.................



resultttttt = UTF8.UTF8Decode(rs.getRecord(k), 0, rs.getRecord(k).length) ;
[/QUOTE]
نشد!
این ارور رو موقع ران شدن میده:
java.lang.nullpointerException.

حقم داره!
خب k الان مقدارش خالیه!
پس من اومدم چه کردم؟
توو کلاس A (که کار ذخیره رو میکنم)،مقدار k رو 0 دادم پیشفرص .
و این سمت توو کلاس B اومدم ازین روش استفاده کردم:
[PHP]resultttttt = UTF8.UTF8Decode(rs.getRecord(instance.k), 0, rs.getRecord(instance.k).length) ;چه کنم؟

dr_jacky_2005
سه شنبه 26 بهمن 1389, 18:05 عصر
مشکل ذخیره حل شد.
حالا مشکل اینه که وقتی ذخیره میکنم،تا برنامه رو یکبار کامل نبندم،باز کنم.... نمیشه ازون رکورده که ذخیره شده استفاده کرد و خالیه!!!!!!!!!!!!!!!!!

dr_jacky_2005
پنج شنبه 28 بهمن 1389, 12:00 عصر
rs.closeRecord هم میزنم بعد از ذخیره سازی ها!
این کاراییه که کردم واسه ذخیره و لود کردن داده:
پست آخرش:
http://forum.gsmaria.com/forum117/thread21437-2.html