怎样更新客户端? (45分)

  • 主题发起人 主题发起人 陈桂坚
  • 开始时间 开始时间

陈桂坚

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个C/S结构的程序(DELPHI5.0+MSSQL2000);
程序中包括很多DLL文件,我在服务器中更新了一些DLL文件,客户端怎样适别我在服务器中更新了哪些DLL,然后把更新了的DLL文件从服务器中下载到客户端?
我试过INI文件来配置,但效果不好~~最好给出代码~~~

 
既然是C/S结构,完全可以考虑充分使用数据库的功能呀。
在服务器上设置一个表就可以了,程序启动的时候检测各个DLL的版本号,不合适的话就更新。
顺便说一句,更新都可以采用从数据库中Download的方式而不是采用文件复制的方式。
 
能说得更明白一点吗??
把修改时间存到数据库里面???
 
不是存储修改时间,是存储DLL的文件名和版本号。
对于Exe和DLL可以获得其版本号的。类似于以下代码

{-------------------------------------------------------------------------------}
{获取版本文件}
function GetBuildInfo: String;
var
VerInfoSize: DWORD;
VerInfo: Pointer;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;

begin
VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
VerQueryValue(VerInfo, '/', Pointer(VerValue), VerValueSize);

if VerValue = nil then
begin
Result := '0';
FreeMem(VerInfo, VerInfoSize);
Exit;
end;

Result := IntToStr(VerValue^.dwFileVersionMS shr 16) + '.' +
InttoStr(VerValue^.dwFileVersionMS and $FFFF) + '.' +
IntToStr(VerValue^.dwFileVersionLS shr 16) + '.' +
IntToStr(VerValue^.dwFileVersionLS and $FFFF);
FreeMem(VerInfo, VerInfoSize);
end;
 
好帖!楼上的
 
后退
顶部