在学习或在开发DATASNAP/REST三层应用中,发现网上的教程,都是用向导完成框架。
这有一个比较致命的问题。用户的服务器和客户机只能用我们开发时指定的名称。比方说,我们设计时DATASNAP SERVER所在的主机名为WIN7SERVER ,用向导生成DATASNAP CLIENT时,需要输入WIN7SERVER这个名称进去。软件开发完成后,这个WIN7SERVER这个名称就被带到用户那里。但是用户的服务器主机不可能也不必要一定要用这个WIN7SERVER这个名字。用户会根据自己的喜好和实际情况输入datasnap SERVER 主机名 。
下图是DATASNAP SERVE端的:
服务端可以把SQLCONNECTION参数保存在FDConnectionDefs.ini文件里,启动服务端时读入就行。
也可如下代码
IniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'\CONFIG.CFG');
if R_SQLServer.Checked then
begin
IniFile.WriteString('SQLSERVER','IP',E_IP.Text);
IniFile.WriteString('SQLSERVER','PORT',E_PORT.Text);
IniFile.WriteString('SQLSERVER','USER',E_USER.Text);
。。。。。。。。
IniFile.WriteString('SQLSERVER','PASS',E_PASS.Text);
IniFile.WriteString('SQLSERVER','DB',E_DB.Text);
IniFile.WriteString('CONFIG','DBTYPE','0')
end
在启动时读取INI文件,赋值给SQLCONNECTION就行。
下图是
datasnap client:
其中HostName是开发人员设计输入的,我想问的是,如何让用户首次使用软件时,自己输入?
即我想让用户自己输入并保存到文件里,下次启动时从该文件里读取参数,并连接到DATASNAP SERVER 。