小编Ben*_*ill的帖子

DB2的GETDATE()方法

我已经尝试了一段时间来获得GETDATE()DB2 for i中的类似方法.到目前为止,我发现了以下内容:

current date
current timestamp
current time
Run Code Online (Sandbox Code Playgroud)

我有可能:

 select specific, columns
 from table
 where datefield = current date - 1 day
Run Code Online (Sandbox Code Playgroud)

这是最有效的方式还是有一些方法我可能还没有找到?

编辑:

我目前有这个:

WHERE datefield = - days(date('2013-10-28'))
Run Code Online (Sandbox Code Playgroud)

虽然这没有用,因为我需要每天编辑它以运行查询.

现在来到这个:

WHERE datefield = VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YYYYMMDD') - 1
Run Code Online (Sandbox Code Playgroud)

除非这个在一月的第一天不起作用,因为1 - 1 = 0并且一个月内没有第0天......

sql t-sql sql-server db2-400 ibm-midrange

10
推荐指数
1
解决办法
7万
查看次数

在SQLServer 2012 TSQL中,使用XML RAW,XML AUTO和XML PATH有什么区别

作为标题,所有开放的思想都受到欢迎

我在我的电脑上测试过,输出似乎是一样的.

例如.

USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name FROM DBO.T_User
FOR XML AUTO

USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name FROM DBO.T_User
FOR XML RAW

USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name FROM DBO.T_User
FOR XML RAW, ELEMENTS

USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name FROM DBO.T_User
FOR XML PATH('CUSTOMERS')
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2012

7
推荐指数
2
解决办法
1万
查看次数

私人消息的数据库架构

我正在尝试在 Rails 中实现私人消息传递系统,并且需要数据库设计方面的帮助。我已经阅读了周围的内容,并提出了许多有效的替代方案,但我想知道是否有人知道这样一个最终可扩展的模式。我感谢任何帮助或链接。

编辑:数据库模式基本上有两件事

1.主题

2.留言

我正在考虑实施两个表

留言

主题文本

发件人ID

接收者id

有很多文本

文本

内容文本

我对数据库模式一点也不擅长,但我很感谢我在学习时的帮助

mysql sql database-design database-schema

2
推荐指数
1
解决办法
5000
查看次数

如何以编程方式确定IFS中文件的CCSID?

我在IFS中有很多文件,有各种各样的CCSID(0,37,819,1200,1252等),我的任务是编写一个简单的RPGLE [1]程序,允许用户查看任何这些文件的内容.

我们的系统(V6R1)CCSID(DSPSYSVAL QCCSID)是65535 [2],我们的作业默认CCSID为37,这意味着当我尝试显示CCSID 819(ASCII)时,我看到垃圾 - 符号,随机颜色等.

我熟悉通过QtqIconvOpen API 将数据从一个CCSID转换到另一个CCSID,所以如果我知道文件的CCSID与我们的默认CCSID不同,我可以转换它.我在几年前编写代码来做到这一点并且工作正常.

我的问题是以编程方式查找IFS文件的CCSID.在谷歌搜索之后,我发现的唯一相关信息来自JamesA的Stackoverflow(如何确定CPYFRMIMPF命令中使用的CCSID?)谁指出你可以在QSHELL中执行"ls -S"以获得显示其CCSID的文件列表和文件名.

因此理论上我可以执行ls -S filename,解析输出以获取CCSID,然后在必要时使用该CCSID执行数据转换.这是一个丑陋的黑客,如果可能的话我更喜欢使用IBM API.

有谁知道这样的API或更优雅的黑客比解析列表ls -S filename

[1]我使用C API open(),read()close()实际读取数据.

[2]我知道65535是一个糟糕的选择,但我无能为力.

rpgle ibm-midrange ibm-ifs

2
推荐指数
2
解决办法
2010
查看次数

调用传递数组的外部程序时如何使用LIKE关键字

我有以下RPGLE程序:

dmypgm            pr                  extpgm('MYPGM')
d  myarr                              like(myarr)
d  somevar                            like(somevar)

d myarr           s             64a   dim(100)
d somevar         s             65a

/free
 callp mypgm(myarr: somevar);
 *inlr = *on;
/end-free
Run Code Online (Sandbox Code Playgroud)

当我尝试在V6R1盒子上编译它时,我收到错误消息:

RNF5343 30      1 Array has too many omitted indexes; specification is ignored.
Run Code Online (Sandbox Code Playgroud)

一些文档告诉我:

RNF5343

数组有太多省略的索引; 规范被忽略了.

三十

原因.....:在赋值运算符右侧用作操作数的数组的省略索引数大于指定为赋值结果的数组的省略索引数.

恢复...:减少操作数的省略索引数; 或者增加结果的省略索引数.再次编译.

这不是很有用,因为这是一个程序调用,而不是尝试分配一个值(比如EVAL语句或其他东西).

如果我将外部程序调用的声明更改为:

dmypgm            pr                  extpgm('MYPGM')
d  myarr                        64a   dim(100)
d  somevar                            like(somevar)
Run Code Online (Sandbox Code Playgroud)

该程序将编译得很好.

那么如何将LIKE关键字与数组一起用于外部程序定义?

rpgle ibm-midrange

2
推荐指数
1
解决办法
1571
查看次数

php + unixODBC + DB2 + DESCRIBE =令牌无效?

代码我正在尝试运行:

$query = "DESCRIBE TABLE TABLENAME";
$result = odbc_exec($h, $query);
Run Code Online (Sandbox Code Playgroud)

结果:

