要求從clientdataset繼承過來,當對數据表增加,修改,刪除時
能自動記錄表中主要內容(uid,username,date...),
刪除數据全部都要記錄(想用memo),
請教下這樣的控件如何寫,有何提議?

解决方案 »

  1.   

    如果你用 dbExpress, 那 SQLMonitor 就可達到你的要求了!
      

  2.   

    To: FrameSniper(§绕瀑游龙§) 
      有點像日志記錄,主要實現對數据表的操作做一個備忘記錄.To: aiirii(aiirii)
       多謝你,研究下!
      

  3.   

    Tclientdatast中有BeforeDelete\BeforePost\BeforeInsert\BeforeEdit事件
    你在其中写代码试试,应该不是很难但uid,username从哪来,可要考虑好是你的登录用户还是数据库连接用户,如果是数据库连接用户直接取不到,你用TClientdataset好像是三层程序吧,如果是三层的话直接调用函数增加删除更新的还要考虑记录,所以要考虑的很多,这要的程序没做过,只能给你点建议  
      

  4.   

    如果是SQL数据库就好办了,直接在SQL里面写一个触发器,让Insert , Update, Delete的时候就把当然操作的记录保存到一个表中,当然也可以保存到文件中。
      

  5.   

    不是很难,我上次去一个地方面试,他居然说要招一个人来写一个类似MAPX的控件出来,真是服了他了
      

  6.   

    多謝各位建議.偶用mysql數据庫,三層結构,學習中..
      

  7.   

    如果我的理解没错的话,你是想记录服务器向数据库提交的Sql语句,如果是这样,应该从TadodataSet(假设是用ado连接)继承,覆盖PSExecuteStatement方法,ClientDataSet生成的sql都会在PSExecuteStatement方法中得到,当然要求ClientDataSet的数据提交方式是不依赖数据集的,就是ClientDataSet默认的数据提交方式。得到Sql后保存到数据库中就可以了,比较简单。控件原理就是这样,代码也不多(10几行就可搞定),你自己研究一下。
      

  8.   

    继承后可否考虑重写Insert , Update, Delete事件或方法,在其中加上日志程序