在Transact-SQL语句中如何用常量来表示二进制形式的数据?

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

二进制数据可能是图像、声音或任何其他数据。如果我们能够把这些二进制以常量的形式表示,我们就可以直接用Transcat-SQL语句来插入和更新数据表中的这些数据。

其实,Transcat-SQL已经给我们提供了方法,那就是二进制常量格式。这个格式是以“0x”开头,后面跟若干十六进制数字,每个字节用两位十六进制数来表示。因此,你完全可以将那些图像声音数据转换成这种二进制常量格式,然后用于INSERT或UPDATE语句中。

不过,这样的二进制常量将很长很长。这样一来SQL语句很难翻看,而且在某些行的长度有限制的编辑器中还会出问题。

那么,又没有给二进制常量折行的办法呢?

很遗憾,我查遍Transact-SQL的联机帮助,搜遍了网络,都没有答案。

难道就真的没办法?

路从来都是有人走过以后才能成其为路。也许前人曾经走过,而后人不知道。甚至,路本来就在那里,而你敢不敢走?

于是,冒险开始:

我将那个长长的二进制常量强行折断,执行,出错...

在前面一行加“_”,VB的折行符号,出错...

换成“\n”,C,C++字符串的折行符号,出错...

用引号引起来,出错...

换双引号,出错...

...,出错...

...,出错...

...,出错...

前面一行就加“\”,成功!

我有点不敢相信,再试,成功!

稍微惊喜之后,我立刻保持冷静:插入的数据是否正确呢?

立即,编写程序验证,完全正确!

原来“\”是二进制常量的换行符,路就在那儿!

李战.深圳 2004-10-14

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航