我要对大量的文件夹,压缩包进行查询,如何用DELPHI+sql server 解决?
请高手指点。谢谢。

解决方案 »

  1.   

    就是说,我建如下表编号    名称       文件夹1    文件佳2  文件夹3   压缩包1   压缩包2    
     1       n1         w1          w12      w13     y1        y12
     2       n2         w2          w22      w23     y2        y22那我 先要用DELPHI在前台 把这些 编号    名称       文件夹1    文件佳2  文件夹3   压缩包1   压缩包2    存储到SQL SERVER  这个技术怎么实现?
    第二  我要查找 名称 为 n1  的 文件夹1    文件佳2  文件夹3   压缩包1   压缩包2    
     如何 解决,也就是说 如何从 数据库中把他用DELPHI取出来?
      

  2.   

    查询用Sql就可以了。保存和读取用流和BlobField来处理就可以了。
    Tfilestream->TMemoryStream->TBlobField
    存储嘛:
              TBlobField(ADOQuery1.fieldbyname('压缩包1')).loadfromstream(ts);
    读取:
              TBlobField(ADOQuery1.fieldbyname('压缩包1')).savetostream(ts);
      

  3.   

    那在数据库中的 压缩包 用什么类型 
    比如 编号用 int 名称用  varchar
      

  4.   

    to flyingkiller(大飞虫) ( )  :
     你的这段代码 我看着有点困难 能否解释一下?
    Tfilestream->TMemoryStream->TBlobField  //  这行什么意思?
    存储嘛:
              TBlobField(ADOQuery1.fieldbyname('压缩包1')).loadfromstream(ts);
                            // ts 指什么?
    读取:
              TBlobField(ADOQuery1.fieldbyname('压缩包1')).savetostream(ts);
      

  5.   

    压缩包用Binary类型
    TS:TMemoryStream;
    存储嘛:
              TS.loadfromfile('c:\a.zip');
              TBlobField(ADOQuery1.fieldbyname('压缩包1')).loadfromstream(ts);
                            // ts 指什么?
    读取:
              TBlobField(ADOQuery1.fieldbyname('压缩包1')).savetostream(ts);
              TS.savetofile('c:\a_1.zip');
      

  6.   

    先要初始化TS
    TS:=TMemoryStream.create;
      

  7.   

    兄弟 这行通不过:
        TBlobField(ADOQuery1.fieldbyname('压缩包1')).loadfromstream(ts);
        其中‘压缩包1’ 字段 我把它换成数据库表中对应的字段 ‘ysb’ ;
       运行时 发现 错误:
      invalid class typecast  错误?
      怎么会事?
      

  8.   

    TS:=TMemoryStream.create;
    TS.loadfromfile('c:\a.zip');
    TBlobField(ADOQuery1.fieldbyname('压缩包1')).loadfromstream(ts);
    没有错的啊实在不行的话你用
    TBlobField(ADOQuery1.fieldbyname('压缩包1')).loadfromfile('c:\a.zip');
      

  9.   

    兄弟 ,我把我的代码贴给你:
    procedure Tfrm_entry_n.bbtn_loadClick(Sender: TObject);
    var
     // ysb:tadoblobstream ;
      TS:TMemoryStream ;
      str : string;
    begin
       ts := TMemoryStream.Create;
       if opendialog1.execute then
       begin
          ts.LoadFromFile(opendialog1.FileName);
           if adoqry_entry.State = dsInsert then
           begin
          //  adoqry_entry.FieldByName('PicIdx').AsInteger := adoqry_max.FieldByName('MaxIdx').AsInteger + 1;
              adoqry_entry.FieldByName('PicIdx').AsInteger := 1 ;
       
           //    TBlobField(adoqry_entry.FieldByName('dwg')).LoadFromStream(ts);
            //  *************运行通不过
               TBlobField(adoqry_entry.FieldByName('dwg')).loadfromfile(opendialog1.FileName);          adoqry_entry.post;
           end
        end
       else
         begin
           if MessageDlg('确定修改吗?',
                      mtConfirmation, [mbYes, mbNo],0) = mrYes then
            begin
                MessageDlg('你已经成功修改!', mtInformation,
                            [mbOk],  0);
                    Close;
            end;   end;