e_server 回复于:2004-04-10 05:09:02 |
Function:usropn ??? |
aeiou 回复于:2004-04-10 12:45:50 |
UC是RPG3中用的。跟RPGLE的UsrOpn应该是一样的吧。
可以找一下以前的贴子,有一个关于 UsrOpn 的介绍的。 |
qm 回复于:2004-04-10 16:03:52 |
看了一下以前aeiou的帖子,还是不太明白:比如程序A先后调用程序B和C,在程序B和C中都有对文件的UC控制,我是想问的是B在执行结束以后会自动关闭这个文件吗? 因为反复运行几次后出现在调用C的时候出现提示文件因为想要重复打开而产生错误的信息。 |
wildfish 回复于:2004-04-10 23:04:51 |
用完就关,就不会出现这样的结果 |
红像 回复于:2004-04-12 10:12:45 |
'UC'开关是指USER CONTROL, 在需要COMIT/ROLLBACK的时候使用,至少我是这样理解的。
在一个文件OPEN以后,好像就会被LOCK住,其它文件是不能往里面写?又或者打开。最好是自己CLOSE。 |
aeiou 回复于:2004-04-12 12:37:41 |
如果设置了 *INLR = *ON 的话,应该可以关闭的。
另外,如果是反复运行几次后才会出现问题,那就说明第一次运行的时候是没问题的,也就是说单是A调B又调C本身是没问题的,后面之所以有问题,可能还是逻辑控制上的问题。 你用DEBUG跟踪一下,看什么时候出问题。跟踪过程中可以通过系统请求3,然后用12察看打开的文件,就能比较清楚的了解程序的每一步执行对文件的控制是如何影响的。 |
qm 回复于:2004-04-12 14:14:14 |
一般程序在有RETRN或者*INLR为*ON状态的时候可以退出,原来的程序中在结束的时候是对*INLR置了ON的,即使出现文件读些异常,文件也应该能被关闭的;跟踪由于权限问题无法实现。
另:如果对一个文件用了UC控制,其他的程序是不是就相当于完全不能用这个文件了? |
qm 回复于:2004-04-12 15:23:33 |
随便找了一个文件试验了一下,发现在两个SESSION中同时对一个文件进行UC打开控制并有可能进行更新和追加操作,互相没有什么影响。在同一个SESSINON中先以可追加和可更新的方式打开,并且不SETON *INLR,后来的一个追加和更新文件操作也能正常进行!
迷茫ing! |
qm 回复于:2004-04-12 15:29:09 |
看了QINGZHOU提供的RPG REFERENCE 也没有找到比较详细的关于这个的说明。各位有过这方面接触的请不吝指教! |
qm 回复于:2004-04-14 10:52:49 |
自己顶出来请各位再看看!谢了! |