起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2269|回复: 9

[结贴] mssql数据源bass服务不能保存

[复制链接]

3

主题

11

帖子

33

积分

新手上路

Rank: 1

积分
33
QQ
发表于 2016-5-25 17:32:08 | 显示全部楼层 |阅读模式
我使用mssqlserver作为数据源使用bass中自带的m文件中的新建数据表Action来源了一个bass服务文件
做了一个测试的W文件,  发现不能保存修改的内容求解决问题
当时报错的图片如下:

不知道 是什么原因求解决!
QQ图片20160525172429.png

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2016-5-25 18:36:05 | 显示全部楼层
看控制台的完整错误信息是什么
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

3

主题

11

帖子

33

积分

新手上路

Rank: 1

积分
33
QQ
 楼主| 发表于 2016-5-26 08:44:16 | 显示全部楼层
com.justep.baas.action.ActionException: Action[test/test/saveFieldRecord]执行失败,SQL执行失败,SQL:UPDATE FieldRecord SET fID=?,ApplyTime=?,ConstructionProject=?,ConstructionTeam=?,ConstructionUnit=?,EndTime=?,FuelMan=?,JobContent=?,Lessor=?,MachineName=?,Machinenumber=?,Oil=?,OilNumber=?,ProjectUnit=?,Spec=?,StartTime=?  WHERE fID=?
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        ... 16 more
Caused by: com.justep.baas.data.sql.SQLException: SQL执行失败,SQL:UPDATE FieldRecord SET fID=?,ApplyTime=?,ConstructionProject=?,ConstructionTeam=?,ConstructionUnit=?,EndTime=?,FuelMan=?,JobContent=?,Lessor=?,MachineName=?,Machinenumber=?,Oil=?,OilNumber=?,ProjectUnit=?,Spec=?,StartTime=?  WHERE fID=?
        at com.justep.baas.data.DataUtils.saveData(Unknown Source)
        at com.justep.baas.data.DataUtils.saveData(Unknown Source)
        at com.justep.baas.action.CRUD.save(Unknown Source)
        at test.Test__do.saveFieldRecord(Test__do.java:75)
        ... 20 more
Caused by: java.sql.SQLException: 无法更新标识列 'fID'。
        at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
        at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
        at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
        at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:628)
        at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:525)
        at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:487)
        at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.execute(JtdsPreparedStatement.java:475)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
        ... 24 more
五月 26, 2016 8:43:58 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet WeX5_Baas_Servlet threw exception
java.sql.SQLException: 无法更新标识列 'fID'。
        at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
        at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
        at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
        at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:628)
        at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:525)
        at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:487)
        at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.execute(JtdsPreparedStatement.java:475)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
        at com.justep.baas.data.DataUtils.saveData(Unknown Source)
        at com.justep.baas.data.DataUtils.saveData(Unknown Source)
        at com.justep.baas.action.CRUD.save(Unknown Source)
        at test.Test__do.saveFieldRecord(Test__do.java:75)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
回复 支持 反对

使用道具 举报

发表于 2016-5-26 11:22:10 | 显示全部楼层
源理 发表于 2016-5-26 08:44
com.justep.baas.action.ActionException: Action[test/test/saveFieldRecord]执行失败,SQL执行失败,SQL: ...

无法更新标识列 'fID'。
应该是主键有问题!请问baasData组件的idColumn和数据库表中主键的字段是否是对应的??
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

3

主题

11

帖子

33

积分

新手上路

Rank: 1

积分
33
QQ
 楼主| 发表于 2016-5-26 12:27:06 | 显示全部楼层
数据表的主键是fID我又看了一下数据表如图
baas组件的idcolumn也设置是正确的如图
QQ图片20160526122255.png
QQ图片20160526122418.png
回复 支持 反对

使用道具 举报

发表于 2016-5-26 14:28:51 | 显示全部楼层
源理 发表于 2016-5-26 12:27
数据表的主键是fID我又看了一下数据表如图
baas组件的idcolumn也设置是正确的如图
...

请问你是怎么编辑数据数的??确保fID这一列没有被修改!!如果被改掉了!数据库是找不到的
你试试平台案例!是可以正常编辑并保存的:/UI2/demo/baas/simpleData/index.w
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

3

主题

11

帖子

33

积分

新手上路

Rank: 1

积分
33
QQ
 楼主| 发表于 2016-5-26 16:08:18 | 显示全部楼层
liangyongfei 发表于 2016-5-26 14:28
请问你是怎么编辑数据数的??确保fID这一列没有被修改!!如果被改掉了!数据库是找不到的
你试试平台案 ...

我修改的是非fID列
这个W文件就是一个感知组件input绑定了一些非主键列
我通过测试时修改的,如刚开始的图。肯定没有改主键列
回复 支持 反对

使用道具 举报

发表于 2016-5-26 16:41:21 | 显示全部楼层
源理 发表于 2016-5-26 16:08
我修改的是非fID列
这个W文件就是一个感知组件input绑定了一些非主键列
我通过测试时修改的,如刚开始的 ...

数据库是不是设置了这个字段fID 不允许被修改!
这样吧!你再baas里面找到相应的action设置,把permissions属性修改下!,选择的字段中不要包含fID!
这样就不会给fID重新赋值了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

3

主题

11

帖子

33

积分

新手上路

Rank: 1

积分
33
QQ
 楼主| 发表于 2016-5-26 17:03:20 | 显示全部楼层
谢谢!!!!!!!!
感谢liangyongfei版主的指导
现在问题解决了,可以结贴
总结一下吧,原因是这样的:
我的mssql表 有一个自动增量的主键,就是这个主键不能被保存,但baas的action里,默认是要去保存本字段的所有值,包括了一个主键
所以sql执行出错。用了liangyongfei版本的方法修改permissions属性,现在测试已经通过了。最后再次感谢万能的版主大大!
回复 支持 反对

使用道具 举报

29

主题

119

帖子

189

积分

初级会员

Rank: 2

积分
189
QQ
发表于 2016-7-23 11:56:54 | 显示全部楼层
源理 发表于 2016-5-26 17:03
谢谢!!!!!!!!
感谢liangyongfei版主的指导
现在问题解决了,可以结贴

你好,具体是怎样设置的啊,我也遇到这个问题了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-24 00:24 , Processed in 0.070027 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表