博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在MsSQLServer2000上通过调用OLE创建二维条码
阅读量:5263 次
发布时间:2019-06-14

本文共 3918 字,大约阅读时间需要 13 分钟。

在运行MSSQLServer的服务上注册组件,"regsvr32  "........\QRBarcode.ocx""。

函数fn_CreateQRImage:

-- =================================================================-- 根据字符串产生QR图片,保存到指定的路径中.-- 返回值: 成功返回图片保存所有的完整路径,否则返回''-- Create by lenya on 2010/10/10-- =================================================================CREATE function [dbo].[fn_CreateQRImage](@uc_Data varchar(100))returns varchar(255)asbegin    declare @hr int, @object int, @result int    declare @strFilePath varchar(50), @strFileName varchar(100), @strFullFileName varchar(256)     if rtrim(ltrim(@uc_Data)) = '' or @uc_Data is null         return ''    set @strFileName = [dbo].[fn_StrToFileName](@uc_Data)-- 将@uc_Data转换为有效的文件名    set @strFileName = @strFileName + '.bmp'    -- set @strFilePath = 'ftp://192.168.1.222/' --不可以写入ftp中    set @strFilePath = '\\192.168.1.1\qrPic\' --若要修改产生的图片存放的文件夹,修改该字符串.    set @strFullFileName = @strFilePath + @strFileName    EXEC @hr = sp_OACreate '{F5E7BFDD-DE8E-47FB-B009-F9230FFF154A}', @object OUTPUT --创建QRBarCode OLE 对象实例    if @hr <> 0     begin       EXEC sp_OAGetErrorInfo @object       return ''    end    --初始化属性        EXEC @hr = sp_OASetProperty @object, 'nLevel', 2            -- 纠错等级    IF @hr <> 0 RETURN ''    EXEC @hr = sp_OASetProperty @object, 'nVersion', 1          -- 版本号      IF @hr <> 0 RETURN ''    EXEC @hr = sp_OASetProperty @object, 'nMaskingNo', 7        -- 掩码    IF @hr <> 0 RETURN ''        EXEC @hr = sp_OAMethod @object, 'CreateQRImage', @result OUTPUT, @uc_Data, @strFullFileName--     IF @hr <> 0 or @result <> 0 RETURN ''    IF @hr <> 0         RETURN convert(varchar,@hr)    IF @result <> 0         RETURN convert(varchar,@result)    EXEC @hr = sp_OADestroy @object        RETURN @strFullFileName  -- 成功后返回外部可访问路径(完整路径).end
上文提及的fn_StrToFileName:

-- =================================================================-- 将指定字符串转换为有效的文件名,不能包含字符(\/:*?"<>|Tab、换行、回车)之一.-- 如果遇到不能用作文件名的特殊字符,用'#'代替,并用后缀'_?'标识,-- 如:'电脑部
<开发组>
#"网络组"',变更为'电脑部#开发组###网络组#_78066'-- 返回值: 返回可用作文件名的字符串.-- Create by lenya on 2010/10/10-- =================================================================CREATE function [dbo].[fn_StrToFileName](@str varchar(100))returns varchar(150)asbegin declare @strFileName varchar(150), @suffix varchar(30), @start int, @len int, @letter varchar(2) -- 如果不包含特殊字符(\/:*?"<>|Tab、换行、回车),直接返回 if not exists(select 1 where @str like '%[\/:*?"<>|'+char(9)+char(10)+char(13)+']%') return @str set @suffix = '_' set @len = len(@str) set @start = 1 -- 用数字作后缀,标识'特殊'字符,如'电脑部#开发组###网络组#_78066',则可反译出'电脑部
<开发组>
#"网络组' while (@start <= @len) begin set @letter = substring(@str, @start, 1) set @suffix = @suffix + case @letter when '#' then '0' when '\' then '1' when '/' then '2' when ':' then '3' when '*' then '4' when '?' then '5' when '"' then '6' when '<' then '7' when '>' then '8' when '|' then '9' when char(9) then 'a' when char(10) then 'b' when char(13) then 'c' else '' end set @start = @start + 1 end -- 文件名不能包含下列任何字符之一:\/:*?"<>|Tab、换行、回车 -- 将这些不允许作为文件名的字符替换为# set @str = replace(@str,'\','#') set @str = replace(@str,'/','#') set @str = replace(@str,':','#') set @str = replace(@str,'*','#') set @str = replace(@str,'?','#') set @str = replace(@str,'"','#') set @str = replace(@str,'<','#') set @str = replace(@str,'>','#') set @str = replace(@str,'|','#') set @str = replace(@str,char(9),'#') set @str = replace(@str,char(10),'#') set @str = replace(@str,char(13),'#') return @str + @suffixend

最后创建的sql语句当然就是:SELECT [master].[dbo].[fn_CreateQRImage]('无标题文档---lenya')。

转载于:https://www.cnblogs.com/lenya/archive/2012/05/07/3706521.html

你可能感兴趣的文章
LoadRunner12 Java Vuser API语法举例
查看>>
VS2013中如何解决error C4996: 'fopen'问题
查看>>
VS2013 中 CString类型转换为LPCSTR类型
查看>>
输入一个整形数组,求数组中连续的子数组使其和最大
查看>>
九大内置对象!!!
查看>>
unity摄像机的平滑过渡,平滑缓冲
查看>>
SilverLight OOB模式将实体转换成XML文件写入本地文件
查看>>
2013年的总结,比以往时候来得晚了一些
查看>>
2019年春季学期第四周作业
查看>>
python实现DFA模拟程序(附java实现代码)
查看>>
Ftp 文件上传下载类
查看>>
php正则匹配图片
查看>>
hdu3480 Division(dp平行四边形优化)
查看>>
bzoj 4725 [POI2017]Reprezentacje ró?nicowe 暴力
查看>>
史上最浅显易懂的Git教程!
查看>>
python 关键字
查看>>
Linux常用命令大全
查看>>
信任关系
查看>>
input 原生上传文件(type = file)
查看>>
图m的着色问题(搜索)
查看>>