首先我说一点:当服务器端执行添加,删除,插入操作的时候,常常会出错。这是可以将执行这些的地方放置try来捕获错误,并在服务器端处理,不使程序中止!

解决方案 »

  1.   

    其实delphi程序员已经够懒的了,写点代码吧!比用控件有意思的多!!
      

  2.   

    这个问题就是我之前提出的帖子:
    http://www.csdn.net/expert/topic/958/958838.xml?temp=.4206201
    其中需要解决的问题之一。三层结构下,服务器端还是可以利用一些控件事件去做数据检查和判断并返回错误信息,但是在这以外的就难说了。对我们的应用来说,如果数据检查能在客户端处理的话,那就减少了服务器上出问题的可能,但是这样做又可能造成客户端过分膨胀、难以维护。所以要在两者之间找到平衡的确不容易。我自己的处理方法是,服务器上建立一个方法,接受客户端的数据或参数,然后在服务器上处理并返回结果,包括错误信息
      

  3.   

    从客户端来只能是尽量的减少错误的发生,因为本身的错误并不是在客户端产生的,而是在服务器端。哎~delphi程序员的技术含量的却不比VC,也许很多人会骂我!我原来学VC的。其实也是在骂自己吧!
      

  4.   

    其实Microsoft的COM+应用程序设计说明中已经很详细地讲了,你们还在这里闭门造车??!!
      

  5.   

    to : cobi(我是小新) 的作法是对的,,在服务器端建立自动化对象,构造
    声明方法比如:excute(),Insert(),Modify(),Query()方法等,并且把这些方法声明成safecall这样,客户端执行的时候如果服务器端引起错误的话,默认HResult值返回错误信息建议,不要用什么托拉控件比如clientDataset绑定什么的,这样做出问题也不知道怎么回事,还是自己写代码好,
    比如,服务器端访问远程数据库的程序可以不要托ADOConnection什么之类的控件(其实写代码和这个差不多,但是可以跟踪到代码执行),详细可以参照Demos\ado应用实例,这样
    可能对原理的调用会更加熟悉些。
      

  6.   

    我不大懂,让我做我只能多try一下,再cacheupdate了
      

  7.   

    还是我来谈谈,不过也不是我的看法,是我这几天在书上看的:错误处理在事件中有截获,OnEditError,OnDeleteError,OnPostError等,可以自己去找这些事件,将这些错误截获,处理就可以了。这样我想数据库的操作处理的错误应该大部分没有问题了吧,除了些莫名其妙的问题!!那么有了这些错误的截获,如何处理呢?我想应该将错误的详细信息反馈给客户端,以使客户有正确的操作方向!但是还有一点就是除了操作数据库的错误,还有其他的错误该如何处理呢?并捕获呢?另外还有就是创建一些对象的时候会产生的错误,数据库联接的错误等?谁知道就接分?
      

  8.   

    我说说我的看法:
    象这种多层结构的开发,问题出现多的一般都体现在通讯上面。而 导致外部不良干扰的因素包括系统的网络通信出现故障,DBMS自身出现问题不可用,Client端自身出现问题不可用。其中DBMS和Client是服务端的通信对象,当出现DBMS和Client不可用时,可视为不可忽略的通信故障处理。
     网络通信故障我觉得可以划分以下几个方面:
     根据通信对象划分,在这方面主要是
     服务端作为Client与DBMS的中间层,与两方都有通信;因此服务端需要处理的网 络通故障分为两类:与DBMS的网络通信故障。与client的网络通信故障;
    处理与DBMS的网络通信故障的原则。
     1.服务端在无库操作请求时,忽略网络故障。
       服务端不会主动检测网络状态是否正常,在未接受库操作请求时,服务端忽视网络故障的存在。若在这一段时期内,故障能被排除,则服务端以后的库操作也能正常进行,从而实现服务端的高容错性。
        库操作请求包括:创建数据库连接;获取数据库的数据;提交更新数据至数据库;释放数据库连接。2.隔离确定的库操作请求的影响范围。
       实现库操作的线程化,缩小触发故障后的影响范围,避免Client之间的相互影响。使某一个Client在故障阶段发出库操作请求,只会影响该客户自己。3.服务端及时调整数据库连接资源
       服务端有一套维护数据库连接数目的机制,能根据用户的需求状况,选择恰当的时机,自动检测自己目前的数据库连接资源是否与应有的数据库连接资源能力相符,并作出相应的调整:创建新的数据库连接或释放多余的数据库连接。从而维护资源的正常受控状态。
      先说到这里吧!还要做事去了。言语之间难免浮现我的肤浅。请各位多指教!
      

  9.   

    结贴,问题的答案虽然并不全,但还是感谢关注的朋友们!并对我说的过分的话诚挚的道歉,我有散分贴,去取吧 !~!多层结构的错误处理的确是个麻烦的问题,但也不是特难不能解决的。只要对细节的,可能出现问题的地方多思考,问题总会减少的!~!Corba的多层结构服务器端似乎并没有太大必要做错误处理,因为程序并不会因为客户端误操作或无效操作中止。但是为了给客户端以操作的方向,错误处理很有必要的,只有完善的程序才能是成功的程序!努力,朋友们!