创建过程:
1、请不要新建application.file-new-activex-activex library,file --new--other,选择"Multitier"--"Remote data module"。在跳出来的对话框里面输入名称(任意),例如:AppSqlConn。选择确定,进入remote data module窗口。
2、加入组件:adodataset,点击connectionstring属性,点击后面的…,进入设定连接窗口。选择:use connection string--build,在提供程序中选择:"Microsoft ole db provider for sql server",在连接中:服务器名称输入sql server的ip地址,登录信息中输入用户名和密码(sql server),在选择数据库中选择自己想要使用的数据库。一般只要地址正确、用户名和密码无误,肯定可以连接通过。确定退出

3、在commandtext中点击后面的…,进入sql 语句设定,根据自己的要求设定。4、将active属性设置为true。只要前面的设定是正确的,这里应该顺利通过。
5、加入组件:datasetprovider。设定其dataset属性为上面的adodataset。
6、到此服务器端已经设置完成。请保存并且运行一次,从而使服务注册。
7、运行delphi的bin目录下面的scktsrvr,因为下面要使用socket连接。运行后任务栏中出现socket server的图标。8、新建程序(application),然后file--new--data module,会创建客户端的data module。
9、加入组件:socketconnection,在address中输入sql server的ip地址,然后在servername中输入刚才创建的remote data module的服务程序。程序会自动在serverguid中加入id。然后选择connected属性为true。只要此处不报告错误,此程序基本成功了。
10、加入组件:clientdataset,选择remoteserver属性为socketconnection,选择providename为服务器程序的datasetprovider。然后选择active属性为true。
11、到程序的form窗口状态,首先选择file--use unit,选择上面创建的data module,确定。然后加入组件datasource和dbgrid。选择datasourece的dataset属性为data module的clientdataset,选择dbgrid的datasource为这里的datasource组件。现在应该可以看到dbgrid的窗口中出现了想要的数据。保存并且编译客户端程序。
我是按照上面的文字一步步操作的,但是做出来的三层 服务器端只是一个DLL!
我希望服务器端是一个窗体,能够见到连接的人数!
还有在客户端那里不能通过
clientdataset.commandtext 获取新的信息!希望大家来帮我修改下!如果谁有更好的三层学习资料希望能邮箱给我:[email protected]

解决方案 »

  1.   

    去网上找一本电子书
    李维著 《Delphi 5.x, 分布式多层应用系统篇》
      

  2.   


    你建的是DLL,当然生成的是DLL了
    file-new-activex-activex library
    改成
    file-new-Application
    file --new--other,选择"Multitier"--"Remote data module"。//重要的是这个建立远程数据模块
      

  3.   

    还有在客户端那里不能通过
    clientdataset.commandtext 获取新的信息!
    那这个怎么解决呢?
      

  4.   


    1、DataSetProvider1的options下的poAllowCommandtext设为true
    2、ADODataSet1的commandtext为空,不要设置偶