菜鸟提问:
如题,系统中有一些二进制的外部变量被置位与否我要用来做操作日志,我是采用的C/S模式,当客户机对变量进行操作的时候我会触发报警并归档,用户名和机器名我是用@currentuser和@localmachinename写入过程值中显示出来的,但是现在有个问题是用户名和机器名始终是显示的服务器的登陆用户和服务器的机器名,如何能在客户机操作的时候显示客户机机器名和实际登陆的用户名呢?
侠士:
@localmachinename就是本地计算机名,不信,你在客户机上显示看看。
但是,归档就不一样了,由于c/s结构中,项目是在服务器上的,归档当然也是在服务器上操作的。所以@localmachinename就是服务器名了。
另外,@localmachinename内部变量的作用域好像是本机的,不是全局的。
菜鸟:
谢谢版主的回复,基于C/S结构,如果我想获得客户机进行操作的用户和计算机名写入归档没有其他办法了么?有没有可能把客户机的信息写入归档数据库相应的字段呢?因为如果无法记录是具体哪台客户机的哪个用户进行的操作,那操作日志实际意义也就不大了,因为我看变量归档也没有关于用户名和计算机名的字段
侠士:
由于@localmachinename和@currentuser的作用域都是本机的,想要在服务器上辨别出来自不同客户机的信息,只能在画面中进行信息传递了。
再建两个全项目的文本型内部变量,比如User1、Machine1。“当客户机对变量进行操作的时候”,肯定是在画面上操作,这时,将@currentuser赋值给User1,将@localmachinename赋值给Machine1。
归档时,对User1、Machine1进行记录。
菜鸟:
这个是个好办法,不过我的客户机是9台,如果同时有多台客户机对变量进行操作的话,由于User1、Machine1肯定是全项目变量,所以*终归档时记录的客户机名称和登陆用户有可能是错的吧?这个有什么办法么?另外捎带问您一下,报警记录的归档速度有多快?是毫秒级别么?如果归档速度够快的话那可能这样搞就不会有太大问题了。
侠士:
速度应该不是问题。主要是跟踪这个二进制外部变量的变化情况。试试看吧。