phoenix 5.0 hbase2.0.1 新建二级索引后,新增数据报错

1、新建了一个test表

2、添加了一些数据

图片说明

3、添加了全局二级索引

4、添加或者删除数据报错!!

是索引的问题?还是哪里需要配置,目前没有找到资料。

删除全局二级索引后,添加、删除成功!

报错代码如下:

图片说明

补充一下环境:pheonix5.0版本 hbase2.0.1版本
报错如下:
Error: org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 1 action: org.apache.phoenix.hbase.index.builder.IndexBuildingFailureException: Failed to build index for unexpected reason!
at org.apache.phoenix.hbase.index.util.IndexManagementUtil.rethrowIndexingException(IndexManagementUtil.java:206)
at org.apache.phoenix.hbase.index.Indexer.preBatchMutate(Indexer.java:351)
at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$28.call(RegionCoprocessorHost.java:1010)
at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$28.call(RegionCoprocessorHost.java:1007)
at org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540)
at org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614)
at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.preBatchMutate(RegionCoprocessorHost.java:1007)
at org.apache.hadoop.hbase.regionserver.HRegion$MutationBatchOperation.prepareMiniBatchOperations(HRegion.java:3466)
at org.apache.hadoop.hbase.regionserver.HRegion.doMiniBatchMutate(HRegion.java:3875)
at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:3833)
at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:3764)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.doBatchOp(RSRpcServices.java:1027)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicBatchOp(RSRpcServices.java:959)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:922)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:2666)
at org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:42014)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)
Caused by: java.lang.VerifyError: org/apache/phoenix/hbase/index/covered/data/IndexMemStore$1
at org.apache.phoenix.hbase.index.covered.data.IndexMemStore.(IndexMemStore.java:82)
at org.apache.phoenix.hbase.index.covered.LocalTableState.(LocalTableState.java:57)
at org.apache.phoenix.hbase.index.covered.NonTxIndexBuilder.getIndexUpdate(NonTxIndexBuilder.java:52)
at org.apache.phoenix.hbase.index.builder.IndexBuildManager.getIndexUpdate(IndexBuildManager.java:90)
at org.apache.phoenix.hbase.index.Indexer.preBatchMutateWithExceptions(Indexer.java:503)
at org.apache.phoenix.hbase.index.Indexer.preBatchMutate(Indexer.java:348)
... 18 more
: 1 time, servers with issues: hbase,16020,1542002334452 (state=,code=0)

2个回答

估计是插入数据,引发二级索引表自动更新。二级索引表因为一些原因,自动更新失败。有谁遇到相同问题的?
apache-phoenix-5.0.0-HBase-2.0-bin
hbase 2.0.1
很大可能是版本不兼容的问题导致的,jar代码都报错了。

经过本人证实,使用hbase 2.0.0 替换 hbase2.0.1 就不会出错了。
注意:版本兼容性问题,phoenix5.0 支持 hbase2.0 版本!!! 2.0.1版本是不支持的!!

如果想要支持hbase2.0.1,建议等待phoenix新版本。

