初次正式写应用程序服务器,300分求技术解答,很简单的,问题解决后专门开贴给分 ( 积分: 10 )

  • 主题发起人 jinkxboy
  • 开始时间
J

jinkxboy

Unregistered / Unconfirmed
GUEST, unregistred user!
1.Remote Data Module中的ConnectString是根据配置文件生成的,如何在不能连接(密码错误或第一次使用)情况下调用连接设置,如果配置好了能继续运行最好
2.如何在其他单元设置(自动备份设置等)确定后修改Remote Data Module中的控件等等
其实综合起来就是如何在程序中访问Remote Data Module中的控件及数据
 
大哥大姐啊,发点招吧,应该成功做过三层的都会做啊
 
1。用ini文件或者xml文件来写连接设置
在Remote Data Module的Create事件中读ini或者xml文件中的配置,然后赋值给 Remote Data Module中的控件,也就相当于初始化吧。
2。其实和第一个一样,只是在设置单元中先写ini或者xml文件,然后在读出来(或者只写不读,用设置的值直接赋),在以后运行时,再去读,然后赋给Remote Data Module中的控件。设置确定后,要把连接先关闭,再打开,这样应该就可以实现了。
 
哦,是不是工程里面是没有办法直接UESR 这个Data Modual单元并使用?
所谓的"把连接先关闭"就是程序退出再重新打开吧,如果是这样的还是比较麻烦哦
如果能在同工程的其他单元
Conn.close;
Conn.connestring :='....'
conn.open;
这样就最好了,chlf6312,可以吗?
 
RemodeDateModule的Create事件中写链接数据库代码根本不会得到执行,不知道为什么,建议在DataSetProvider的OnDataRequest事件中进行链接。
1、客户端发送登陆请求,如发字符串Login:
DataModule4.ClientDataSet1.DataRequest('Login');
2、服务器的远程数据模块上DataSetProvider1在OnDataRequest事件中收到登陆请求后进行如下处理:
function TSvrModule.DataSetProvider1DataRequest(Sender: TObject;
Input: OleVariant): OleVariant;
begin
//登陆请求处理
if SameText(Input, 'login') then
begin
ReadUserNameAndPasswordFromIniFile(User,Password);
if LoginToDatabase(User, Password) then
begin
SaveUserPasswordToDatabase(User, Password);
ConnectDatabase(User, Password);
end;
end else
begin
ADOQuery1.SQL.Text:= Input;
//普通SQL请求处理
end;
end;
 
有个方法,在你的登入界面上放个adoconnection,给个变量str;String主界面登入成功后,将str:=adoconnection.ConnectString;
再在Remote Data Module中,将str赋给就可啊
 
这个问题很好解决啊,思路如下:
1.需要在不能连接时进行调用 -> 意思就是发起连接前要读配置
2.TADOConnection和TDatabase的基类TCustomConnection就有BeforeConnection事件
3.因此就在这个事件中写读配置文件的代码,然后修改连接组件的连接属性
为了程序更健壮,加一点:
连接后,如果遇到异常情况必须要重新发起数据库的连接,则只需要主动关闭数据库连接就可以了,在下次调用时会自动执行BeforeConnection事件中的代码
 
szf是高手
 

Similar threads

顶部