SQL SERVER怎么不能直接往里面添加Image项啊?一定要用程序往表里添加?

解决方案 »

  1.   

    不一定要用程序插入。方法: 
    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 
      

  2.   

    不能直接在表里插入图像?我记得ACCESS可以直接添加位图对象,不用这么麻烦的啊!我想直接在企业管理器中添加,可以不写代码吗?
      

  3.   

    其实直接在SQL中插入位图或其它格式的图,是不科学的;以人力资源为例子(如:在某个企业中员人很多超3000人,档案中有照片一项),那么当你查找就很慢...建议你将图象的路径保存在SQL的表中。
      

  4.   

    楼上说得对,其实只是保存文件名就可以了。
    如果要在程序中取这个图片可以这样写image1.picture.loadfromfile(extractfilepath(application.exename)+'文件夹'+fieldbyname('name').asstring)
      

  5.   

    楼上说得对,其实只是保存文件名就可以了。 
    如果要在程序中取这个图片可以这样写 image1.picture.loadfromfile(extractfilepath(application.exename)+'文件夹'+fieldbyname('name').asstring)
      

  6.   

    TBLOBField(Query.FieldByName('PictureFieldName')).LoadFrom('C:\Test.Pic')
      

  7.   

    建议将图片放在SQL Server中,用Blob字段就可以解决此问题,同时对应的有个类TBlobField
    看下帮助就可以了。