当我尝试使用C#.NET连接到AS400时,出现了以下错误:
IBMDA400未在本地计算机上注册
有人可以向我解释一下吗?
假设以下查询:
SELECT
ID,
COUNT(1) AS NumRecords,
SUM(Quantity) AS TotalQty
SUM(Quantity)/COUNT(1) AS Avg
FROM SOME_TABLE
GROUP BY ID
Run Code Online (Sandbox Code Playgroud)
现在它返回:
ID NumRecords TotalQty Avg
1 15 6 2
Run Code Online (Sandbox Code Playgroud)
我希望它返回一个小数为2的十进制值Avg(即"2.5").
我尝试CAST将计算作为DECIMAL,NUMERIC,FLOAT和VARCHAR,但它总是返回一个INTEGER.
假设有一个程序将文件复制到temp,对数据进行一些操作并将其复制回来.现在,如果我提交它以批量运行两次,那么将有两个批处理作业可能同时执行相同的文件技巧.是否会给另一方造成麻烦,比如扭曲另一方的数据,因为文件位于同一个库中?会发生什么事?让我们说对象锁定不是问题.
我需要创建一个由我的SQL Trigger触发的数据队列; SQL触发器已经完成,但我不知道如何实现数据队列
是否有可能使用某些指标确定在RPG程序中使用哪个键(使用显示文件)?我知道功能或一些命令键是可行的.但我需要确定键,如:'+','S','/'等.是否有一些代码用于所有键盘键?
先谢谢你的一些线索,JS
我只是试验jt400.jar从一个接收系统信息AS400.
我想通过使用类SystemStatus和如何阅读如何连接以及如何接收值SystemValues.(只需找到这些值的解释,给我任何提示?)
任何人都可以告诉我,哪些功能SystemStatus可以让我使用RAM或者接收这些信息?
private static void getSystemStatus() throws AS400SecurityException, ErrorCompletingRequestException,
InterruptedException, IOException, ObjectDoesNotExistException, RequestNotSupportedException {
//Connect to AS400
AS400 as400 = new AS400("myAs400", "myUser", "myPassword");
//Reading SystemStatus like CPU usage and hdd usage
SystemStatus systemStatus = new SystemStatus(as400);
System.out.println(systemStatus.getPercentProcessingUnitUsed());
System.out.println(systemStatus.getActiveJobsInSystem());
//Reading SystemValues
SystemValueList sysValList = new SystemValueList(as400);
Vector<SystemValue> sysValVec = new Vector<SystemValue>();
sysValVec = sysValList.getGroup(SystemValueList.GROUP_ALL);
System.out.println("<<<< SystemValues >>>>");
for (SystemValue systemValue : sysValVec) {
String sysValName = systemValue.getName();
systemValue.getValue();
System.out.println("Value: …Run Code Online (Sandbox Code Playgroud) (让我先说一下,我对AS400和RPGLE以及CL编程都是新手.我对SQL非常了解,但在与AS400一起使用时却没有.)
这看起来应该很简单.
在年终,我们必须将仓库表更新为当前新的一年.这是一个手动过程,去STRSQL并运行
update rco set ccfscy = '2017' where crsts = 'A'
Run Code Online (Sandbox Code Playgroud)
这是过去40年来同一个人所做的,他们现在正在退休.我的老板希望这个成为一个CL程序,在没有人手动运行STRSQL命令的情况下完成它,并且它可以集成到年终过程中.
所有CL程序所要做的就是提示您想要更改仓库文件的年份,并在屏幕上输入日期后,它将运行SQL程序并根据SQL命令更新记录.
有人可以指点我的方向,我可以学习更多关于使用CL程序来完成这个过程吗?
谢谢.
Thomas J Cusick,系统程序员
我一直在寻找将.01或-.01转换为0.01或-0.01的最佳方法.当我想将小数转换为字符时,这是必需的.
在用EDITW和EDITC搜索了很多之后我最终得到了以下代码.
D Sales S 9S 2
D Net_Sales S 10A
// Sales variable may contain positive or negative amount
If Sales >= 0
Net_Sales = %Trim(%Xlate(' ':'0': %EditC(Sales:'3'):7)) ;
Else
Net_Sales = '-' + %Trim(%Xlate(' ':'0': %EditC(Sales:'3'):7))
EndIf
Run Code Online (Sandbox Code Playgroud)
这适用于所有情况,但有些我不相信.不小心我注意到标题规范DECEDIT
H DECEDIT('0.')
这将是我最好的替代要求还是我们还有其他什么?
在此先感谢您的帮助!
我最近学习了固定格式RPG IV中的loacal程序及其在D-Specs和P-Specs部分中的实现或省略D-Specs定义的定义.
根据IBM文档,如果我省略D中的定义,编译器将自动从过程接口生成必要的定义,然后是我实现我的过程的P-Spec.
现在我想知道两次定义过程接口有什么好处?是否有任何好处(几乎)相同的代码编写两次(在P-Spec的顶部和下面的D-Specs中)或者这只是程序员有一个有意义的地方来定义输入/输出参数的选项为程序?
提前致谢
我有一个简单的插入语句,我想用sqlrpgle执行.我首先根据哪些变量为空来构建语句,然后想要使用exec sql来执行插入.这不起作用.
但是在STRSQL中使用子查询输入相同的insert语句可以正常工作.
我已经将sql语句分解为这个问题的最简单版本.
任何援助将不胜感激.
**编辑
这只发生在我添加一个where子句时,这本质上是我需要的,以及为什么我尝试使用sqlrpgle来实现它.声明如
sqlstmt = 'insert into jallib/sbrmrpt (shscdt, shcmdt) ' +
'select shscdt, shcmdt ' +
'from r50files/sbschd ';
Run Code Online (Sandbox Code Playgroud)
和
sqlstmt = 'insert into jallib/sbrmrpt (shscdt, shcmdt) ' +
'values (10, 10) ';
Run Code Online (Sandbox Code Playgroud)
所有工作都很好,一旦将where子句添加到子查询中,它就不能在RPG代码中工作但在STRSQL中