多步操作产生错误,请检查每一步的操作

buaawjh 2005-11-16 10:59:20
1、我使用的是Vb6+ADO+Oracle Database+COM+技术组合
2、此错误长期运行后才出现
3、错误产生后,必须重起才能解决,原先的功能又恢复了
4、能够确保每一个过程,函数都有错误捕捉,而且有Err.Clear
5、Why?各位大哥能否给些建议
...全文
364 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2005-11-28
  • 打赏
  • 举报
回复
检查客户端程序是否存在内存泄漏(任务管理器中看进程的内存耗用是否逐日增加)?
buaawjh 2005-11-28
  • 打赏
  • 举报
回复
hbxsq(博文) :
1、Oracle里没有自动ID,我用的是序列
2、整个库确信没有用触发器
3、我只是在读取的时候出错,而且重起COM+服务一切都恢复正常了
hbxsq 2005-11-25
  • 打赏
  • 举报
回复
可能是你操作的表里有自动更新的字段,例如自动ID或是触发器,这些字段都是在数据库内完成的,当你插入新数据时,你程序中的记录集没有得到这些字段的值,这时再更新表中的数据,就会出错。
buaawjh 2005-11-25
  • 打赏
  • 举报
回复
gsuner:问题是,为什么我运行6,7天后就出问题,而且有时出有时不出。重起COM+服务或机器及没有问题了?
其次,Oracle数据的插入我都是to_date('','yyy-MM-dd')的
gsuner 2005-11-24
  • 打赏
  • 举报
回复
这个错误经常是因为字段的数据类型不符合、长度超长引起的。
日期型数据有时候会因为数据格式不符合引起。有些客户端设置的日期格式可能短日期型,例如可能“月月-日日-年年”格式,而服务器认为是“年年-月月-日日”,更新到数据库就出错了。最好对日期型拼到SQL全部格式化为标准“年年年年-月月-日日”格式。因此有些客户端正常,有些不正常。
buaawjh 2005-11-24
  • 打赏
  • 举报
回复
不是,在那种情况下,我完全重新编写程序(不用任何控件),通过COM+读取时间,也是时好时坏
TheRule 2005-11-18
  • 打赏
  • 举报
回复
应该是对数据库的操作错误或某些对数据库操作的控件操作错误,好好检查一下吧,有些控件本身就有bug,比如vb带的那个dbgrid,输入20位以上时就会出现这个错误,换成同门的true dategrid就好了
buaawjh 2005-11-18
  • 打赏
  • 举报
回复
数据库的设计是小组讨论的,有很丰富的DBA参与设计,不存在“两个或多个重复的记录”,主键和外键,索引都是很简单的设置。
babyfast 2005-11-17
  • 打赏
  • 举报
回复
应该是没有主建 数据库中出现了两个或多个重复的记录
你查查
buaawjh 2005-11-17
  • 打赏
  • 举报
回复
非常感谢各位帮助。现在问题定位的范围缩小了,我想是COM+和Oracle数据库的问题,具体现象是:
1、用户运行系统大概7天了,其间系统没有问题
2、昨天老是报“多步操作...”错误
3、我跟踪系统,发现我用RecordSet读取日期型数据的时候经常出错,有时好,有时就报错,重起服务器就没有问题了
4、我用的是Oracle的OleDb引擎
各位有什么建议吗?
clear_zero 2005-11-17
  • 打赏
  • 举报
回复
我觉得是数据的问题,重新检查一下数据的设置。
建立一个干净的数据库做测试,然后再说
buaawjh 2005-11-16
  • 打赏
  • 举报
回复
有用到第三方的界面组件
buaawjh 2005-11-16
  • 打赏
  • 举报
回复
系统采用COM+架构,数据库服务器是Oracle9i,我的长时间的概念是7天左右
winehero 2005-11-16
  • 打赏
  • 举报
回复
这种问题很难讲呵。。。

