这几天帮别人写了一个数据库应用程序,使用的是已经非常熟悉的技术,就是Delphi加SQL Server2000来进行搭配,这样的程序已经做了很多,按道理应该轻车熟路的,可是在新的Win7下还是遇到了一些小的问题,经过一系列的处理解决了,觉得记录下来以备后查。
1、Win7下安装Delphi的问题
问题:在Win7下安装Delphi,我的还是64位的Win7。运行安装程序会提示程序不兼容,不能执行的情况;还有就是强制兼容安装了以后运行时报错的情况。
方法:先右键属性对安装程序进行兼容性设置,当然选择XP兼容了;再右键以管理员身份执行安装,这时的兼容提示可以不用管它,记得安装的时候不要安装在默认目录,最好分配到系统之外盘符。剩下的就一路正常了。可以安装但安装后执行错误的情况一般是因为安装时没选管理员身份,而且进行默认安装后有些目录Delphi没有权限的关系。
2、Win7下安装SQL Server的问题
问题:我的64位Win7进行安装的时候照旧提示兼容性错误,无法安装。
方法:不要直接执行安装autorun.exe进行安装,可以进目录x86/setup,执行下面的setupsql.exe来进行安装,安装前一样设置兼容性,同时右键以管理员身份执行,剩下的也就一路正常了。需要说明的是,安装好之后,默认自带的服务管理器可能由于权限的原因在我这里无法获取和控制SQL服务,这个没啥关系,可以进Win7的管理-服务中对名为 MSSQLSERVER 的服务进行设置,手动自动就随便你了。
3、Delphi中自带的Rave报表组件发布时完全汉化的问题
问题:Delphi中自带的Rave组件发布时的汉化是这样操作的:直接将Delphi7安装目录下的Rave5\Lib中的几个.dfm和.xfm中的字符串汉化,以后编译出的执行程序中的Rave组件的设置、预览、状态信息就变成中文的了,但是你会注意到这几个窗体的标题仍旧是英文的,没有完全汉化。
方法:在窗体上放置 RaveSystem 组件,在里面可以设置这三个标题,同时可以控制打印设置中用户可以选择的操作。然后将RaveProject组件的system属性指向这个RaveSystem 组件即可。
4、Delphi7自带的Rave组件中RvCustomConnection组件的使用。
以前打印报表,从来都是从头到尾,这次的项目需要一个类似银行存折中的接着上次的打印以及打印多少条的问题。为了图方便,就使用了RvCustomConnection组件来自定义数据,总结一下用法,主要涉及处理4个事件:
OnEof 判断数据是否结束,直接对参数中的Eof进行设置即可;
OnGetCols 这个是给你建立数据字段,在此可以填充指定类型、名称、宽度等信息的字段,这些字段将在Rave报表中正常可见。采用RvCustomConnection.WriteField方法;
OnGetRow 这个就是填充具体的数据了,采用组件的Write*方法进行具体数据的写入;
OnOpen 这个在报表被打开是调用,可以在此设置报表的参数,或者指定报表数据的行数。
具体报表的设计,编程时让程序先生成数据但是不执行报表(execute),之后运行程序产生数据,然后在Rave设计器中就可以看到数据了,和普通的设计一样。
5、某些精简版XP在连接SQL Server时报错误“不能装载通讯模块,驱动程序安装不正确”的问题。
问题:有的客户端可以正常使用,有的则报出上述错误
方法:通讯模块不能装载,一般要么为所需的库没有或者版本错误或者被其他程序独占打开,经检查发现缺少系统文件:C:\WINDOWS\system32\dbnetlib.dll ,从其他机器复制一个过来了事。我估计重装MDAC组件或者安装SQL客户端程序应该也可以解决,不过这个最简单,够用就好。
6、拨号上网的电脑提供SQL Server服务对外网可见
问题:拨号上网,想对外网可见一般使用动态域名,可中间再通过一个路由器就跟复杂一点了。ADSL拨号+无线路由器+SQL Server对外网可见的设置问题。
方法:前提要采用支持端口映射和自带花生壳组件的路由器。
A、设置服务器IP地址自动获取
B、设置路由中服务器电脑的IP为静态分配,给其固定一个IP
C、设置路由器中花生壳账号让其连线后自动登录
D、设置路由器中端口映射,将服务器对外端口和路由器之间的进行映射
E、路由器中再进行一些端口协议的设置,一般为安全选项,默认一般不用设置即可使用
在客户端采用花生壳给定的域名进行访问即可。
7、突破Delphi7自带的ICO图标制作工具,自己制作图标
方法:
A、做好图标的png格式,带透明通道
B、采用大小仅为200kb的PNG-to-ICO工具进行转换即可
不过这钟方式一个ico文件里面貌似只能保存一个大小的图标,要想合成可能还是需要更加专业的软件了。
另外,仅凭兴趣自学编程很多年,也做过很多和自身岗位相关的程序,但为了有更多机会练手,同时学以致用,我新开了个小店接接小程序、定制软件之类的,欢迎大家支持:
联系客服