在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
承上一篇. 我们来做个简单的数据库连接测试. 在上个学习的基础上,我们打开Server的ServerMethodUnit1模块,在设计界面放上三个控件: SQLConnection1: TSQLConnection; c 注意: 1、如果使用sa,如果没有密码的话会连接失败,需要建立一个带密码的用户或者将sa设置上密码. 2、如果连接SQL Server时报告错误,可以尝试安装一下MS SQL Server 2008 Native Client,这个包同样可以应用在SQL Server 2000中. 然后将SQLDataSet1的SQLConnection设置为SQLConnection1,并且在CommandText中输入命令,比如:select * from jobs (连接到pubs数据库),设置Active为True. 最后一步,将DataSetProvider1的DataSet设置为SQLDataSet1. OK,我们的服务器就设计完成了,编译运行.
接下来, 我们来做一个客户端.在以前的DataSnap版本中(D7中好像是这样,其他版本没有测试),像刚才我们设计的东西要放在Remote Data Modul中,在连接的时候要使用DCOMConnection或者SocketConnection,现在不用了. 再打开我们上次设计的客户端程序,在窗体上放置几个数据处理控件,来吧,像一般的数据应用程序那样放入数据感知控件: DBGrid1: TDBGrid; 然后我们要放入其他连接远程应用要用到的控件: SQLConnection1: TSQLConnection; 设置SQLConnection1的Driver为DataSnap,Connected为True(注意运行服务器),设置DSProviderConnection1的SQLConnection为SQLConnection1,注意,下面是很重要的一步,即在ServerClassName中输入TServerMethods1,不知道Delphi为什么没有自动取出,这里需要手工录入. 再设置ClientDataSet1的RemoteServer为DSProviderConnection1,现在就可以在ProviderName中选择DataSetProvider1了,如果没有上面那一步,这里将没有列出. 好了,设置ClientDataSet1的Active为True,设置DataSource1的DataSet为ClientDataSet1,设置DBGrid1的DataSource为DataSource1(这些活都太熟了吧?) 我们已经可以在网格中看到取回的数据来了.
那么,我们可以编辑这些数据并更新回服务器吗? 让我们接着来. 在窗体上放置一个按钮,然后在Click事件中写上一句代码:
ClientDataSet1.ApplyUpdates(0);
运行客户端,然后试着修改一下数据并点击按钮.... 你可能顺利的提交了数据,但如果你操作的表没有自到增长字段的话,如果有自动增长字段,比如你测试的时候也像我一样使用的是pubs数据库,然后操作的是jobs表... 天啊,出现了错误? 这是自动增长字段的问题,我们有两种解决方法: 1.Server端我们使用ADO来处理,ADO在处理自动增长字段时还是比较方便的. 2.如果比较喜欢使用dbExpress,我们需要像下面这样做个设定: 回到服务器程序,选择我SQLDataSet,然后将所以字段都加进来,然后选择自动增长字段,在属性中进行如下设置: AutoGenerateValue设置为AutoInc; ProviderFlags属性设置为:[pfInWhere,pfInKey]; OK,编译运行,再回到客户端测试一下吧.
其实对于自动增长字段的处理,你直接不让它出现在结果集中也可以.自己多做做测试吧.
初学,有不当的地方请高手指正!
附: 注:使用示例连接本机数据库时请修改代码中的数据库连接信息. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论