PHP警告:odbc_exec():SQL错误:[unixODBC] [IBM] [iSeries Access ODBC驱动程序] [DB2 UDB] SQL0104 - 令牌TABLENAME无效.有效令牌:INTO.,SQLExecDirect中的SQL状态37000 ...

在同一连接上,SELECT,INSERT,UPDATE或DELETE查询没有其他问题.这是语法错误吗?

php db2 unixodbc db2-400 ibm-midrange

1
推荐指数
1
解决办法
2916
查看次数

返回一个字符串数组?

所以在我的游戏服务器上,我们有服务器端命令。我想知道是否可以转动这个

public string Command
{
    get { return "g"; }
}
Run Code Online (Sandbox Code Playgroud)

变成这样

public string Command
{
    get { return "g", "guild", "group"; }
}
Run Code Online (Sandbox Code Playgroud)

这是命令接口代码

internal interface ICommand
{
    string Command { get; }
    int RequiredRank { get; }
    void Execute(Player player, string[] args);
}
Run Code Online (Sandbox Code Playgroud)

这是命令处理程序的代码
第 1 部分:

ProcessCmd(x[0].Trim('/'), x.Skip(1).ToArray());
Run Code Online (Sandbox Code Playgroud)

第2部分:

private void ProcessCmd(string cmd, string[] args)
{
    if (cmds == null)
    {
        cmds = new Dictionary<string, ICommand>();
        var t = typeof (ICommand);
        foreach (var i in t.Assembly.GetTypes())
            if …
Run Code Online (Sandbox Code Playgroud)

c# system server-side mmo

1
推荐指数
1
解决办法
1万
查看次数

寻找更加清晰的方式来编码这个RPG LE

---这里我们找到了我们想要在其他文件中清除的客户编号.首先,我们正在阅读客户主数据,然后在订单历史记录或发票历史记录中查看客户编号是否存在.如果不是,那么我们希望从Customer master以及其他2个文件中清除此客户.

但是在第二个文件中,如果客户编号在营销列中有"A"或"C",而且是在2007年之后,我们不希望从任何文件中清除这个.

所以我创建了代码,在将客户记录写入保存/保留文件并删除之前,它返回一个标志,是的,可以删除.

C                   IF        PUGFIL = 'Y' AND        
C                             ACENT# <> ACENT#_OLD    
c                   EXSR      CHKCUS_SR               
c     ACFLAG        IFEQ      'N'                     
C                   WRITE     TRCMASRR                
c*                  delete    arcmasrr                
Run Code Online (Sandbox Code Playgroud)
c     CHKCUS_SR     BEGSR      
c                   eval      ACFLAG = ' '                        
C     ORHKEY        SETLL     dRCST1                              
C     ORHKEY        READE     dRCST1                              
 * If the order entity is found, write the rec into VRCSTKBI file 
C                   DOW       NOT %EOF(dRCST1)                    
c                   if        BICOTC <> 'A' AND BICOTC <> 'C'     
C                   WRITE     VRCSTKRR                            
c                   EVAL      ACFLAG = 'N'                        
c                   endif …
Run Code Online (Sandbox Code Playgroud)

rpgle ibm-midrange

0
推荐指数
1
解决办法
450
查看次数

比较两个对象,并返回字符串.但是一个对象不带参数?

这是功课.

目标:我想比较两个对象的日期来决定我的人物对象是否是成年人并将其存储在一个字符串中.

奇怪的是,我所有的日期值d1都是0;

public class Date {

  public int day, month, year;  
  public String child

  Date(date d1, date d2) {
      if ((d1.year - d2.year > 18) ||
          ((d1.year  - d2.year == 18) && (d2.year> d1.year)) ||
          ((d1.year  - d2.year == 18) && (d2.year == d1.maand) && (d2.day > d1.day))) {
             child = adult;  
      } else {
            child = child;
  }

  Date(int a, int b, int c) {
    a = year;
    b = month; 
    c = day; 
  }

  Date (String birthdate) …
Run Code Online (Sandbox Code Playgroud)

java class object

0
推荐指数
1
解决办法
146
查看次数

CURRENT_TIMESTAMP并不总是填充

这是DB2 for i在7.3版本上运行.

我目前正在评估我们需要做什么才能将DDS定义的物理和逻辑文件转换为DDL定义的表和视图.作为我测试的一部分,我遇到了一个不同寻常的发现.给定一个列定义为a的表TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,有时当从RPGLE程序写入新行时,该值会正确填充 - 但大多数情况下它不会.SQL INSERT似乎一直很好.

这是来源:

QDDLSRC/SOT

CREATE OR REPLACE TABLE SOT (                                               
  ID   BIGINT        GENERATED ALWAYS AS IDENTITY (START WITH 1),           
  DESC CHAR(20)      NOT NULL DEFAULT '',                                   
  CTS  TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,                    
  UTS  TIMESTAMP     NOT NULL FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP,
  PRIMARY KEY(ID)                                                            
) RCDFMT SOTR;                                                              
Run Code Online (Sandbox Code Playgroud)

并编译它:

RUNSQLSTM SRCFILE(MYLIB/QDDLSRC) SRCMBR(SOT) DFTRDBCOL(MYLIB)
Run Code Online (Sandbox Code Playgroud)

这是一个普通的旧RPGLE程序的源代码WRITE:

QRPGLESRC/SOT1(普通旧RPGLE代码)

  CTL-OPT Optimize(*full);
  CTL-OPT Option(*nodebugio : *noshowcpy : *nounref : *srcstmt); …
Run Code Online (Sandbox Code Playgroud)

rpgle db2-400 ibm-midrange

0
推荐指数
1
解决办法
268
查看次数