Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 转换压缩COBOL_C#_Sql_Cobol - Fatal编程技术网

C# 转换压缩COBOL

C# 转换压缩COBOL,c#,sql,cobol,C#,Sql,Cobol,我试图通过C#应用程序中的SQL查询更新COBOL压缩字段。目前,COBOL压缩字段存储在MS SQL数据库的字符列(char(50))中 COBOL数据类型=4字节二进制数(“PIC S9(9)COMP”): 我可以使用下面的语句来提取数据。我不知道如何逆转数据更新的过程 CAST(CAST(子字符串({Column Name},{Start},4)作为VARBINARY(4))作为BIGINT)作为{Alias_Name} 有什么建议吗 谢谢 布伦南·曼回答得很晚。但无论如何。。。下面是:

我试图通过C#应用程序中的SQL查询更新COBOL压缩字段。目前,COBOL压缩字段存储在MS SQL数据库的字符列(char(50))中

COBOL数据类型=4字节二进制数(“PIC S9(9)COMP”):

我可以使用下面的语句来提取数据。我不知道如何逆转数据更新的过程

CAST(CAST(子字符串({Column Name},{Start},4)作为VARBINARY(4))作为BIGINT)作为{Alias_Name}

有什么建议吗

谢谢


布伦南·曼回答得很晚。但无论如何。。。下面是:
如果它确实是PICS9(9)COMP而不是COMP-3,那么它不是一个“邪恶的”COBOL压缩字段,而是一个简单的4字节整数

万一有人需要这个。。。这就是C的解决方案#


你知道COMP-3是如何定义的吗?@Brennan-Mann:COMP-3=压缩小数。可以在此处找到良好的概述:
 public string ConvertToFourByteBinaryNumber(Int32 value)
    {
        byte[] intBytes = BitConverter.GetBytes(value);

        Array.Reverse(intBytes); // IsLittleEndian

        return Encoding.Default.GetString(intBytes);
    }

    public string ConvertToEightByteBinaryNumber(long value)
    {
        byte[] intBytes = BitConverter.GetBytes(value);

        Array.Reverse(intBytes); // IsLittleEndian

        return Encoding.Default.GetString(intBytes);
    }