起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 338|回复: 6

【结】发送附件时候,如何判断相同的文件已经存在?**

[复制链接]
发表于 2008-2-20 11:25:35 | 显示全部楼层 |阅读模式
发送附件时候,如何判断相同的文件已经存在?

  {
          判断文件是否存在?
     有时候可能发了相同文件,这里最好给个提示,说相同文件已经存在,否则会报系统错误
     }
    TUnStructureDocUtils.NewFile(FDocOperationProvider.Resolver.DocContext, lFileName, lFileAttribute);
回复

使用道具 举报

 楼主| 发表于 2008-2-20 14:49:52 | 显示全部楼层
我吧TDocSystem 表中 的 Unique 索引 TSYSTEM_UDN 去掉,就好用了,这样还能上传同名文件,嘿嘿!
  不过在后台显示
Duplicate child associations are not allowed:
   Association: Association[ class=ClassDef [ name={http://www.alfresco.org/m
l/content/1.0}folder], name={http://www.alfresco.org/model/content/1.0}contai
target class={http://www.alfresco.org/model/system/1.0}base, source role=nul
target role=null]
   Name: {http://www.alfresco.org/test/SimpleExampleWithContent}0-0-样品.jpg

所以我想,还是应该用在创建文件前判断一下是否文件已经存在了,判断数据库中文件存在,用什么函数??
回复 支持 反对

使用道具 举报

发表于 2008-2-20 18:34:27 | 显示全部楼层
说一下您怎么引发的错误,错误信息是什么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-21 08:31:21 | 显示全部楼层
在关联文档表单,我上传了相同的文件,就会提示,大体意思是“不能上传同名文件”,根据错误提示, TDOCSYSTEM表的TDOCSYSTEM_UDN 约束违反了。所以我就把这个约束在sqlserver中去掉了。然后2楼的后台提示显示了,不过business使用正常。我觉得这样做不好。所以自己写了块代码:static function TzwjUtils.RelevencyDocFileExists(fileDisplayName:string):Boolean;
const
  sStr='select FDISPLAYNAME from  TDOCSYSTEM where FDISPLAYNAME=';
var
  query1: TQuery;
begin
   query1:=TQuery.Create(nil);
   query1.ConnectionString:='DATABASEURL=Biz:\COLLABORATION\COLLABORATION.DATABASE';
   query1.CommandText:=sStr+''''+fileDisplayName+'''';
   query1.Open;
   if query1.RecordCount>0 then
   result:=true
   else result:=false;
end;  //来判断是否有相同显示名称的文件存在
----------------然后在文档关联表单中
procedure TRELEVANCYDOC.NewFileFromLocal(const AOSFileName: string);         过程中
。。。。。。。。。。。。
if not zwjUtils.TzwjUtils.RelevencyDocFileExists(lFileAttribute.DisplayName) then // 添加的
     begin
        TUnStructureDocUtils.NewFile(FDocOperationProvider.Resolver.DocContext,
       lFileName, lFileAttribute);
      AddListItem(lFileName, '', '', 0);
     end
    else begin
      Dialogs.ShowMessage('文件 '''+lFileAttribute.DisplayName+''' 已经上传过了,要上传请改名');//防止上传同名文件,否则的话,即使上传的附件与其它时候上传附件显示名称相同的时候,也提示错误。

    end;
回复 支持 反对

使用道具 举报

发表于 2008-2-21 12:01:23 | 显示全部楼层
去掉这个索引不影响使用。新版本已经默认去掉了这个索引。。。
回复 支持 反对

使用道具 举报

发表于 2008-2-26 08:50:15 | 显示全部楼层
楼主,还有问题吗?没有就结了:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-28 15:10:09 | 显示全部楼层
ok
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 15:35 , Processed in 0.043090 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表