2.然后回到form1上,到form1的代码中的implementation下加入 uses unit2;,使之可以调用datamodule上的内容。再 拖一个dbgrid1上去。
如图:
3. 再编辑datamodule2的代码,如果没改名的话,就是unit2的代码。找到public,声明一个过程,在其下一行输入:procedure applydates;
再到implementation下一行,把这个过程写出来,代码如下:
procedure tdatamodule2.applydates;
var
custvar:olevariant;
begin
//这行是自动提交修改信息的语句。
clientdataset1.checkbrowsemode;
//下面几句是把修改的数据存入custvar变量。如果没修改custvar的值设成空(null)。
if clientdataset1.changecount >0 then
custvar:=clientdataset1.delta
else
custvar:=null; //这句需要在上面的uses里加入variants。
try
//通过dcomconnection把custvar传服务器端的applyupdates去,是咱们自己写的。忘了?回去看看
dcomconnection1.appserver.applydates(custvar);
showmessage('已经成功的写入服务器数据库'); //这里如果出错,请在uses中填上dialogs
except
showmessage('错误写操作'); //异常处理,如果出错就执行句。
---------------------------------------------------------------------------
上面这些代码比就是客户端上传数据的代码,custvar变量对应服务器端咱们设的custvar变量,两个变量名可以不一样,但一般设成一样的比较好。
4. 再拖5个铵钮上去,属性设置和事件代码如下:
双击铵钮就会进入onclick的代码区,就填这儿。
|
控件 |
属性 |
onclick事件代码 |
| buttion1 | caption:=插入 |
datamodule2.clientdataset1.append; |
| buttion2 | caption:=修改 | datamodule2.clientdataset1.edit; |
| buttion3 | caption:=删除 | datamodule2.clientdataset1.delete; |
| buttion4 | caption:=写入 | datamodule2.applydates; //这句是调用刚才在datamodule2里自己填上去的过程。 |
| buttion5 | caption:=取消 | datamodule2.clientdataset1.cancelupdates; |
设置完成如图:

好了,这次客户端的所有设置也完成了,运行看看吧,运行通不过??呵呵,去查查是不是什么地方设置错了,或代码是不是写错了。
-------------------------------
累死我了,我要睡觉了。