用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)
insert 表名 values(2,0x)
go3、读入
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','I' --注意条件是 编号=1sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','I' --注意条件是 编号=2go4、读出成文件
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','O' --注意条件是 编号=1sp_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

解决方案 »

  1.   

    有没有简便一点的方法!我是SQL的初学者!但是现在又必须要用!多谢了!我用的是aspx中的fretextbox中的内容插入到sql server2000中!谢谢!
      

  2.   

    image字段.aspx可以考虑用下面的方法存储:strConn="数据库连接字符串"
    Set re=Server.createObject("ADODB.Recordset")
    Set stream=Server.createObject("ADODB.Stream")
    stream.Type = 1
    stream.Open
    stream.LoadFromFile "word文件名"
    re.open "表名",strConn,1,1
    re.addnew
    re.fields("img字段名")=stream.read
    re.update
      

  3.   

    详细的代码:==============================================
    一共有三个文件,文件名分别是:upfile.html,upfile.asp,upload_5xsoft.inc
    文件的源代码分别如下,你只需要将他们粘贴到写字板中,分别存储为上述的文件
    名就可以了:
    1:upfile.html
    ******************************************************************8
    <html>
    <head>
    <title>文件上传</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <style type="text/css">
    <!--
    td {  font-size: 9pt}
    a {  color: #000000; text-decoration: none}
    a:hover {  text-decoration: underline}
    .tx {  height: 16px; width: 30px; border-color: black black #000000; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; font-size: 9pt; background-color: #eeeeee; color: #0000FF}
    .bt {  font-size: 9pt; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; height: 16px; width: 80px; background-color: #eeeeee; cursor: hand}
    .tx1 { height: 20px; width: 30px; font-size: 9pt; border: 1px solid; border-color: black black #000000; color: #0000FF}
    -->
    </style>
    </head><body bgcolor="#FFFFFF" text="#000000">
    <form name="form1" method="post" action="upfile.asp" enctype="multipart/form-data" >
     <table border="1" cellspacing="0" cellpadding="0" bordercolorlight="#000000" bordercolordark="#CCCCCC" width="91" height="23">
       <tr> 
         <td align="left" valign="middle" height="18" width="18"> </td>
         <td bgcolor="#CCCCCC" align="left" valign="middle" height="18" width="67"> 文件上传</td>
       </tr>
     </table>
     您的上传目录是:/example/file,一次上传的文件大小不能大于5M,文件上传正在测试中.....
     <br>
     <input type="hidden" name="act" value="upload">
     <br>
     <table width="71%" border="1" cellspacing="0" cellpadding="5" align="center" bordercolordark="#CCCCCC" bordercolorlight="#000000">
       <tr bgcolor="#CCCCCC"> 
         <td height="22" align="left" valign="middle" bgcolor="#CCCCCC"> 文件上传</td>
       </tr>
       <tr align="left" valign="middle" bgcolor="#eeeeee"> 
         <td bgcolor="#eeeeee" height="92"> 
           <script language="javascript">
       function setid()
       {
       str='<br>';
       if(!window.form1.upcount.value)
        window.form1.upcount.value=1;
       for(i=1;i<=window.form1.upcount.value;i++)
          str+='文件'+i+':<input type="file" name="file'+i+'" style="width:400" class="tx1"><br><br>';
       window.upid.innerHTML=str+'<br>';
       }
       </script>
           <li> 需要上传的个数 
             <input type="text" name="upcount" class="tx" value="1">
             <input type="button" name="Button" class="bt" onclick="setid();" value="· 设定 ·">
           </li>
           <br>
           <br>
           <li>上传到: 
             <input type="text" name="filepath" class="tx" style="width:350" value="/example/file">
           </li>
         </td>
       </tr>
       <tr align="center" valign="middle"> 
         <td align="left" id="upid" height="122"> 文件1: 
           <input type="file" name="file1" style="width:400" class="tx1" value="">
         </td>
       </tr>
       <tr align="center" valign="middle" bgcolor="#eeeeee"> 
         <td bgcolor="#eeeeee" height="24"> 
           <input type="submit" name="Submit" value="· 提交 ·" class="bt">
           <input type="reset" name="Submit2" value="· 重新执行 ·" class="bt">
         </td>
       </tr>
     </table>
    </form>
    </body>
    </html>
    <script language="javascript">setid();
    </script>
      

  4.   

    ****************************************************************************
    2:upfile.asp
    ****************************************************************************
    <%OPTION EXPLICIT%>
    <!--#include FILE="upload_5xsoft.inc"-->
    <html>
    <head>
    <title>文件上传</title>
    </head>
    <body>
    <%
    dim upload,file,formName,formPath,iCountServer.ScriptTimeout=5000set upload=new upload_5xSoft ''建立上传对象if upload.form("filepath")="" then   ''得到上传目录
    HtmEnd "请输入要上传至的目录!"
    set upload=nothing
    response.end
    else
    formPath=upload.form("filepath")
    ''在目录后加(/)
    if right(formPath,1)<>"/" then formPath=formPath&"/" 
    end ifiCount=0
    for each formName in upload.file ''列出所有上传了的文件
    set file=upload.file(formName)  ''生成一个文件对象
    if file.FileSize>0 then         ''如果 FileSize > 0 说明有文件数据
     file.SaveAs Server.mappath(formPath&file.FileName)   ''保存文件
     response.write file.FilePath&file.FileName&" ("&file.FileSize&") => "&formPath&File.FileName&" 成功!<br>"
     iCount=iCount+1
    end if
    set file=nothing
    next
    set upload=nothing  ''删除此对象
    Htmend iCount&" 个文件上传结束!"sub HtmEnd(Msg)
    set upload=nothing
    response.write "<br>"&Msg&" [<a href=""javascript:history.back();"">返回</a>] [<a href=list.asp>文件列表</a>]</body></html>"
    response.end
    end sub
    %>
    </body>
    </html>
    ****************************************************************************
    3:upload_5xsoft.inc
    ****************************************************************************
    <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>dim upfile_5xSoft_StreamClass upload_5xSoft
     
    dim Form,File,Version
     
    Private Sub Class_Initialize 
    dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
    dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
    Version="HTTP上传程序 Version 1.0"
    if Request.TotalBytes<1 then Exit Sub
    set Form=CreateObject("Scripting.Dictionary")
    set File=CreateObject("Scripting.Dictionary")
    set upfile_5xSoft_Stream=CreateObject("Adodb.Stream")
    upfile_5xSoft_Stream.mode=3
    upfile_5xSoft_Stream.type=1
    upfile_5xSoft_Stream.open
    upfile_5xSoft_Stream.write Request.BinaryRead(Request.TotalBytes)vbEnter=Chr(13)&Chr(10)
    iDivLen=inString(1,vbEnter)+1
    strDiv=subString(1,iDivLen)
    iFormStart=iDivLen
    iFormEnd=inString(iformStart,strDiv)-1
    while iFormStart < iFormEnd
     iStart=inString(iFormStart,"name=""")
     iEnd=inString(iStart+6,"""")
     mFormName=subString(iStart+6,iEnd-iStart-6)
     iFileNameStart=inString(iEnd+1,"filename=""")
     if iFileNameStart>0 and iFileNameStart<iFormEnd then
      iFileNameEnd=inString(iFileNameStart+10,"""")
      mFileName=subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
      iStart=inString(iFileNameEnd+1,vbEnter&vbEnter)
      iEnd=inString(iStart+4,vbEnter&strDiv)
      if iEnd>iStart then
       mFileSize=iEnd-iStart-4
      else
       mFileSize=0
      end if
      set theFile=new FileInfo
      theFile.FileName=getFileName(mFileName)
      theFile.FilePath=getFilePath(mFileName)
      theFile.FileSize=mFileSize
      theFile.FileStart=iStart+4
      theFile.FormName=FormName
      file.add mFormName,theFile
     else
      iStart=inString(iEnd+1,vbEnter&vbEnter)
      iEnd=inString(iStart+4,vbEnter&strDiv)  if iEnd>iStart then
       mFormValue=subString(iStart+4,iEnd-iStart-4)
      else
       mFormValue="" 
      end if
      form.Add mFormName,mFormValue
     end if iFormStart=iformEnd+iDivLen
     iFormEnd=inString(iformStart,strDiv)-1
    wend
    End SubPrivate Function subString(theStart,theLen)
    dim i,c,stemp
    upfile_5xSoft_Stream.Position=theStart-1
    stemp=""
    for i=1 to theLen
      if upfile_5xSoft_Stream.EOS then Exit for
      c=ascB(upfile_5xSoft_Stream.Read(1))
      If c > 127 Then
       if upfile_5xSoft_Stream.EOS then Exit for
       stemp=stemp&Chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
       i=i+1
      else
       stemp=stemp&Chr(c)
      End If
    Next
    subString=stemp
    End functionPrivate Function inString(theStart,varStr)
    dim i,j,bt,theLen,str
    InString=0
    Str=toByte(varStr)
    theLen=LenB(Str)
    for i=theStart to upfile_5xSoft_Stream.Size-theLen
      if i>upfile_5xSoft_Stream.size then exit Function
      upfile_5xSoft_Stream.Position=i-1
      if AscB(upfile_5xSoft_Stream.Read(1))=AscB(midB(Str,1)) then
       InString=i
       for j=2 to theLen
         if upfile_5xSoft_Stream.EOS then 
           inString=0
           Exit for
         end if
         if AscB(upfile_5xSoft_Stream.Read(1))<>AscB(MidB(Str,j,1)) then
           InString=0
           Exit For
         end if
       next
       if InString<>0 then Exit Function
      end if
    next
    End Function
      

  5.   

    Private Sub Class_Terminate  
     form.RemoveAll
     file.RemoveAll
     set form=nothing
     set file=nothing
     upfile_5xSoft_Stream.close
     set upfile_5xSoft_Stream=nothing
    End Sub
      Private function GetFilePath(FullPath)
     If FullPath <> "" Then
      GetFilePath = left(FullPath,InStrRev(FullPath, "\"))
     Else
      GetFilePath = ""
     End If
    End  functionPrivate function GetFileName(FullPath)
     If FullPath <> "" Then
      GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)
     Else
      GetFileName = ""
     End If
    End  functionPrivate function toByte(Str)
      dim i,iCode,c,iLow,iHigh
      toByte=""
      For i=1 To Len(Str)
      c=mid(Str,i,1)
      iCode =Asc(c)
      If iCode<0 Then iCode = iCode + 65535
      If iCode>255 Then
        iLow = Left(Hex(Asc(c)),2)
        iHigh =Right(Hex(Asc(c)),2)
        toByte = toByte & chrB("&H"&iLow) & chrB("&H"&iHigh)
      Else
        toByte = toByte & chrB(AscB(c))
      End If
      Next
    End function
    End Class
    Class FileInfo
     dim FormName,FileName,FilePath,FileSize,FileStart
     Private Sub Class_Initialize 
       FileName = ""
       FilePath = ""
       FileSize = 0
       FileStart= 0
       FormName = ""
     End Sub
     
    Public function SaveAs(FullPath)
       dim dr,ErrorChar,i
       SaveAs=1
       if trim(fullpath)="" or FileSize=0 or FileStart=0 or FileName="" then exit function
       if FileStart=0 or right(fullpath,1)="/" then exit function
       set dr=CreateObject("Adodb.Stream")
       dr.Mode=3
       dr.Type=1
       dr.Open
       upfile_5xSoft_Stream.position=FileStart-1
       upfile_5xSoft_Stream.copyto dr,FileSize
       dr.SaveToFile FullPath,2
       dr.Close
       set dr=nothing 
       SaveAs=0
     end function
    End Class
    </SCRIPT>
      

  6.   

    http://www.csdn.net/Develop/read_article.asp?id=17699