aardio官方社区

 找回密码
 注册会员

!connect_header_login!

只需一步,快速开始

搜索
查看: 7849|回复: 5

如何更新SqlServer中Binary类型的字段?

[复制链接]

3

主题

12

帖子

97

积分

一级会员

Rank: 2

积分
97
发表于 2014-1-22 14:45:06 | 显示全部楼层 |阅读模式
SqlServer

表名:txl
字段1 xm  类型  wchar
字段2 photo  类型 Binary
用以下代码可以更新,但是更新的内容不对,再读出来就不是那个图片了,是不是要指定类型?
麻烦大家了


  1. import win.ui;
  2. /*DSG{{*/
  3. var winform = ..win.form(text="aardio Form";right=599;bottom=399)
  4. winform.add(
  5. picturebox={cls="picturebox";left=66;top=46;right=259;bottom=307;z=1}
  6. )
  7. /*}}*/

  8. import com

  9. conn = com.CreateObject("ADODB.Connection")
  10. conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;Data Source=192.168.1.1;Initial Catalog=txl;Persist Security Info=True;User ID=sa;Password=sa";
  11. conn.Open()

  12. rs = com.CreateObject("ADODB.RecordSet")
  13. rs.Open("SELECT photo from txl where xm ='123'", conn,3, 3)

  14. //这儿是不是有问题?
  15. rs(0).AppendChunk(string.load("C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Winter.jpg"))

  16. rs.update()
  17. rs.close();




  18. winform.show()
  19. win.loopMessage();

复制代码
回复

使用道具 举报

5

主题

441

帖子

2420

积分

五级会员

Rank: 8Rank: 8

积分
2420
发表于 2014-1-22 15:55:27 | 显示全部楼层
关键是使用string.loadBuffer函数返回二进制字节数组:
import access;

//创建数据库
var db = access("/testChunk.mdb")

//创建表
if(!db.existsTable("Chunks2") ){
        db.exec(
"CREATE TABLE Chunks2(ID integer identity NOT NULL, Photo IMAGE NULL)")
}

//参数化插入数据
var cmd = db.createCommand( "INSERT INTO Chunks2(Photo) VALUES(@Photo)" );  

//设置所有参数的值,下面代码的关键是使用string.loadBuffer函数返回二进制字节数组。
cmd.bind(  
    Photo = string.loadBuffer(
"~\codes\范例程序\图形图像\.gdip.jpg" ); //加载图像
)

//执行命令
cmd.Execute()

import gdip;
for(rs,fields in db.each("SELECT * FROM Chunks2") ){
   
var bin = rs("Photo").value; //读取二进制数据
    gdip.graphics( ::GetDC(0) ).drawImage( gdip.image(bin) ); //画到屏幕上看看
    break;
}
  
//关闭数据库连接
db.close();


回复

使用道具 举报

9

主题

79

帖子

1001

积分

荣誉会员

Rank: 8Rank: 8

积分
1001
发表于 2014-1-26 00:55:43 | 显示全部楼层

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=64171&ptid=11497][c

神码 发表于 2014-1-22 15:55
提问题尽可能首先整理一个能运行的代码,即能节省别人再现分析问题的时间,也有助于你自己理清问题。

这 ...

看了神码的代码,终于明白怎么从SQL Server数据库中读取二进制文件了,测试成功,特来感谢。
回复

使用道具 举报

0

主题

11

帖子

83

积分

一级会员

Rank: 2

积分
83
发表于 2015-10-17 06:46:28 | 显示全部楼层

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=64171&ptid=11497][c

神码 发表于 2014-1-22 15:55
提问题尽可能首先整理一个能运行的代码,即能节省别人再现分析问题的时间,也有助于你自己理清问题。

这 ...

明白读取二进制文件了
回复

使用道具 举报

6

主题

58

帖子

579

积分

三级会员

Rank: 4

积分
579
发表于 2016-12-31 07:32:27 | 显示全部楼层
学习了,多谢楼上
回复

使用道具 举报

1

主题

15

帖子

142

积分

一级会员

Rank: 2

积分
142
发表于 2018-7-27 08:50:35 | 显示全部楼层
学些了,多谢楼上.......................
学些了,多谢楼上.......................
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2021-6-24 07:37 , Processed in 0.048038 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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