最近学三层,有很多问题要请教大家!
我用DCom,Ado,sql server
1 我用下面的语句咋就出"I/0 6"错误?
while not eof do
begin
listbox1.items.add(trim(clientdataset1.fields[0].asstring));
next
end;
而我用for循环就没问题?迷惑ing...............
2 怎么处理多人同时修改一条记录的问题?
3 怎么使用事务?恳请大家赐教!
还有用dcom该注意那些容易出问题的地方?(这个问题问的不大好意思!)
我用DCom,Ado,sql server
1 我用下面的语句咋就出"I/0 6"错误?
while not eof do
begin
listbox1.items.add(trim(clientdataset1.fields[0].asstring));
next
end;
而我用for循环就没问题?迷惑ing...............
2 怎么处理多人同时修改一条记录的问题?
3 怎么使用事务?恳请大家赐教!
还有用dcom该注意那些容易出问题的地方?(这个问题问的不大好意思!)
解决方案 »
- WPS office 2007非常不错,建议大家使用。与Office 2003完全兼容。个人免费。
- 问一个问题!!!大家可以帮个忙吗!!!
- Delphi有没有控件数组?
- 请问各位高手:如何将DBGrid 的 数据 转到 Excel2000 中,请给一个具体的例程......
- 请看一下这个sQL语句
- 程序员最有帮助的素质什么?
- Bof或Eof有一个为真,或者当前记录已被删除,请问MDAC2.5哪有下载?
- 大富翁咋啦??
- 不可见构件的编写方法?????
- Delphi7报错 invalid use of keyword
- 如何获得webbroswser控件上显示的flash?
- 【非高手勿进】如何得知局域网中某台机器的流量?
begin
listbox1.items.add(trim(clientdataset1.fields[0].asstring));
clientdataset1.next
end;
3.使用事务要注意在一个事件中开始并结束事务;
ADOConnection_sys.BeginTrans;
ADOConnection_sys.CommitTrans;
2。更新模式有几种选择的,TRASISOLATION属性,看书吧
3。starttransaction(开始事务) rollback(回滚) commit(提交)
2 能给点处理事务的例子么?
哪位能给个完整实现增\删\改的,业务代码在中间层处理的简单例子?
我不知道怎么把业务逻辑放到中间层!:(
begin
listbox1.items.add(trim(clientdataset1.fields[0].asstring));//看看是不是你的域对否,第一个字段是0,第二个是1
clientdataset1.next
end;2.在sql 中就加锁,select * from tb for update
会在选中的行上加行级锁
还可以 select * from tb for update with nowait 或者这样:
Sql Server 中利用TIMESTAMP 字段来解决这种问题。
当有任何修改时,TIMESTAMP的值都会改变,这样,当你试图修改别人已经改过的数据时,
WHERE 子句找不到你的TIMESTAMP字段的值,就会抱错,你就知道数据已经被别人改过了。
这是最经典的用法。 如果在DELPHI中,用事务最后一句:最好用事务!3。
adoconnection1.begintrans;
语句处理
if 失败 then
begin
rollback;
end else
commit;
end;
答问3.
BeginTrans;//开始事务
//被保护的代码,如在执行的过程中出现问题,数据库自动回滚.
CommitTrans;//结束事务
我刚学,没试过在三层里用事务,我按自己的理解说说,大家多教教我!
是不是这样用:
server端写个method比如:
AddNew(param:xxxx)
begin
sqlstr:='insert into xxxx value (param)'
adocnn.beginTrans
try
xxxx(执行sqlstr)
adocnn.commitTrans
except
adocnn.rollback
end;
end;
client端点击增加,调用AddNew?
大家看这样理解对不对!真的想学好三层,希望大家多多赐教!
能帮忙贴段代码学学么?:)