顾炜:我想自己安装一个WEB SERVER尝试一下,有没有安装在WIN95下的服务器软件?
李海:传统的Web Server是建立在Unix上的,但现在越来越多的服务器是建立在Windows NT/95、Mac和OS/2上的。象Netscape FastTrack Server、WebSite Professional等等都支持Windows 95。如果你仅仅是尝试一下,使用Windows 95未尝不可,但如果要公开提供服务建议你选择Windows NT作为运行平台。尽管有些Windows NT下的服务器软件可以运行在Windows 95下,但微软在设计Windows 95时并未打算让其工作在高端的服务器上,所以其可靠性和安全性都要比Windows NT差很多,微软提供的Web Server方案也多是基于Windows NT的。现在,使用Windows NT作为服务器的微软站点每天都面临网络“黑客”的威胁,使用Windows 95就更令人担心了。
pub@pub.dl...:我上网时常常是断断续续的,不知能否建立一个记录每一次连接时间的日志文件以便我掐着时间上网?
李海:可以记录上网时间的软件有很多,www.tucows.com是一个专门收集与Internet有关的软件的站点,其中有一个专门的软件分类Time Log,这些软件都是用来记录上网时间。除了记录时间,这些软件的功能一般都比较多,比如可以定义全价和半价时间、自动拨号等等。Tucows给每个软件都有一个评级,用牛来表示,5头牛最好,1头牛最差,Tucows只收集3头牛以上的软件。我个人比较喜欢Connect Time Monitor ,这是一个5头牛的软件。你不必去www.tucows.com下载,因为湖南省数据通信局建立了一个镜像服务器http://tucows.hnpta.net.cn/,他们更新得比较及时,你可以从那里下载。
顾炜 :建立一个中等规模的搜索引擎,用什么软件好?用什么编程?请详细介绍一下IIS下的idc编程。
李海:简单的搜索引擎实际就是一个数据库查询系统。目前各个数据库厂商都有能力提供其产品通过Internet查询(或称为出版)的能力,所以可以首先考虑你使用的数据库厂商提供的方案。对于中等规模的搜索引擎,微软的Internet Information Server(IIS)是一个可以考虑的软件。这个软件是为Windows NT 4.0设计的,它可以直接从微软的主页上免费下载,同时它也包括在某些版本的Windows NT ServicePack软件包中。使用这一产品的最大优点是它同微软的其他产品结合得非常好。比如Visual FoxPro 5.0包括WWW Search Page Wizard,它可以直接由Visual FoxPro 5.0数据库系统生成IIS所需的Internet Database Connector(IDC)描述文件和HTML样本文件(.htx)。其他的微软产品,如Visual Basic 5.0、Access 97和FrontPage 97等等软件也有类似的工具。一个典型的搜索过程是这样的:首先由用户输入要查询的关键字和条件,浏览器将这些数据使用HTTP的POST方法传递给服务器的IDC,IDC将其转换为结构化查询语言SQL,然后由后台的ODBC程序(它可能是Visual FoxPro的程序、SQL Server,也可能是其他支持ODBC的软件)进行查询并返回结果,IIS使用.htx文件作为模板将结果以HTML格式传回,最后浏览器将其显示在用户的屏幕上。采用这种模式,你可以使用你熟悉的语言进行数据库编程。如果你使用Visual Basic 5.0或Visual C++ 5.0,也可以考虑ActiveX Data Objects(ADO),当然前提是用户的浏览器应该能支持ActiveX技术。
采用上面所说的方法要求数据必须满足一定的格式,这比较适合已有的数据库系统。在IIS中集成了一个高级搜索工具Index Server,它不限制数据的格式,可以直接搜索网络上的所有文件,包括Word、Excel、PowerPoint等,甚至可以搜索Internet newsgroup (NNTP)的文章。其搜索方式也很多,象全文搜索,按标题、作者搜索,复杂的布尔条件搜索。它使用增强的IDQ文件代替IDC文件。后台一般也不必使用ODBC程序。如果你想知道Index Server最新的发展,可以访问http://www.microsoft.com/iis。
限于篇幅,我们不可能详细地介绍每种方法编程的细节。这方面内容的发展也是比较快的,你可以从微软的技术文献、主页得到更多的资料。
lannyking:我用Delphi在Windows 95下开发面向客户/服务器的档案管理系统,想知道如何通过程序在客户端获取当前服务器上记录的记录号。服务器上的操作系统是Windows NT 4.0 Server中文版,客户端是Windows 95中文版,数据库建立系统是MS-SQL 6.5。
李海:我们知道Delphi的TTable、TQuery和TStoredProc部件都有个RecNo属性,它是当前记录在数据集(dataset)中的记录号。不过,这个属性只有对于dBASE和Paradox才是有意义的,而对于MS SQL Server它总为-1。这是因为记录号是个xBASE的概念,而对于大多数SQL服务器来说,都没有概念,通常一个记录在客户机查询结果的顺序号并不是该记录在当前服务器上记录的记录号(这里的记录号是按xBASE的概念)。所以直接让MS SQL Server 返回一个记录号是不可能的,只能根据实际需要采用一些变通的办法。例如,如果需要一个唯一的表示记录的标志,可以考虑使用数据库的主索引的值,因为MS SQL Server 不允许有两个记录有相同的主索引值。或者采用商品的编号、人的身份证号。如果采用循环顺序访问记录,那么循环变量也许最接近于记录号。由于你没有说明具体的用途,我们也只能提出这些建议供你参考。
广西 彭建良:Windows 95 OSR2到底能否及怎样与DOS 6.22共存?需注意什么问题?
李海:Windows 95 OEM Service Release 2(OSR2, 有一段时间传媒称之为Windows 96或95b)同以前的Windows 95和MS-DOS最大的区别是它提供了新的文件系统FAT32,它可以在2G的硬盘上仍使用只有4k的簇,这样可以节省大量的磁盘空间,而且它可以支持多达2T(1T=1000G)的磁盘系统,以及更好的鲁棒性和灵活性。Windows 95 OSR2为此修改了它的Format, FDISK, Defrag和ScanDisk。FAT32系统也将用于即将推出的Windows 98。FAT32系统尽可能保证同一般的应用程序的兼容性,它也可以将FAT系统转化为FAT32系统,但FAT32不能被以前的Windows 95和MS-DOS识别。这意味着即使你能从DOS 6.22启动,它也不能识别FAT32文件系统。为Windows 95设计的Norton Utilities也不能使用了。FAT32卷也不能被DriveSpace或DriveSpace 3压缩。所以从目前的情况来看,一旦你使用了FAT32系统,你就不能再使用DOS 6.22。考虑到兼容性,微软仍然允许从实模式启动Windows OSR2,但此时的DOS版本为7.1。
如果你没有使用FAT32系统,那么你还是有可能使用DOS 6.22的。Windows 95 OSR2安装时会提示你它将删除先前的Windows 95和MS-DOS,但实际上你仍然可以使用F4键启动先前的DOS版本,但你千万别这么做,因为这样你将无法启动Windows 95 OSR2了。Windows 95 OSR2的分区同MS-DOS的分区有一些差异,所以你需要先下载一个叫W95Boot的免费软件,地址是http://www6.zdnet.com/cgi-bin/texis/swlib/hotfiles/info.html?link=1&fcode=000H0Z, 如果你嫌这个地址太长,也可以到http://www.hotfiles.com去搜索W95Boot。这个软件可以消除分区方面的问题。在使用该软件前,一定要仔细地阅读一下说明文件。
如果你的Windows 95 OSR2是预装在机器中的,你可以在My Computer的Properties中看一下采用的是FAT,还是FAT32。如果是FAT32,而你又想使用DOS-6.22,那么你需要重新分区。方法是:启动FDISK,在它问你是否使用新的文件系统时,回答No,建立分区后重新安装DOS 6.22和Windows 95 OSR2。
最后提醒你一句,在对硬盘动“手术”之前,一定要备份好数据。
贵阳 杨健:我使用中文 VFP 3.0 编写了一个人事管理软件,其中要显示人员照片,但是我在多次浏览不同的人员照片(约100次)后,图象就会显示得越来越慢,最终提示“内存不足”,我是将图象文件名链接在PICTURE 属性中的,请问如何解决这个问题?在 VFP 3.0 中显示图象应注意哪些方面?
李海:我猜测你是在Windows 3.x下进行开发的。如果是这样,那么内存不足的原因就比较明确了。在Windows 3.x下,用于存储系统内部资源(如各种句柄、图形设备描述)的内存只有2个64K,所以如果一个程序过多地占用系统资源或在使用系统资源后没有释放资源都有可能使Windows出现你所说的症状,实际上这是因为2个64K用完了,即使你拥有再多的内存也解决不了问题,这是Windows 3.x的缺陷。除了上述症状外,一般在这种情况下如果你切换至程序管理器,你会发现图标已无法显示,汉字出现大量乱码。如果你使用的是中文版的Windows,出现类似问题的机会将数倍于英文版,我一直怀疑微软在汉化Windows时有严重的技术错误。这种情况很少出现在Windows 95中,因为Windows 95扩大了系统资源的存储区,并且采取了一些技术措施自动回收一部分系统资源。所以如果你的确使用的是Windows 3.x,可以考虑在Windows 95下运行软件,若症状消失,则问题可能在Windows或VFP方面。我对微软的站点进行了搜索,没有发现这方面的BUG报告,所以VFP出现问题的可能性不太大,当然不排除汉化VFP时加入了新的BUG。
由于你没有提供程序代码,所以我们也不能排除你程序的问题。你可以仔细地检查一下代码,看有没有出现过度使用系统资源的情况。你说“将图象文件名链接在PICTURE 属性中的”,我分析你大概是使用的Image控制,如果不是,请改用Image控制,因为这种控制比较节省内存,这是VFP 3.0 中显示图象应注意的一个问题。
在没有找到问题根源之前,你也可以使用一种变通的解决方案。不要在每次浏览时都显示图片,而是提供一个按钮,如果用户对照片感兴趣时,按下按钮,就显示相应的图片,当记录移动时,自动关闭窗口。这种方法虽然没有你原来的方法好看,但更为实用。我们在进行人事管理方面的工作时,可能更注意人员的经历和学历等方面的内容,而不是每次都关心人的长相。采用此种方案既可以满足看照片的需要,又不至于使系统出问题。虽然有“一图胜千言”的说法,但对于人事系统不见得如此,而过多的使用图形是使程序变慢的“最佳”途径。当然如果你编写的是一个犯罪分子记录程序或电脑红娘软件,就另当别论了。
在回答完这个问题,我感到有点遗憾:在回答中我采用大量的假设。所以我建议读者在提出问题时请尽可能详细,比如采用的机型、操作系统、系统的软硬件设置,如果是程序设计方面的问题,最好提供一些代码供我们参考(如不愿意发表代码,可以注明)。读者提供的信息越具体,我们的回答也越准确,否则难免有盲人摸象之嫌。
如果您有任何建议,请给我发电子邮件:
。
版权所有 李海,热情软件屋 1997-2006