Cky079
Cky079 谢谢你的回答,但问题不一样,二级索引创建成功的。只是有了全局二级索引,我插入数据失败。我使用的5.0版本的。
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
phoenix 5.0 创建二级索引后新增、删除数据报错
折腾了半天: 报错内容: Error: org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 1 action: org.apache.phoenix.hbase.index.builder.IndexBuildingFailureException: Failed to build index...
Phoenix二级索引
在HBase中,只有一个单一的按照字典序排序的rowKey索引,当使用rowKey来进行数据查询的时候速度较快,但是如果不使用rowKey来查询的话就会使用filter来对全表进行扫描,很大程度上降低了检索性能。而Phoenix提供了二级索引技术来应对这种使用rowKey之外的条件进行检索的场景。其主要有以下四种索引类型1、Covered Indexes(覆盖索引)覆盖索引:只需要通过索引就能返回
phoenix二级索引
二级索引 二级索引是从主键访问数据的正交方式。Hbase中有一个按照字典排序的主键Rowkey作为单一的索引。不按照Rowkey去读取记录都要遍历整张表,然后按照你指定的过滤条件过滤。通过二级索引,索引的列或表达式形成一个备用行键,以允许沿着这个新轴进行点查找和范围扫描。 1   覆盖索引(Covered Indexes) Phoenix特别强大,因为它提供了覆盖索引。一旦找到索引的条目,不
phoenix的二级索引
摘要 HBase只提供了一个基于字典排序的主键索引,在查询中你只能通过行键查询或扫描全表来获取数据,使用Phoenix提供的二级索引,可以避免在查询数据时全表扫描,提高查过性能,提升查询效率。 目录 Covered Indexes(覆盖索引) Functional indexes(函数索引) Global indexes(全局索引) Local indexes(本地索引) 1、 覆盖索引Cov...
phoenix 5.0 IN 语法走二级索引遇到的bug
两条基本相同的SQL: SELECT SEQ_ID,SHOW_DATE,EMAIL,TIME_SPEND,CAM_SITE,TOKEN_EARNED,REVENUE,TIPS_SENT,TOY FROM T_EXTENSION_SHOW WHERE SHOW_DATE='2018-11-26' AND SEQ_ID IN(2999909, 2999908, 2999907, 2999906...
Phoenix二级索引的使用
异步索引 在执行CREATE INDEX IDX_COL1 ON TEST(COL1)时会进行索引数据的同步。此方法适用于数据量较小的情况。 异步build索引需要借助MR,创建异步索引语法和同步索引相差一个关键字:ASYNC。 创建异步索引 创建异步索引语法和同步索引相差一个关键字:ASYNC。 CREATE INDEX ASYNC_IDX ON SCHEMA_NAME.TABLE_NAME...
phoenix 查询 二级索引表
-- 查询索引表,字段使用双引号 select * from IDX_T_EXTENSION_ALL_DATAS_COUNTRY where "0:COUNTRY"='England' limit 10;
phoenix 二级索引初探
先直接上官网创建二级索引的说明,具体样例见下文 How do I create Secondary Index on a table? Starting with Phoenix version 2.1, Phoenix supports index over mutable and immutable data. Note that Phoenix 2.0.x only support...
Phoenix系列:二级索引
Phoenix使用HBase作为后端存储,对于HBase来说,我们通常使用字典序的RowKey来快速访问数据,除此之外,也可以使用自定义的Filter来搜索数据,但是它是基于全表扫描的。而Phoenix提供的二级索引是可以避开全表扫描,是在HBase中快速查找或批量检索数据的另一个选择。下面的例子使用如下表进行测试: CREATE TABLE HAO1 ( id char(36) not n...
phoenix二级索引配置问题
我利用ambari安装的phoenix和hbase,一共三台机器,其中一台既是master又是region server,开启phoenix二级索引时,master和region server的hbase-site.xml的配置有些不一样,不知该怎样修改?有遇到过类似问题的吗?纠结~~~~~
使用Phoenix创建二级索引
1. 为什么需要用二级索引? 对于HBase而言,如果想精确地定位到某行记录,唯一的办法是通过rowkey来查询。如果不通过rowkey来查找数据,就必须逐行地比较每一列的值,即全表扫瞄。对于较大的表,全表扫描的代价是不可接受的。但是,很多情况下,需要从多个角度查询数据。例如,在定位某个人的时候,可以通过姓名、身份证号、学籍号等不同的角度来查询,要想把这么多角度的数据都放到rowkey中几乎不可能...
Phoenix 二级索引探究
版本信息: HDP -> 3.0.0 Hadoop -> 3.0.1 HBase -> 2.0.0 Phoenix -> 5.0.0 HBASE 是 Google-Bigtable 的开源实现,是一种构建在 HDFS 之上的分布式、面向列的存储系统,HBase 是一种非关系型数据库,也不支持 SQL ,因此我们使用了 PHOENIX 。Phoenix 是构建在 HBa...
phoenix二级索引求教?
我利用ambari安装的phoenix和hbase,但是利用phoenix开启二级索引的时候需要要分别修改master和region server上的hbase-site.xml文件?但是三台机器的hbase-site.xml的是一样的,并且有一台机器既是master又是region server,全部修改了,hbase就启动不起来,有遇到过类似问题的吗?纠结·······
hbase二级索引、Phoenix
摘要 原文:https://blog.csdn.net/alphags/article/details/53786777 本文主要内容是通过合理hbase 行键(rowkey)设计实现快速的多条件查询,所采用的方法将所有要用于查询中的列经过一些处理后存储在rowkey中,查询时通过rowkey进行查询,提高rowkey的利用率,加快查询速度。行键(rowkey)并不是简单的把所有要查询的列的值...
Phoenix二级索引再探
目前分两种情况测试: 一种是该Hbase表已存在,通过该Hbase表映射一张对应的Phoenix表; 另一种是该Hbase表不存在,通过Phoenix创建对应的Hbase表。 Hbase表存在的情况: 1、通过hbase shell 创建Hbase表 hbase(main):009:0> create 't_hbase1','info' 0 row(s) in 1.5...
Phoenix三贴之二:Phoenix二级索引系统
开发十年,就只剩下这套Java开发体系了 >>>    ...
Phoenix: 验证二级索引和主表数据是否一致
Phoenix 4.12之后才有这个工具, 就是跑一个MapReduce对比主表和数据表是否一致. 找到的不一致的行写入到文件或者  PHOENIX_INDEX_SCRUTINY 表中.   命令如下: hbase org.apache.phoenix.mapreduce.index.IndexScrutinyTool -dt my_table -it my_index -o 也可以使...
Phoenix实现二级索引以及测试
1.添加二级索引配置 为使用Phoenix二级索引,需要开启HBase regionServer相关参数配置 <property> <name>hbase.regionserver.wal.codec</name> <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec&...
phoenix 写二级索引的触发机制
phoenix 写二级索引的触发机制查看org.apache.phoenix.hbase.index.Indexer 类当中 在该类中覆盖了 preBatchMutate方法,实现预先写数据到hbase中的拦截操作。@Override public void preBatchMutate(ObserverContext<RegionCoprocessorEnvironment> c, Mini
phoenix建立二级索引索要修改的配置
如果不进行任何配置,直接在phoenix上建立二级索引 ,比如 create index A_INDEX on &quot;t_tablename&quot;(&quot;from_account&quot;,&quot;to_account&quot;,&quot;quantity&quot;,&quot;status&quot;) include(&quot;from_account&quot;,&quot;to_account&quot;); 那么会报错: Error: ERROR 1029 (42
Phoenix 创建二级索引,字段顺序问题
T_SHOW 表如下,其中SHOW_DATE、EMAIL是Row key:   我需要这样查询: select seq_id from T_SHOW where show_date='2018-11-24' and cam_site='cam4' order by seq_id desc limit 1;   所以我增加了这样的主键: CREATE INDEX IDX_T_SHOW...
phoenix 减少二级索引表的一种方式
二级索引表,在对原始表进行数据增加时,耗时增加。 没有建立二级索引表时,耗时: 1.7分钟 4.8分钟   建立了9个简单的二级索引表,耗时: 5.6分钟 43分钟 10分钟  16.4分钟 从上面的实验结果,可以很明显看出耗时增加了好几倍。   但是页面存在多条件的查询,确实需要这些索引表。那我们是否有办法减少索引表数量呢?   T_EXTENSION_ALL_DAT...
新建Maven项目后jsp页面报错
当新建一个Maven项目时,jsp页面的首行出现了报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path。 查了一下资料发现是缺少javax.servlet-api,只需要在pom.xml中加入如下代码即可。 javax.servlet javax.s
二级索引
HBase二级索引 hbase-solr solr:solrcloud 必须的软件:hbase、solr、zookeeper、hbase-solr   https://github.com/NGDATA/hbase-indexer   安装hbase-solr,整合测试 1、获取tar包,解压 2、进入conf目录,修改hbase-indexer-site.xml配置文件,配
Phoenix开启对Hbase中的namespace及二级索引的支持
1. 开启schema与namespace的对应关系 如果使用了hbase中的自定义namespace,不仅仅使用default,那么在phoenix中与之对应的是schema的概念,但是默认并没有开启,需要在hbase-site.xml中增加以下配置项: &amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;property&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;amp;am
大数据系列(五)NoSQL数据库Hbase之Phoenix二级索引以及rowKey的设计
目录背景Phoenix的二级索引Covered Indexes(覆盖索引)Functional indexes(函数索引)Global indexes(全局索引)Local indexes(本地索引)删除索引索引的优化 背景 众所周知,HBase的索引基于RowKey, 几千万几亿的数据,你只要where rowkey=‘xx’,简直是毫秒查询。但是问题来了,那么多列,我就想用别的列查,怎么办? ...
[Phoenix基础]-- 二级索引应该使用local Index还是global Index?
版本:phoenix 4.12.0 说明: 1、一个global index表对应着一个hbase 表,local index是在主表上新增一列存储索引数据。 2、适用场景 global index :适用于多读的场景,但是存在同步索引时带来网络开销较大的问题。 local index :由于和原数据存储在一张表中同步索引数据会相对快一点。 3、推荐使用 global index 原...
phoenix 有时候不走二级索引 会 更快 /*+ NO_INDEX*/
0: jdbc:phoenix:192.168.199.154&amp;gt; select t1.seq_id as seq_id from (select seq_id,toy from T_EXTENSION_SHOW where show_date='2018-11-24' and email='wjc@45555.com') t1 where t1.toy='ambi' and t1.cam_...
hbase表映射Phoenix视图, 基于视图的二级索引是否实时更新
1. hbase shell 创建表 create 'MY_TABLE', 'CF1','CF2' 添加数据 put 'MY_TABLE','1' ,'CF1:V1', 'uwo1' put 'MY_TABLE','1' ,'CF2:V2', '1' put 'MY_TABLE','1' ,'CF1:V3', '10' put 'MY_TABLE','2' ,'CF1:V1', 'uwo...
新增一条数据后,如何获取刚刚新增数据的ID
//新增一条数据后,如何获取刚刚新增数据的ID //新建表 CREATE TABLE Test ( PKID INT IDENTITY(1,1) PRIMARY KEY , Column1 VARCHAR(50), GUID UNIQUEIDENTIFIER DEFAULT NEWID() ) //新增马上得到id //1. INSERT INTO Test (Column1) VALUES ('a
delphi 7 点击cxgrid后 新增数据时报错?
delphi 7 点击cxgrid后 新增数据时报错?报‘dataset not in edit or insert mode’,请大家帮个忙,我怎么查也查不出错在哪里,不点击cxgrid,新增数据就没问题!先谢谢大家!rnrn代码如下:rnrnprocedure TForm1.btaddClick(Sender: TObject);rnvar tmpxmdh,tmpajh,tmpqx,tmpschnd:string;rn sy,sm,sd:word;rnbeginrn if btadd.Caption='增加' thenrn beginrn pub_bgqx:=prvbgqx;rn pub_class_id:=prvflh;rn DecodeDate(now,sy,sm,sd);rn with adod_wjj dorn beginrn close;rn commandtext:='select * from wscl_wsda_file order by wjjh desc';rn open;rn end;rn adod_wjj.Append;rn cxdbtextedit11.SetFocus;rn cxdbtextedit13.DataBinding.DataSource.DataSet.FieldByName('ys').AsInteger:=0;rn cxdbtextedit14.DataBinding.DataSource.DataSet.FieldByName('wjfs').AsInteger:=1;rn cxdbcombobox6.DataBinding.DataSource.DataSet.FieldByName('bzbm').AsString:=prvbzbm;rn cxdbcombobox7.DataBinding.DataSource.DataSet.FieldByName('ztlx').AsString:=prvztlx;rn cxdbcombobox9.DataBinding.DataSource.DataSet.FieldByName('mj').AsString:=prvmj;rn cxdbtextedit19.DataBinding.DataSource.DataSet.FieldByName('cfwz').AsString:=prvcfwz;rn cxdbtextedit18.DataBinding.DataSource.DataSet.FieldByName('wjhh').AsString:=prvhh;rn cxdbtextedit28.DataBinding.DataSource.DataSet.FieldByName('flh').AsString:=prvflh;rn cxdbtextedit17.DataBinding.DataSource.DataSet.FieldByName('wjnd').AsString:=prvwjnd;rn cxdbcombobox8.DataBinding.DataSource.DataSet.FieldByName('bgqx').AsString:=pub_bgqx;rn cxdbdateedit6.DataBinding.DataSource.DataSet.FieldByName('gdsj').value:=date;rn btadd.Caption:='保存';rn btmod.Caption:='还原';rn endrn elsern beginrn if ((trim(cxdbtextedit17.Text)='') or (trim(cxdbcombobox8.Text)='') or (trim(cxdbtextedit29.Text)='')) thenrn beginrn MessageBox(0, '文件保管期限、文件年度、文件时间不能为空!', '操作提示:', MB_ICONINFORMATION + MB_OK);rn exit;rn end;rn prvbzbm:=trim(cxdbcombobox6.Text);rn prvflh:=trim(cxdbtextedit28.Text);rn prvwjnd:=trim(cxdbtextedit17.Text);rn prvhh:=trim(cxdbtextedit18.Text);rn prvztlx:=trim(cxdbcombobox7.Text);rn prvbgqx:=trim(cxdbcombobox8.Text);rn prvmj:=trim(cxdbcombobox9.Text);rn prvcfwz:=trim(cxdbtextedit19.Text);rn with adod_wjj dorn beginrn fieldbyname('bzbm').Value:=trim(cxdbcombobox6.Text);rn fieldbyname('ys').Value:=strtoint(trim(cxdbtextedit13.Text));rn fieldbyname('wjfs').Value:=strtoint(trim(cxdbtextedit14.Text));rn fieldbyname('flh').Value:=trim(cxdbtextedit28.Text);rn fieldbyname('wjnd').Value:=trim(cxdbtextedit17.Text);rn fieldbyname('wjhh').Value:=trim(cxdbtextedit18.Text);rn fieldbyname('cfwz').Value:=trim(cxdbtextedit19.Text);rn tmpschnd:=trim(cxdbtextedit17.Text);rn fieldbyname('ztlx').Value:=trim(cxdbcombobox7.Text);rn fieldbyname('gdsj').Value:=cxdbdateedit6.date;rn fieldbyname('bgqx').Value:=trim(cxdbcombobox8.Text);rn fieldbyname('mj').Value:=trim(cxdbcombobox9.Text);rn tmpqx:=trim(cxdbcombobox8.Text);rn fieldbyname('gdbz').Value:='未归档';rn fieldbyname('operdate').Value:=now;rn post;rn end;rn with adod_wjj dorn beginrn close;rn commandtext:='select * from wscl_wsda_file where wjnd=:tnd and bgqx=:tqx order by bgqx,wjjh desc';rn parameters[0].DataType:=ftstring; parameters[1].DataType:=ftstring;rn parameters[0].Value:=tmpschnd; parameters[1].Value:=tmpqx;rn open;rn end;rn btadd.Caption:='增加';rn btmod.Caption:='修改';rn end;rnend;rnrnrnprocedure TForm1.cxGrid3DBTableView1CellClick(rn Sender: TcxCustomGridTableView;rn ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;rn AShift: TShiftState; var AHandled: Boolean);rnbeginrn with adod_wjj dorn beginrn prvbzbm:=fieldbyname('bzbm').AsString;rn prvflh:=fieldbyname('flh').AsString;rn prvwjnd:=fieldbyname('wjnd').AsString;rn prvhh:=fieldbyname('wjhh').AsString;rn prvztlx:=fieldbyname('ztlx').AsString;rn prvbgqx:=fieldbyname('bgqx').AsString;rn prvmj:=fieldbyname('mj').AsString;rn prvcfwz:=fieldbyname('cfwz').AsString;rn prvbgqxcode:=fieldbyname('bgqxcode').AsString;rn end;rnend;
DATAGRIDVIEW绑定数据后新增行进行数据更新报错
如附件所示,我先用DATAGRIDVIEW绑定了数据展示出来,现在我需要在DATAGRIDVIEW界面上新插入一行数据,并且将这新插入的数据更新到数据库里面去。rn当我在DATAGRIDVIEW里面新插入一行,准备编辑内容时,就报如图的错误,这个要怎么解决?rnrn[img=https://img-bbs.csdn.net/upload/201705/09/1494320910_290516.png][/img]
Mybatis Plus 新增数据后返回新增数据的id
看了好多资料,其实跟mybatis是一样的,有一点我给弄错了,耽误了很久。 这是xml文件: &lt;insert id="insertReturnId" parameterType="css.entity.Paper" useGeneratedKeys="true" keyProperty="id"&gt; insert into paper(id,course_id,`explain`,...
安装配置HBase2.0.1集群
1、配置ssh免密登录: 参考 2、下载HBase2.0.1文件: wget http://mirrors.shu.edu.cn/apache/hbase/2.0.1/hbase-2.0.1-bin.tar.gz 3、配置hbase-env.sh #开启JAVA_HOME配置 export JAVA_HOME=/usr/lib/jvm/java #关闭HBase自带的zookeepe...
Phoenix官网SQL说明PDF格式 for 5.0
Phoenix最新版本截至我上传资源目前是5.0,这是官网的SQL说明PDF格式Phoenix5.0基于HBASE2.0 官网地址:http://phoenix.apache.org/
Sqoop抽取Phoenix数据
使用场景:主要想实现抽取hbase数据到hive中,Sqoop不支持对hbase的直接抽取,但是我们可以通过Phoenix映射hbase表实现。 安装好phoenix后对于HBase中已经存在的数据表不会自动进行映射,所以想要再phoenix中操作HBase已有数据表就需要手动进行配置。查看phoenix的版本,如果版本是4.10之前的,映射关系是根据列来映射的,phoenix可以通过creat...
android 5.0新增的控件总结
5.0中新添加了很多控件,为了便于学习和总结这里我给大家归纳了一下: 使用方式:builde.gride文件中添加下面的依赖, compile 'com.android.support:design:22.2.0'   //可修改版本号为对应的buildToolsVersion版本 然后就可以使用所有的控件了,如下: 1、android.support.v7.widget.CardView
mysql运用_RecordsetPtr时新增数据报错
合并两个数据库a,b, 从a得item表取出数据,做少量修改,然后插入b得item表,rna得item有200万条数据,b得item有300万条数据,在插入第二条数据时update处报错。代码如下[code=C/C++][/code] rnrnBOOL CHFLogical::Process_Item(long nStartRecord,long nEndRecord, _RecordsetPtr destrs)rnrn long nMaxItemID=GetTableMaxID("sk_item","id",m_DestGameConn);rn CString sqlselect;rn sqlselect.Format("select * from sk_item limit %d,%d",nStartRecord,nStartRecord+nEndRecord);rn _RecordsetPtr rs;rn rs.CreateInstance(__uuidof(Recordset));rnrn _variant_t varval;rnrn static long nRecordNum=0;rnrn long oldid=0,newid=0,newplayerid=0;rnrn long PlayerID=0;rnrn long OwnerID=0;rnrn long wps1=0,wps2=0,wps3=0,wps4=0;rnrn long nTotalCount= GetTableCount("sk_item","id",m_SrcGameConn);rnrnrn tryrn rn rs->Open(_bstr_t(sqlselect),m_SrcGameConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);rnrn while (!rs->adoEOF) rnrn m_pUI->SetProgressText("sk_item",++nRecordNum,nTotalCount);rnrn PlayerID = rs->Fields->GetItem("player_id")->Value;rnrn newplayerid = m_MapUserID[PlayerID];rn varval = rs->Fields->GetItem("id")->Value;rn oldid = (long)varval;rn newid = ++nMaxItemID;rn //添加新的记录到目标表中rn [color=#FF0000]destrs->AddNew();[/color]rn Sleep(100);rn long colcnt = destrs->Fields->Count;rn for(long i=0;iPutCollect(i,rs->Fields->GetItem(i)->Value);rn rnrn //设置ID,MasterNamern destrs->PutCollect("id",_variant_t(newid));rnrn OwnerID = rs->Fields->GetItem("owner_id")->Value;rn rnrn if(OwnerID==PlayerID)rn destrs->PutCollect("owner_id",_variant_t(newplayerid));rnrn destrs->PutCollect("player_id",_variant_t(newplayerid));rn rnrn [color=#FF0000]destrs->Update();[/color] rn //把新旧id插入到容器中rn m_MapItemID[oldid]=newid;rnrn //移动到下一条记录rn rs->MoveNext();rn rn rs->Close();rn rn catch (_com_error e) rn AfxMessageBox("Process_Item 出错");rn AfxMessageBox(e.Description());rn if(rs->GetState()&adStateOpen)rn rs->Close();rn return FALSE;rn rn rn return true;rn
java用hibernate新增数据时报错
A表和B表是多对一关联关系,nA表用HibernateTemplate的save()插入时,如果A表到B表的导航属性是空的话会出现以下错误:n![图片说明](https://img-ask.csdn.net/upload/201701/15/1484490178_892987.png)n请问怎样可以在导航属性为空的情况下不报错。
idea新建springboot项目后报错
1. 编写目的 介绍关于“idea新建springboot项目后报错”的一种情况,具体错误表现如下: 新建后maven下载依赖包很快就结束了。 打开默认的Application.java,可以看到提示报错,找不到spring的相关jar包。 2. 解决方法 方法1:删除maven的仓库中所有已经下载好的内容,然后鼠标右键点击项目,选择Maven,然后选择第一个,也就是Reimport,接着就可...
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法