鱼C论坛

 找回密码
 立即注册
查看: 1081|回复: 16

Bytes存入数据库问题

[复制链接]
发表于 2018-6-26 16:01:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python中  b'文本'  这类数据算为bytes,
但在存到sqlserver的varbinary里面却报错说: b'Implicit conversion from data type varchar to varbinary(max) is not allowed
图片类型的二进制数据却可以存进去,
文本文件的二进制流如何处理?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-26 16:11:03 | 显示全部楼层
本帖最后由 凌九霄 于 2018-6-26 16:13 编辑

文本你就要以二进制方式读取txt文件,然后保存,而不是你所谓的b'文本'
纯粹的文本字符串,直接就char字段保存了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 16:13:44 | 显示全部楼层
凌九霄 发表于 2018-6-26 16:11
文本你就要以二进制方式读取txt文件,然后保存,而不是你所谓的b'文本'

好的我试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 16:46:37 | 显示全部楼层
凌九霄 发表于 2018-6-26 16:11
文本你就要以二进制方式读取txt文件,然后保存,而不是你所谓的b'文本'
纯粹的文本字符串,直接就char字段 ...

我现在的状况是没有文件,只有 b'文本' 这种格式的bytes,难道得先保存到文件再以二进制方式读取文件然后存到数据库?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-26 16:50:23 | 显示全部楼层
laoliuya 发表于 2018-6-26 16:46
我现在的状况是没有文件,只有 b'文本' 这种格式的bytes,难道得先保存到文件再以二进制方式读取文件然后 ...

你的b'文本'是系统生成的还是你自己写成这个形式的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 16:56:06 | 显示全部楼层
凌九霄 发表于 2018-6-26 16:50
你的b'文本'是系统生成的还是你自己写成这个形式的?

系统生成,把这个b'文本'以二进制写入文件可以还原原文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-26 17:03:15 | 显示全部楼层
本帖最后由 凌九霄 于 2018-6-26 17:09 编辑
laoliuya 发表于 2018-6-26 16:56
系统生成,把这个b'文本'以二进制写入文件可以还原原文件


但是根据上面的提示,你写入的是char类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 17:05:26 | 显示全部楼层
凌九霄 发表于 2018-6-26 17:03
但是根据上面的提示,你写入的是char类型

是啊,b'文本' 这种,在python里面算 bytes ,在sqlserver里面算varchar,我也是心累
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-26 17:10:11 | 显示全部楼层
laoliuya 发表于 2018-6-26 17:05
是啊,b'文本' 这种,在python里面算 bytes ,在sqlserver里面算varchar,我也是心累

贴个源码看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 17:24:20 | 显示全部楼层
a=b'123'
with open('E:/1.txt', 'wb') as wf:
        wf.write(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 17:24:54 | 显示全部楼层
a=b'123'
with open('E:/1.txt', 'wb') as wf:
        wf.write(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-26 17:33:18 | 显示全部楼层
本帖最后由 凌九霄 于 2018-6-26 17:35 编辑


你想要保存的是什么东西?纯ascii码?如果是非ascii码文本你得转码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 18:40:24 | 显示全部楼层
凌九霄 发表于 2018-6-26 17:33
你想要保存的是什么东西?纯ascii码?如果是非ascii码文本你得转码

我要把  b'文本'  这种bytes存到sqlserver的varbinary里面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-26 20:18:32 | 显示全部楼层
laoliuya 发表于 2018-6-26 18:40
我要把  b'文本'  这种bytes存到sqlserver的varbinary里面

贴稍完整些的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-27 10:33:27 | 显示全部楼层
laoliuya 发表于 2018-6-26 18:40
我要把  b'文本'  这种bytes存到sqlserver的varbinary里面

代码零零碎碎的全挂出来也看得头晕,问题简单,文本形式的二进制,类似 b'abc'  这种bytes存到数据库的二进制失败,图片的二进制数据类似 b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x01' 这种可以存进去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-28 12:59:36 From FishC Mobile | 显示全部楼层
laoliuya 发表于 2018-6-27 10:33
代码零零碎碎的全挂出来也看得头晕,问题简单,文本形式的二进制,类似 b'abc'  这种bytes存到数据库的二 ...

个人觉得,你这根本不是标准的二进制数据,标准的二进制数据人类不可读
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-28 15:28:04 | 显示全部楼层
凌九霄 发表于 2018-6-28 12:59
个人觉得,你这根本不是标准的二进制数据,标准的二进制数据人类不可读

我也觉得。但python认为这是,哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-4 17:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表