免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4258 | 回复: 9
打印 上一主题 下一主题

求助:AS400 如何能把数据转换成16进制并保存到数据库中 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-07 15:16 |只看该作者 |倒序浏览
求助:AS400 如何能把数据转换成16进制并保存到数据库中

论坛徽章:
0
2 [报告]
发表于 2009-12-07 15:28 |只看该作者

回复 #1 小xiao 的帖子

你是指十六进制字符串如:

‘0E586455BE514B5C6F4E8D4DCE54FC4DCE59BA0F404040404040‘

这样?这样做有什么意义呢?这样存储浪费一倍的空间,转回来又麻烦。

[ 本帖最后由 法郎士 于 2009-12-7 15:30 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-12-07 16:15 |只看该作者
原帖由 法郎士 于 2009-12-7 15:28 发表
你是指十六进制字符串如:

‘0E586455BE514B5C6F4E8D4DCE54FC4DCE59BA0F404040404040‘

这样?这样做有什么意义呢?这样存储浪费一倍的空间,转回来又麻烦。


对,是这样的。
最后要与interface的数据比较。

论坛徽章:
0
4 [报告]
发表于 2009-12-07 16:21 |只看该作者

回复 #3 小xiao 的帖子

原来如此。如果只是调试时用的一次性的,你先用原来的方式存储,在用sql的hex()函数转换,再存在新的文件(或字段)中最方便啦。

[ 本帖最后由 法郎士 于 2009-12-7 16:23 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-12-07 17:07 |只看该作者
这么简单都不会?写个C语言的函数如下:
int  bin2hex(void *bin_str, int len, void *hex_str)
/*
   bin_str -- 二进制数据
   len -- 二进制数据长度
   hex_str -- 保存16进制的buffer指针
   例如:
   {0xba, 0x08, 0x7d, 0x40, 0x12, 0x34, 0x56, 0x78} -> "ba087d4012345678"
*/
{
  int  i, j;
  unsigned char *sb = (unsigned char *)bin_str, *sh = (unsigned char *)hex_str;

  for(i = 0, j = 0; i < len; i++, j+=2)
    sprintf((char *)sh+j, "%02X", sb);
  sh[j] = 0;
  return j;
}

加密后的密码可用此方法保存到配置文件或数据库表中,免得出现乱码、不可见字符等影响阅读、使用

论坛徽章:
0
6 [报告]
发表于 2009-12-07 18:02 |只看该作者
这个BBS比较差,遇到 );后就把后面的东西变成斜体了!

论坛徽章:
0
7 [报告]
发表于 2009-12-11 15:53 |只看该作者
用c语言当然就不用问了。。。
是在as400上的sqlcobol语言中

论坛徽章:
0
8 [报告]
发表于 2009-12-11 15:55 |只看该作者
原帖由 法郎士 于 2009-12-7 16:21 发表
原来如此。如果只是调试时用的一次性的,你先用原来的方式存储,在用sql的hex()函数转换,再存在新的文件(或字段)中最方便啦。

还有别的方法吗?
这个方法还有一些限制。
因为要处理的文件是临时文件,在sql中引用后会报错误(5016)

论坛徽章:
0
9 [报告]
发表于 2009-12-11 22:03 |只看该作者

回复 #7 小xiao 的帖子

你可以写一个c函数然后由sqlcobol调用,执行后不就可以返回你想要的信息了嘛!!!!

论坛徽章:
0
10 [报告]
发表于 2009-12-14 11:10 |只看该作者
原帖由 huangxkst 于 2009-12-11 22:03 发表
你可以写一个c函数然后由sqlcobol调用,执行后不就可以返回你想要的信息了嘛!!!!


没有写过这样的程序,是否可以提供一下样例,谢谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP