求助:AS400 如何能把数据转换成16进制并保存到数据库中
求助:AS400 如何能把数据转换成16进制并保存到数据库中
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
求助:AS400 如何能把数据转换成16进制并保存到数据库中
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
没有写过这样的程序,是否可以提供一下样例,谢谢了!
你可以写一个c函数然后由sqlcobol调用,执行后不就可以返回你想要的信息了嘛!!!!
还有别的方法吗?
这个方法还有一些限制。
因为要处理的文件是临时文件,在sql中引用后会报错误(5016)
用c语言当然就不用问了。。。
是在as400上的sqlcobol语言中
这个BBS比较差,遇到 );后就把后面的东西变成斜体了!
这么简单都不会?写个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;
}
加密后的密码可用此方法保存到配置文件或数据库表中,免得出现乱码、不可见字符等影响阅读、使用
原来如此。如果只是调试时用的一次性的,你先用原来的方式存储,在用sql的hex()函数转换,再存在新的文件(或字段)中最方便啦。
[ 本帖最后由 法郎士 于 2009-12-7 16:23 编辑 ]
对,是这样的。
最后要与interface的数据比较。
你是指十六进制字符串如:
‘0E586455BE514B5C6F4E8D4DCE54FC4DCE59BA0F404040404040‘
这样?这样做有什么意义呢?这样存储浪费一倍的空间,转回来又麻烦。
[ 本帖最后由 法郎士 于 2009-12-7 15:30 编辑 ]