求助:SQL存储图像大文本实例

qw860927 2009-04-16 01:11:11
自己不是很清楚,哪位老大发个实例来参考一下,无限感激!!
...全文
141 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
you_tube 2009-04-29
  • 打赏
  • 举报
回复
--SQL SERVER2000下
--=====================================================================================================================
方法:
1、建立过程
CREATE PROCEDURE sp_textcopy (
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str

2、建表和初始化数据
create table 表名 (编号 int,image列名 image)
go
insert 表名 values(1,0x)
insert 表名 values(2,0x)
go

3、读入
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','I' --注意条件是 编号=1

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','I' --注意条件是 编号=2

go

4、读出成文件
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','O' --注意条件是 编号=1

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','O' --注意条件是 编号=2
go
--SQL SERVER2005下
--====================================================================================================
CREATE TABLE myTable(FileName nvarchar(60),
FileType nvarchar(60), photo varbinary(max))
GO

INSERT INTO myTable(FileName, FileType, photo)
SELECT 'Text1.txt' AS FileName,
'.txt' AS FileType,
* FROM OPENROWSET(BULK N'C:\Text1.jpg', SINGLE_BLOB) AS Document
zzz1975 2009-04-29
  • 打赏
  • 举报
回复
只能坐沙发,支持并学习
sdhdy 2009-04-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 qw860927 的帖子:]
自己不是很清楚,哪位老大发个实例来参考一下,无限感激!!
[/Quote]
图像用IMAGE类型或BINARY类型,图像的存储、读取要用客户端语言来写?楼主是用什么开发语言的?
  • 打赏
  • 举报
回复
一般存储路径。另:
向数据库中插入和到处Image型数据得方法
用image类型

方法:
1、建立过程
CREATE PROCEDURE sp_textcopy (
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str

2、建表和初始化数据
create table 表名 (编号 int,image列名 image)
go
insert 表名 values(1,0x) -- 必须的,且不是null
insert 表名 values(2,0x) -- 必须的,且不是null
go

3、读入
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','I' --注意条件是 编号=1

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','I' --注意条件是 编号=2

go

4、读出成文件
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','O' --注意条件是 编号=1

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','O' --注意条件是 编号=2
go

如果报textcopy不是可执行文件的话,你就到
C:\Program Files\Microsoft SQL Server\MSSQL\Binn
目录下拷备 textcopy.exe到:
C:\Program Files\Microsoft SQL Server\80\Tools\Binn
taoistong 2009-04-16
  • 打赏
  • 举报
回复
把图片存储到硬盘上,数据库中保存图片的路径

不图片直接保存到数据库中,格式设置为IMAGE !
claro 2009-04-16
  • 打赏
  • 举报
回复
--首先建立一个测试数据表
USE tempdb
CREATE TABLE myStudent
(sid int ,
sname varchar(10),
sdt datetime)
GO
--新增三笔资料
insert into myStudent values(1,'阿强','2006/1/31')
insert into myStudent values(2,'阿土','2006/2/28')
insert into myStudent values(3,'阿黄','2006/3/31')
GO


--利用BCP产生OPENQUERY
c:\>bcp tempdb.dbo.mystudent format nul -c -f c:\stu.fmt -T -S SQL2K5


--查看操作系统中文本文件内容,并储存成C:\stuent.txt
1 微软 2006/12/01 00:00:00
2 台湾 2007/12/01 00:00:00
3 台北 2008/12/01 00:00:00
4 高雄 2009/12/01 00:00:00
--直接查询操作系统文件资料内容
SELECT a.* --取出所有格式档定义资料行
FROM OPENROWSET
(BULK 'c:\stuent.txt', --定义资料来源
FORMATFILE = 'c:\stu.fmt' ) a --定义格式档


--进行合并查询
SELECT a.*,b.sname
FROM OPENROWSET
(BULK 'c:\stuent.txt',
FORMATFILE = 'c:\stu.fmt' ) a , myStudent b
WHERE a.sid = b.sid


--将文本档资料储存到另一个数据表
SELECT a.* INTO tempdb.dbo.newStudent --新增后的数据表名称
FROM OPENROWSET
(BULK 'c:\stuent.txt',
FORMATFILE = 'c:\stu.fmt' ) a
--重新查询资料
SELECT * FROM tempdb.dbo.newStudent


--建立数据表
USE tempdb
GO
CREATE TABLE myVarbinary
(id int identity ,
photo varbinary(max) )
GO


--新增图片资料到数据表里面
INSERT myVarbinary
SELECT a.*
FROM OPENROWSET(BULK 'C:\WINDOWS\system32\ServerAppliance\web\Admin\Images\disks.gif',
SINGLE_BLOB) a --别名


--产生XML文档
SELECT * FROM AdventureWorks.Production.Location
FOR xml auto,elements,root('Locations')



--建立XML数据表
CREATE TABLE myXML
(id int identity , invoice xml
)
GO
--将XML资料快速新增到数据表
INSERT myXML
SELECT a.*
FROM OPENROWSET
(BULK 'C:\Locations.xml',
SINGLE_BLOB) a --别名
--查询
SELECT * FROM myXML


--建立varchar(max)数据表
CREATE TABLE myDOC
(id int identity , doc varchar(max)
)
GO
--将文本资料快速新增到数据表
INSERT myDOC
SELECT a.*
FROM OPENROWSET
(BULK 'C:\ 6-1-3D.sql',
SINGLE_CLOB) a --别名
--查询
SELECT * FROM myDOC



--建立nvarchar(max)数据表
CREATE TABLE myUnicode
(id int identity , doc nvarchar(max)
)
GO
--将文本资料快速新增到数据表
INSERT myUnicode
SELECT a.*
FROM OPENROWSET
(BULK 'C:\展示亚洲字符.SQL',
SINGLE_NCLOB) a --别名
--查询
SELECT * FROM myUnicode

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