• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 圖片存放在字段的方法(IMAGE)

    發表于:2007-05-25來源:作者:點擊數: 標簽:方法圖片放在Image字段
    ? /*--利用 textcopy.exe文件實現在 數據庫 中存儲/讀取文件 需要textcopy.exe文件,該文件可以在 sql 7.0安裝光盤找到 --轉貼自大力--*/ --建立存取處理的存儲過程 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_textcopy]') a
    ?
    /*--利用 textcopy.exe文件實現在數據庫中存儲/讀取文件

    需要textcopy.exe文件,該文件可以在sql 7.0安裝光盤找到

    --轉貼自大力--*/

    --建立存取處理的存儲過程
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_textcopy]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[sp_textcopy]
    GO

    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) --I 為存儲到數據庫,O 從數據庫中讀出成文件
    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
    go

    --調用示例:
    --1.創建示例表和初始化數據
    create table tb(id int,img image)
    insert tb
    select 1,0x
    union all select 2,0x
    go

    --2.將文件保存到數據庫中
    declare @srv varchar(255),@db sysname,@tb sysname,@col sysname
    select @srv=@@servername --服務器
    ,@db=db_name() --數據庫名
    ,@tb='tb' --表名
    ,@col='img' --列名
    sp_textcopy @srv,'sa','sa的密碼',@db,@tb,@col,'c:\test.jpg','where id=1','I' --保存到id=1的記錄中,注意條件是:id=1
    sp_textcopy @srv,'sa','sa的密碼',@db,@tb,@col,'c:\test.doc','where id=2','I' --保存到id=2的記錄中,注意條件是:id=2

    --3.從數據庫中讀出保存為文件
    sp_textcopy @srv,'sa','sa的密碼',@db,@tb,@col,'c:\test.jpg','where id=1','O' --讀出id=1的記錄,注意條件是:id=1
    sp_textcopy @srv,'sa','sa的密碼',@db,@tb,@col,'c:\test.doc','where id=2','O' --讀出id=2的記錄,注意條件是:id=2

    --刪除測試環境
    drop table tb
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_textcopy]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[sp_textcopy]







    *******************

    ?
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_binaryIO]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[p_binaryIO]
    GO

    /*--bcp 實現二進制文件的導入導出

    支持image,text,ntext字段的導入/導出
    image適合于二進制文件,包括:Word文檔,Excel文檔,圖片,音樂等
    text,ntext適合于文本數據文件

    注意:導入不會新增記錄,所以導入前要對表進行初始化,即插入記錄
    導入時,將覆蓋滿足條件的所有行
    導出時,將把所有滿足條件的行導出到指定文件中


    此存儲過程僅用bcp實現

    --鄒建 2003.08(引用請保留此信息)---*/

    /*--調用示例
    --數據導出
    exec p_binaryIO 'zj','','','aclearcase/" target="_blank" >cc_演示數據..tb','img','c:\zj1.dat'

    --數據導入
    exec p_binaryIO 'zj','','','acc_演示數據..tb','img','c:\zj1.dat','',0
    --*/
    Create proc p_binaryIO
    @servename varchar (30),--服務器名稱
    @username varchar (30), --用戶名
    @password varchar (30), --密碼
    @tbname varchar (500), --數據庫..表名
    @fdname varchar (30), --字段名
    @fname varchar (1000), --目錄+文件名,處理過程中要使用/覆蓋:@filename+_temp
    @tj varchar (1000)='', --處理條件.對于數據導入,如果條件中包含@fdname,請指定表名前綴
    @isout bit=1 --1導出((默認),0導入
    AS
    declare @fname_in varchar(1000) --bcp處理應答文件名
    ,@fsize varchar(20) --要處理的文件的大小
    ,@m_tbname varchar(50) --臨時表名
    ,@sql varchar(8000)

    --則取得導入文件的大小
    if @isout=1
    set @fsize='0'
    else
    begin
    create table #tb(可選名 varchar(20),大小 int
    ,創建日期 varchar(10),創建時間 varchar(20)
    ,上次寫操作日期 varchar(10),上次寫操作時間 varchar(20)
    ,上次訪問日期 varchar(10),上次訪問時間 varchar(20),特性 int)
    insert into #tb
    exec master..xp_getfiledetails @fname
    select @fsize=大小 from #tb
    drop table #tb
    if @fsize is null
    begin
    print '文件未找到'
    return
    end

    end

    --生成數據處理應答文件
    set @m_tbname='[##temp'+cast(newid() as varchar(40))+']'
    set @sql='select * into '+@m_tbname+' from(
    select null as 類型
    union all select 0 as 前綴
    union all select '+@fsize+' as 長度
    union all select null as 結束
    union all select null as 格式
    ) a'
    exec(@sql)
    select @fname_in=@fname+'_temp'
    ,@sql='bcp "'+@m_tbname+'" out "'+@fname_in
    +'" /S"'+@servename
    +case when isnull(@username,'')='' then ''
    else '" /U"'+@username end
    +'" /P"'+isnull(@password,'')+'" /c'
    exec master..xp_cmdshell @sql
    --刪除臨時表
    set @sql='drop table '+@m_tbname
    exec(@sql)

    if @isout=1
    begin
    set @sql='bcp "select top 1 '+@fdname+' from '
    +@tbname+case isnull(@tj,'') when '' then ''
    else ' where '+@tj end
    +'" queryout "'+@fname
    +'" /S"'+@servename
    +case when isnull(@username,'')='' then ''
    else '" /U"'+@username end
    +'" /P"'+isnull(@password,'')
    +'" /i"'+@fname_in+'"'
    exec master..xp_cmdshell @sql
    end
    else
    begin
    --為數據導入準備臨時表
    set @sql='select top 0 '+@fdname+' into '
    +@m_tbname+' from ' +@tbname
    exec(@sql)

    --將數據導入到臨時表
    set @sql='bcp "'+@m_tbname+'" in "'+@fname
    +'" /S"'+@servename
    +case when isnull(@username,'')='' then ''
    else '" /U"'+@username end
    +'" /P"'+isnull(@password,'')
    +'" /i"'+@fname_in+'"'
    exec master..xp_cmdshell @sql

    --將數據導入到正式表中
    set @sql='update '+@tbname
    +' set '+@fdname+'=b.'+@fdname
    +' from '+@tbname+' a,'
    +@m_tbname+' b'
    +case isnull(@tj,'') when '' then ''
    else ' where '+@tj end
    exec(@sql)

    --刪除數據處理臨時表
    set @sql='drop table '+@m_tbname
    end

    --刪除數據處理應答文件
    set @sql='del '+@fname_in
    exec master..xp_cmdshell @sql
    go


    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>