问题描述
需要把两个RMS里的记录合并为一个,应该怎么做?
解决方案
解决方案二:
现在问题是这样的:这两个RMS在建立的时候,使用的RecordStoreName是一样的,这样说吧,它们是用同一段语句生成的,现在需要把它们两个的记录合并起来,这该怎么做?
解决方案三:
引用1楼cm00001的回复:
现在问题是这样的:这两个RMS在建立的时候,使用的RecordStoreName是一样的,这样说吧,它们是用同一段语句生成的,现在需要把它们两个的记录合并起来,这该怎么做?
RMS名字相同时,不管你建立多少个,其实就是一个RMS。RecordStorerms=newRecordStore("rms",true);如果本地不存在此RMS,那么会建立一个名为rms的RecordStore,如果本地存在,则直接打开。RecordStorerms=newRecordStore("rms",false);如果本地不存在此RMS,那么不会建立一个名为rms的RecordStore,如果本地存在,则直接打开。
解决方案四:
引用2楼lw316912265的回复:
引用1楼cm00001的回复:现在问题是这样的:这两个RMS在建立的时候,使用的RecordStoreName是一样的,这样说吧,它们是用同一段语句生成的,现在需要把它们两个的记录合并起来,这该怎么做?RMS名字相同时,不管你建立多少个,其实就是一个RMS。RecordStorerms=newRecordStore("rms",true);如果本地不存在此R……
以上说法只适合同一个midlet内
解决方案五:
引用2楼lw316912265的回复:
引用1楼cm00001的回复:现在问题是这样的:这两个RMS在建立的时候,使用的RecordStoreName是一样的,这样说吧,它们是用同一段语句生成的,现在需要把它们两个的记录合并起来,这该怎么做?RMS名字相同时,不管你建立多少个,其实就是一个RMS。RecordStorerms=newRecordStore("rms",true);如果本地不存在此R……
只能通过这种方法打开RMS吗?可不可以用DB所在地址打开RMS?
解决方案六:
不可以,你可以看下api
解决方案七:
把1个读取出来存到另外一个里面
解决方案八:
同意RMS名字相同时,不管你建立多少个,其实就是一个RMS。RecordStorerms=newRecordStore("rms",true);如果本地不存在此R……[/Quote]
解决方案:
引用7楼bruce0601的回复:
同意RMS名字相同时,不管你建立多少个,其实就是一个RMS。RecordStorerms=newRecordStore("rms",true);如果本地不存在此R……
[/Quote]严重不同意这个。我想问一下,你们是光做Mdilet开发,还是做手机平台开发的Java解决方案的?RMS在不同平台上面的实现不一样!不同的MIDlet在建立他们各自的RMS的时候,Native层存储的位置不一样!每个MIDlet在安装到手机后都会有一个ID。如果他们在建立RMS的时候用的name一样。通俗的讲,真正的Native层的RMS名称是ID+name。你们应该能理解。
解决方案:
引用8楼jaisou的回复:
引用7楼bruce0601的回复:同意RMS名字相同时,不管你建立多少个,其实就是一个RMS。RecordStorerms=newRecordStore("rms",true);如果本地不存在此R……
严重不同意这个。我想问一下,你们是光做Mdilet开发,还是做手机平台开发的Java解决方案的?RMS在不同平台上面的实现不……[/Quote]你说的id是缺省的吧,是向开发人员开放的吗,RMS开放的也只有RMSNAME
解决方案:
你们看下面的这段代码,是RMS的本地实现的代码。(我现在开发的手机平台上面的)/*openRecordStoreusingplatform'sapi*/ret=RMS_sub_openPrivateRecordStore(RMS_DATA_BASE,SuiteId,Name,Create,pRecordStoreId);这里的SuitId指的是当前运行的MIDlet的ID,这个ID在安装的时候确定。这里的Name就是java代码里面的RMS名称。其他多的也不说了,从这个函数已经很明白的告诉,真正的RMS位置是由SuiteId和Name共同决定的!
解决方案:
如果当初在创建RMS的时候,是公有的RMS,而不是私有的,那么,这个RMS是可以被其他的MIDlet访问的。其实这些东西在MIDP规范里面有说的。建议在仔细阅读一下。对于公有的RMS访问的Native代码是:/*Getthe"OwningSuiteId"withtheVendorandAppletname*/JAM_f_getOwningSuiteIdByName(Vendorname,SuiteName,&OwningSuiteId)/*openRecordStoreusingplatform'sapi*/ret=RMS_sub_openPrivateRecordStore(RMS_DATA_BASE,OwningSuiteId,Name,Create,pRecordStoreId);就是,先根据共有的MIDlet名称和制造商获取他的ID,再访问他的RMS。祝你早日成功!