几个关于数据库的问题,倾家荡产求救!235分(235分)

  • 主题发起人 主题发起人 xujiancai
  • 开始时间 开始时间
X

xujiancai

Unregistered / Unconfirmed
GUEST, unregistred user!
1、客户端则怎样执行服务器DataSetProvider1定义的事件,以前delphi4时
ClientDataSet1提供provider属性可以做到,但是在delphi5里好像已经
在不到proveder的属性了。
2、ClientDataSet1的commandText属性可以在服务器上执行查询语句,但我
做的时候,老师出现“commandText changes are not allowed”,为什 么?
3、我在服务器端的Type Library里新建一些方法,但要填入参数时,好像找不
到String类型,能大概介绍一下里面的类型吗?
4、那里有比较详细关于MIDAS编程的资料吗?
 
李唯的书市面已有售
 
对于第二个问题我可以回答,你只要把server端的provider控件的options 属性集下的poAllowCommandText的值改为true,再从新安装一下COM 就可以了。
 
对于第三个问题,在服务器端你应该用 VARIANT* 类型来代替,在客户端
参数对应的变量定义成olevariant型,例子如下:
var
s:olevariant;
F:ICLASS_ZHANG;
begin
f:=coclass_zhang.Create;
f.show(s);//show是我在服务器端定义的方法
label1.Caption:=s;
end;
试试看吧!!
 
我的E-mail:zhangbaojun@sina.com
欢迎与我联系。
 
谢谢张宝军!!
还有第一个问题,谁能为我解答呢?
 
怎么,没人了。。。。。。
 
http://www.csdn.net/disk/delphi5/md51samples.zip
附书源码?
 
please go on!!
 
You can go to: www.sybex.com
Or read <Delphi4 从入门到精通>
 
To 张立明: 教育网内,不能出国,请直接告诉我原因!
 
please go on!!
 
问题1: 现在用TClientDataSet.ProviderName
问题2:已经有人答了:)
问题3: 加一句, String 不是OLE类型, type library不支持
问题4: 有李维的书可看,新出的
 
我是过了,用TClientDataSet.ProviderName

好像也不行
 
问题2:
我用了一个笨办法:
client端加clientsocket元件,server端加serversocket元件。假设两边port
值均为1024.然后把SQL语句发送到SERVER端,SERVER端收到发送来的SQL语句后,
将其加入到remotedatamodal中的query元件的sql属性中去。然后在client端执行
即可。
具体方式如下:
1.client端:
client的form上置一个button,在其click事件中添加如下代码:
if clientsocket1.active then
clientsocket1.active:=false;
clientsocket1.port:=1024;
clientsocket1.address:='199.199.199.1';/*server端IP*/
clientsocket1.active:=true;
sql:='select * from table';/*假设SQL为这一句*/
clientsocket1.socket.sendtext(sql);
/*至此可将SQL语句发送出去*/
2.server端:
先在serverform.create()事件中添加如下代码:
serversocket1.open;
再在serversocket的clientsocketread()事件中添加如下代码:
receive:=socket.receivetext;
/*receive须事先定义,下同*/
/*这时的receive为SQL语句*/
/*在serverform上放一个edit,把receive赋给edit.text,再在remotedatamodal
的create()事件中调用edit.text,然后把edit.text赋给query的sql属性。这个
方法比较笨,但我试过,在remotedatamodal的create()事件中直接调用 serverform.edit.text行不通*/
edit.text:=receive;
在remotedatamodal的create()属性中添加如下代码:
receive:=serverform.edit.text;
query1.close;
query1.sql.clear;
query1.sql.add(receive);
query1.sql.execute;
query1.active;
3.client端:
此刻再执行程序便可成功。

 
去买一本李维的书,是系统编的,里面很较详细讲MIDAS编程
 
多人接受答案了。
 
后退
顶部