有可能是赋予字段值类型、长度与定义不匹配之类问题。你的长时间是什么概念?能介绍一下
你这个系统运作吗?
fishmans 2005-11-16
  • 打赏
  • 举报
回复
有用到第三方控件吗?


buaawjh 2005-11-16
  • 打赏
  • 举报
回复
服务器用的是Win2003
daisy8675 2005-11-16
  • 打赏
  • 举报
回复
已经说了,查数据库,明显数据库问题,和第3方能什么关系
buaawjh 2005-11-16
  • 打赏
  • 举报
回复
我重起的是客户端机器
用的第三方组件和数据访问无关
cnapc 2005-11-16
  • 打赏
  • 举报
回复
我有遇到过类似问题,是因为数据库的索引不正确了。
daisy8675 2005-11-16
  • 打赏
  • 举报
回复
一般出现这个问题就是数据库没主键产生。
加载更多回复(1)
----------------------------------------------------------- 金蝶K/3 WISE_V14.0.0 Patch说明 -编号:PT095164 ----------------------------------------------------------- (C)金蝶软件(中国)有限公司版权所有,2015年03月16日 补丁编号: PT095164 客户端组件:COMRemote.dll,k3bills.dll,K3BillExpImp.dll 中间层组件: WEB组件: 其它组件: 编译环境: WIn2003 VB6.0 SP6.0 补丁性质: 功能改进 所属系统: 供应链整体 适用版本: K/3 WISE_V14.0.0 适用范围: 所有客户 补丁发布说明: 【R20141224-0286】 功能点:仓存管理-生产领料 应用场景:仓存管理-生产领料 症状:新增领料单,录入物料、数量、单价及发料仓库,将光标移至单据头,单价和金额被清零,相应单元格变成灰色不能编辑,删除发料仓库,单价和金额又能重新编。同时,生产领料单新增后,录入了单价和金额。审核退出,再次打开单据一反审核,单价和金额就会被自动清空掉。 【R20150107-0005】 功能点:销售管理-销售订单 应用场景:销售管理-销售订单 症状:销售出库单 根据销售订单下推生成时,如果基础资料有维护销售单价,系统无法优先取销售订单上的单价。 【R20150107-0004】 功能点:销售管理-订单引入 应用场景:销售管理-订单引入 症状:在销售系统录入一张销售订单,然后通过在序时簿上引出EXCEL模板然后在EXCEL中录入内容然后引入到系统中的方式引入一张与手工录入单据客户等内容一致的销售订单。然后在销售出库单上新增选择源单为手工录入以及引入的两张单据同时选择,系统提示【多单选单时,订货机构、购货单位、收货方必须唯一】。如果是在销售订单序时簿同时选择两张单据下推可以成功。 【R20150116-0138】 功能点:仓存管理-虚仓管理 应用场景:仓存管理-虚仓管理 症状:虚仓管理,虚仓入库序时薄过滤,条件选择仓库,F7选择时“提示系统名称和代码已使用”。 【R20150115-0048】 功能点:仓存管理-销售出库 应用场景:仓存管理-销售出库 症状:1、物料进行批次及辅助数量管理,数量精度2位数; 2、录入入库单,批次01,第一次入库基本数量100,换算率为2,辅助数量为50。第二次入库基本数量为120,换算率为3,辅助数量为40,此时库存中基本数量为220,辅助数量为90; 3、销售订单自定义字段辅助单价以及辅助金额,辅助单价为手工录入的单价字段,辅助金额设置公式辅助单价*辅助数量。销售出库单也自定义字段辅助单价以及辅助金额,辅助单价取源单来源销售订单的辅助单价,辅助金额设置公式辅助单价*辅助数量; 4、销售订单录入基本数量300,辅助单价1; 5、销售订单下推销售出库单,然后F12选择库存中的批次01,系统自动携带辅助数量为90,计算辅助金额为90.16,计算不对。 【R20150126-0016】 功能点:销售管理-发票引出 应用场景:销售管理-发票引出 症状:k/3客户端工具包--bos平台--bos数据交换平台:点击‘供应链数据’,新建任务后, 在引出界面选择‘销售发票(普通)’,选择文件类型以及文件路径.步骤2:点击过滤任意一张销售发票,点击执行进行引出.步骤3:新建一空白账套,结束初始化,现将基础资料同步后。然后在将步骤2引出的excel引入到该空白账套中。 【R20150128-0271】 功能点:分销管理-数据传输 应用场景:分销管理-数据传输 症状:分销管理模块打开数据传输和基础设置报错,提示调用分销管理函数出错。 【R20150122-0298】 功能点:供应链整体-单据精度 应用场景:供应链整体-单据精度 症状:外购入库单上新增列1,列2,列1设置数字字段,精度为6位,列2用外购入库单的实收数量*列1,列2精度为6位。如果赋值给列1小数位比较多的话,列2就无法正常算出数值出来,系统默认保留两位,比如,列1输入0.000625,数量为1,此时列2显示为0.00。其他业务单据如销售出库单也有这样的情况出现。 【R20150203-0354】 功能点:存货核算-出库核算 应用场景:存货核算-出库核算 症状:新初始化的账套,物料采用分批认定法(批内加权平均),在录初始数据的时候,录了3个批次的数据,3个批次的价格都不相同,结束初始化之后,做了每个批次的出库单,出库核算的时候,第一个批次取的不是自己批次的批内加权平均价,而是所有批次的加权平均价,但是后面2个批次是正常的。 【R20150109-0061】 功能点:委外管理-委外订单 应用场景:委外管理-委外订单 症状:采购申下推委外订单,单价都取了第一条分录,全部一样。 【R20150122-0104】 功能点:供应链整体-非核算仓 应用场景:供应链整体-非核算仓 症状:新增的红字销售发票下推生成红字销售出库单后,出库单中的发货仓库按 F7 选择时,无法选择核算仓库,只能选择到非核算仓。 【R20150127-0204】 功能点:供应链整体-单据字定义 应用场景:供应链整体-单据字定义 症状:销售出库单据头增加一个单价字段,设置为必录,然后在系统中录入一张销售出库单,在数据交换平台中导出该单据,在系统中删除该单据,然后进行导入,系统提示【多步操作产生错误检查一步的状态值】。 【R20150202-0271】 功能点:仓存管理-报表查询 应用场景:仓存管理-报表查询 症状:新建用户,授予部分物料的数据权限,登陆K/3后,查询物料收发汇总表(物料收发明细表),勾选参数“显示MTO数量调整单数据”,确定后无法进入报表;如果不勾选参数,或把用户加入管理员组,则可以正常进入报表。 前置补丁: 安装方法:(如有前置补丁,先依次安装前置补丁) 1.中间层安装补丁; 2.升级帐套; 3.客户端安装补丁。
数据加密技术 我们经常需要一种措施来保护我们的数据,防止被一些怀有不良用心的人所看到或者破坏。在信息时代,信息可以帮助团体或个人,使他们受益,同样,信息也可以用来对他们构成威胁,造成破坏。在竞争激烈的大公司中,工业间谍经常会获取对方的情报。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。数据加密与解密从宏观上讲是非常简单的,很容易理解。加密与解密的一些方法是非常直接的,很容易掌握,可以很方便的对机密数据进行加密和解密。 一:数据加密方法 在传统上,我们有几种方法来加密数据流。所有这些方法都可以用软件很容易的实现,但是当我们只知道密文的时候,是不容易破译这些加密算法的(当同时有原文和密文时,破译加密算法虽然也不是很容易,但已经是可能的了)。最好的加密算法对系统性能几乎没有影响,并且还可以带来其他内在的优点。例如,大家都知道的pkzip,它既压缩数据又加密数据。又如,dbms的一些软件包总是包含一些加密方法以使复制文件这一功能对一些敏感数据是无效的,或者需要用户的密码。所有这些加密算法都要有高效的加密和解密能力。 幸运的是,在所有的加密算法中最简单的一种就是“置换表”算法,这种算法也能很好达到加密的需要。每一个数据段(总是一个字节)对应着“置换表”中的一个偏移量,偏移量所对应的值就输出成为加密后的文件。加密程序和解密程序都需要一个这样的“置换表”。事实上,80x86 cpu系列就有一个指令‘xlat’在硬件级来完成这样的工作。这种加密算法比较简单,加密解密速度都很快,但是一旦这个“置换表”被对方获得,那这个加密方案就完全被识破了。更进一步讲,这种加密算法对于黑客破译来讲是相当直接的,只要找到一个“置换表”就可以了。这种方法在计算机出现之前就已经被广泛的使用。 对这种“置换表”方式的一个改进就是使用2个或者更多的“置换表”,这些表都是基于数据流中字节的位置的,或者基于数据流本身。这时,破译变的更加困难,因为黑客必须正确的做几次变换。通过使用更多的“置换表”,并且按伪随机的方式使用每个表,这种改进的加密方法已经变的很难破译。比如,我们可以对所有的偶数位置的数据使用a表,对所有的奇数位置使用b表,即使黑客获得了明文和密文,他想破译这个加密方案也是非常困难的,除非黑客确切的知道用了两张表。 与使用“置换表”相类似,“变换数据位置”也在计算机加密中使用。但是,这需要更多的执行时间。从输入中读入明文放到一个buffer中,再在buffer中对他们重排序,然后按这个顺序再输出。解密程序按相反的顺序还原数据。这种方法总是和一些别的加密算法混合使用,这就使得破译变的特别的困难,几乎有些不可能了。例如,有这样一个词,变换起字母的顺序,slient 可以变为listen,但所有的字母都没有变化,没有增加也没有减少,但是字母之间的顺序已经变化了。 但是,还有一种更好的加密算法,只有计算机可以做,就是字/字节循环移位和xor操作。如果我们把一个字或字节在一个数据流内做循环移位,使用多个或变化的方向(左移或右移),就可以迅速的产生一个加密的数据流。这种方法是很好的,破译它就更加困难!而且,更进一步的是,如果再使用xor操作,按位做异或操作,就就使破译密码更加困难了。如果再使用伪随机的方法,这涉及到要产生一系列的数字,我们可以使用fibbonaci数列。对数列所产生的数做模运算(例如模3),得到一个结果,然后循环移位这个结果的次数,将使破译次密码变的几乎不可能!但是,使用fibbonaci数列这种伪随机的方式所产生的密码对我们的解密程序来讲是非常容易的。 在一些情况下,我们想能够知道数据是否已经被篡改了或被破坏了,这时就需要产生一些校验码,并且把这些校验码插入到数据流中。这样做对数据的防伪与程序本身都是有好处的。但是感染计算机程序的病毒才不会在意这些数据或程序是否加过密,是否有数字签名。所以,加密程序在每次load到内存要开始执行时,都要检查一下本身是否被病毒感染,对与需要加、解密的文件都要做这种检查!很自然,这样一种方法体制应该保密的,因为病毒程序的编写者将会利用这些来破坏别人的程序或数据。因此,在一些反病毒或杀病毒软件中一定要使用加密技术。 循环冗余校验是一种典型的校验数据的方法。对于每一个数据块,它使用位循环移位和xor操作产生一个16位或32位的校验和 ,这使得丢失一位或两个位的错误一定会导致校验和出错。这种方式很久以来就应用于文件的传输,例如 xmodem-crc。 这是方法已经成为标准,而且有详细的文档。但是,基于标准crc算法的一种修改算法对于发现加密数据块中的错误和文件是否被病毒感染是很有效的。 二.基于公钥

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