三层,所有设置都按书上做的,只是数据库不同.如果数据库记录没有经过asp修改过,则可以update.
如果经过asp网页进行修改过,数据库的update就更新不了.数据库用access与sqlserver都一样的结果,很是头痛.字段是多了一点.可以新建一个记录试试,应该可以上传,但经过asp修改后,就不行了.我是想用asp与delphi的三层一起做个系统,数据库用同一个,这样可以同时用B/S与C/S.但就是遇到这个问题,不知乍解决.头痛啊

解决方案 »

  1.   

    可我程序已经全部编写完成了,那么多的代码,要重新写,不是很累吗?我只是觉得不应该这样啊.三层可以做到查,为什么不能上传?数据库被写了什么?不然不用asp修改数据的记录怎么可以上传的?
      

  2.   

    我找到问题的关键,但还是没有解决.
    关键是空字段原来是<null>,现在变为正真的空.所以就上传不了,我用asp修改时,如果是空,我就直接等于空字符串的.
    但我asp代码太多了,我不改不了,能不能有好的方法?在delhpi中能解决
      

  3.   

    也就是如果数据库记录中有非null的空字段,则该字段不能更新.有没有高手?帮着解决一下?
      

  4.   

    我用的是dbgrid.
    然后用
        if  ClientDataSet1.ChangeCount>0 then
              begin
              i:= ClientDataSet1.ApplyUpdates(-1);
             // ClientDataSet1.Refresh;
              if i>0 then showmessage('注意:您有'+inttostr(i)+'条记录没有上传成功!');
              end;
      

  5.   

    以前用的access数据库,一直没有找出原因.现在用sqlserver,在sqlserver中发现有<null>表示空字段值.
      

  6.   

    http://www.softwelt.com/Know/KnowDetail-2367906.html
    看看这个,个有些思路?
      

  7.   

    难道高手都放假去了?还是没有人用delphi了?
    看来我也要改行了..
      

  8.   

    记录Lock吧,在你对记录编辑期间,其它程序对该记录作了修改,则你的程序就不能提交。
    编辑期间把记录Lock,提交之后再Unlock
      

  9.   

    可我试了,只要在后台把数据库的空字段,改为null就可以上传了.
    我用了一个循环,把所有数据都改了一下null.所有记录都可以上传了.后来,我只有在asp中,高度注意所有update语句,空字段一定要改上null值.这样就可以了.但我想应该在delphi中应该有方法解决.有谁有过同样的经历,帮帮我吧.
      

  10.   

    总感觉应该不是你说的记录是不是空影响更新,我猜是不是这样:你的客户端程序数据库控件获得数据A后,此时该数据被ASP修改为B,然后你的客户端程序又将其修改为C,提交修改,但程序发现该数据已经不是A而是B了,所以程序拒绝修改。如果是这样的话,那就是典型的数据逻辑错误,解决办法为:ASP及客户端均使用相同的业务逻辑和数据逻辑层进行调度。
      

  11.   

    谢谢楼上的为我全解答,但我目前只有我一个人在试用,asp修改后,我把网页已经关闭,再作客户端修改上传.如果是您说的那种原因,那我应该会出现有时能上传,有时不能上传.我现在把数据库0长度的字串都改为null,现在每次都能上传了.我想还是空字符串的问题.最好在delphi中不受空字符串的影响就能上传记录.不知您有什么好的方法?
      

  12.   

    数据库中相应的字段设置,添加默认值,把可Null均改为‘0’
      

  13.   

    问题还是没有解决.唉...我在ASP中做了个功能,就是找出空字段,然后写上null.这样虽然可以,但对于大型数据库,太慢了....有没有会有什么其他方法?