发现一个很奇怪的问题,有关三层数据库的applyupdates的问题

skynew2004 2008-08-20 01:51:15
三层,所有设置都按书上做的,只是数据库不同.

如果数据库记录没有经过asp修改过,则可以update.
如果经过asp网页进行修改过,数据库的update就更新不了.

数据库用access与sqlserver都一样的结果,很是头痛.

字段是多了一点.可以新建一个记录试试,应该可以上传,但经过asp修改后,就不行了.

我是想用asp与delphi的三层一起做个系统,数据库用同一个,这样可以同时用B/S与C/S.但就是遇到这个问题,不知乍解决.头痛啊
...全文
173 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
skynew2004 2008-10-12
  • 打赏
  • 举报
回复
问题还是没有解决.唉...

我在ASP中做了个功能,就是找出空字段,然后写上null.这样虽然可以,但对于大型数据库,太慢了....

有没有会有什么其他方法?
skynew2004 2008-09-01
  • 打赏
  • 举报
回复
f那也不是很方便 ,我程序中不是要进行判断?是0则显示为空?如果有0作为重要数值呢?那也会影响啊。
Cherish20 2008-08-29
  • 打赏
  • 举报
回复
数据库中相应的字段设置,添加默认值,把可Null均改为‘0’
skynew2004 2008-08-29
  • 打赏
  • 举报
回复
还是没有人会....?
skynew2004 2008-08-25
  • 打赏
  • 举报
回复
谢谢楼上的为我全解答,但我目前只有我一个人在试用,asp修改后,我把网页已经关闭,再作客户端修改上传.

如果是您说的那种原因,那我应该会出现有时能上传,有时不能上传.

我现在把数据库0长度的字串都改为null,现在每次都能上传了.

我想还是空字符串的问题.

最好在delphi中不受空字符串的影响就能上传记录.不知您有什么好的方法?
五维思考 2008-08-24
  • 打赏
  • 举报
回复
总感觉应该不是你说的记录是不是空影响更新,我猜是不是这样:你的客户端程序数据库控件获得数据A后,此时该数据被ASP修改为B,然后你的客户端程序又将其修改为C,提交修改,但程序发现该数据已经不是A而是B了,所以程序拒绝修改。如果是这样的话,那就是典型的数据逻辑错误,解决办法为:ASP及客户端均使用相同的业务逻辑和数据逻辑层进行调度。
skynew2004 2008-08-24
  • 打赏
  • 举报
回复
乍还是没有人会呢?
skynew2004 2008-08-22
  • 打赏
  • 举报
回复
可我试了,只要在后台把数据库的空字段,改为null就可以上传了.
我用了一个循环,把所有数据都改了一下null.所有记录都可以上传了.

后来,我只有在asp中,高度注意所有update语句,空字段一定要改上null值.

这样就可以了.

但我想应该在delphi中应该有方法解决.

有谁有过同样的经历,帮帮我吧.
skynew2004 2008-08-22
  • 打赏
  • 举报
回复
难道高手都放假去了?还是没有人用delphi了?
看来我也要改行了..
wpy020327 2008-08-22
  • 打赏
  • 举报
回复
记录Lock吧,在你对记录编辑期间,其它程序对该记录作了修改,则你的程序就不能提交。
编辑期间把记录Lock,提交之后再Unlock
skynew2004 2008-08-21
  • 打赏
  • 举报
回复
我找到问题的关键,但还是没有解决.
关键是空字段原来是<null>,现在变为正真的空.所以就上传不了,我用asp修改时,如果是空,我就直接等于空字符串的.
但我asp代码太多了,我不改不了,能不能有好的方法?在delhpi中能解决
skynew2004 2008-08-21
  • 打赏
  • 举报
回复
http://www.softwelt.com/Know/KnowDetail-2367906.html
看看这个,个有些思路?
skynew2004 2008-08-21
  • 打赏
  • 举报
回复
以前用的access数据库,一直没有找出原因.现在用sqlserver,在sqlserver中发现有<null>表示空字段值.
skynew2004 2008-08-21
  • 打赏
  • 举报
回复
我用的是dbgrid.
然后用
if ClientDataSet1.ChangeCount>0 then
begin
i:= ClientDataSet1.ApplyUpdates(-1);
// ClientDataSet1.Refresh;
if i>0 then showmessage('注意:您有'+inttostr(i)+'条记录没有上传成功!');
end;
skynew2004 2008-08-21
  • 打赏
  • 举报
回复
也就是如果数据库记录中有非null的空字段,则该字段不能更新.有没有高手?帮着解决一下?
skynew2004 2008-08-20
  • 打赏
  • 举报
回复
可我程序已经全部编写完成了,那么多的代码,要重新写,不是很累吗?我只是觉得不应该这样啊.三层可以做到查,为什么不能上传?数据库被写了什么?不然不用asp修改数据的记录怎么可以上传的?
lyguo 2008-08-20
  • 打赏
  • 举报
回复
用WebServer 和 Soap吧

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