下面一段代码尚未检测字段数据已经存在 
     if (OpenDialog1.Execute) then 
       begin 
         sFileName := OpenDialog1.FileName; 
         ADOTable1.Edit; 
         ADOTable1.FieldByName('FullText').AsString := 
           BlobContentToString(sFileName); 
         ADOTable1.Post; 
       end; 
 
当我点击“添加文档”按钮时,想在此时检测blob字段的数据是否存在,应该如何写?
想好了这个语句 
 if ADOTable1.FieldByName('FullText').IsNull then 
 
还有 
 MessageDlg('文件已经存在,确定覆盖?',mtConfirmation,mbOKCancel,0); 
 
就是不知应该写到哪里

解决方案 »

  1.   

    嗯,我试一下这样写,好像行不通
     if ADOTable1.FieldByName('FullText').IsNull then
      //blob字段尚未有数据,正常打开 
       if (OpenDialog1.Execute) then
       begin
        sFileName := OpenDialog1.FileName;
        ADOTable1.Edit;
        ADOTable1.FieldByName('FullText').AsString :=
          BlobContentToString(sFileName);
        ADOTable1.Post;
       end;
     else
      
       MessageDlg('文件已经存在,确定覆盖?',mtConfirmation,mbOKCancel,0);
      //检测到blob字段已有,接着怎么写?
      

  2.   

    Var 
      Source : TADOBlobStream;
    Begin
      Try
        Source := TADOBlobStream.Create(AdoTable.FieldByName('Blob')),bmRead)
      Except
      End;
      If Source.Size>0 Then 
        MessageDlg('文件已经存在,确定覆盖?',mtConfirmation,mbOKCancel,0); 
    End;
      

  3.   

    谢谢hrp123,但我不想改动源代码啊
    最起码保留
       if (OpenDialog1.Execute) then
       begin
        sFileName := OpenDialog1.FileName;
        ADOTable1.Edit;
        ADOTable1.FieldByName('FullText').AsString :=
          BlobContentToString(sFileName);
        ADOTable1.Post;
       end;当我点击 MessageDlg的OK按钮时,可以覆盖原文件。
      

  4.   

    在hrp123的以下代码段中换成你的代码不就行了吗?
      If Source.Size>0 Then 
        MessageDlg('文件已经存在,确定覆盖?',mtConfirmation,mbOKCancel,0); 
      

  5.   

    if (not ADOTable1.FieldByName('FullText').IsNull) then
     begin
       if (MessageDlg('文件已经存在,确定覆盖?',mtConfirmation,mbOKCancel,0) <> IDOK) then
         Exit;  //如果非空而且选了不覆盖,则退出
     end;  //blob字段尚未有数据或者有数据选了覆盖
       if (OpenDialog1.Execute) then
       begin
        sFileName := OpenDialog1.FileName;
        ADOTable1.Edit;
        ADOTable1.FieldByName('FullText').AsString :=
          BlobContentToString(sFileName);
        ADOTable1.Post;
       end;
      
                                   ______________http://hthunter.vicp.net/
      

  6.   

    if not adotable1.fieldbyname('fulltext').isnull then
    .................
      

  7.   

    解决了
    hunterht(核桃——俺就是核桃的马甲)
    你的 100分