Optimizing SQL Anywhere performance over a WAN
2006-07-30 23:15:13 来源:WEB开发网核心提示: PCAnyWhere的使用非常简单,它的使用方法在网上有非常详细的介绍,Optimizing SQL Anywhere performance over a WAN(7),我就不再多说,我介绍一下利用VB驱动PCAnyWhere的方法,秘密全在其中,ATF的系统文件格式如下:04 40 41 54 46 01 00
PCAnyWhere的使用非常简单,它的使用方法在网上有非常详细的介绍,我就不再多说,我介绍一下利用VB驱动PCAnyWhere的方法。
在我的一个项目中有特别的应用,有五个处于不同地方的计算机,有实时数据采集文件,我需要定时拔号上去,将上面的数据文件下载下来,这些数据文件随时间的不同就有不同,所以没有办法做固定的自动文件传输,为此我分别研究了软件提供script与OLE白皮书,最终决定选用OLE。
一、利用OLE进行远程连接
在OLE白皮书上,将OLE驱动写得十分明白,我只要将我的连接代码帖上来,应该十分明白。
1、 检查MODEM是否在使用,由于PCAnyWhere启动后不能再由程序控制,我们必须检查MODEM是否是空闲才能确保拔号可以顺利外拔。检查MODEM空闲可能通过打开MODEM所在的串口是否成功来判断。
2、 生成RemoteDataManager对象
3、 进入C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere,由于 PCAnyWhere安装时将配置文件都放在这个目录下,我们将运行路径切换到这个目录下,可以更方便地使用。
4、 生成RemoteData对象,这要求在配置文件路径下有对应CHF文件上,这是在PCAnyWhere中配置的,只要名称与连接方式相同就可以了。
5、 设置拔号的电话号码,设置登录的用户名与密码,设置进行自动传输的ATF文件,并将RunOnConnect设为TRUE,并将这此配置的修改进行保存。
6、 开始拔号并自动传输文件。
7、 延时,判断MODEM是否空闲,空闲则这一次拔号、文件传输完毕(也有可能失败)。判断已下载的文件,如果修改时间已更新,则这次是成功的。否则是失败的。
8、 将RemoteData、RemoteDataManager对象释放。
9、 拔下一个点。
If checkMODEMIdle Then
showBegin 注释:显示开始信息
注释:Create CRemoteDataManager object
Set RemoteDataManager = CreateObject("WINAWSVR.RemoteDataManager")
RemoteDataManager.ChangeDirectory "C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere"
S = RemoteDataManager.CurrentDirectory()
CHFile = xProfile.GetValue(WatchPoint(nowRunID), "CHFFILE") 注释:用于拔号的配置
Set RemoteData = RemoteDataManager.RetrieveObject(CHFile, 2, 0)
RemoteData.PhoneNumber = xProfile.GetValue(WatchPoint(nowRunID), "PHONENUM")
RemoteData.AutoXferFile = filename
RemoteData.AutoLoginName = xProfile.GetValue(WatchPoint(nowRunID), "USERNAME")
RemoteData.AutoLoginPassword = xProfile.GetValue(WatchPoint(nowRunID), "PSW")
RemoteData.RunOnConnect = True
RemoteData.WriteObject (0)
S = RemoteData.PhoneNumber
RemoteData.Launch
Sleep 30000
Do
If checkMODEMIdle Then Exit Do
DoEvents
Sleep 5000
Loop
注释:取文件结束,要进行转存处理
moveDBFData localpath
Set RemoteData = Nothing
Set RemoteDataManager = Nothing
nowRunID = nowRunID + 1
End If
注意:一次完毕后必须将RemoteData、RemoteDataManager对象释放,不然会出现错乱的现象。
好了,拔号自动文件传输已经实现了,但这个文件传输是在PCANYWHERE中配置好的不变的自动文件传输,不能实现我要的根据时间不同下载不同文件的要求。
二、动态生成自动文件传输文件
为了动态生成自动文件传输,自然要修改自动文件传输文件的配置,可OLE中没有给出这方面的功能,我不得不另辟蹊径了。
用文本编辑器打开ATF文件(自动文件传输文件),发现全是乱码,只有路径可以识别。灵机一动用UltraEdit-32打开并用十六进制打开,哈,秘密全在其中。
ATF的系统文件格式如下:
04 40 41 54 46 01 00 01 01 00 01 01 01 01 00 01 注释:第八位:00表示增量下载,01全部重新下载
00 00 00 00 00 00 00 01 00 FF FF 00 00 11 00 43 注释:第八位:00表示文件传输完毕后不挂断,01表示文件传输完毕后不挂断言 C
Tags:Optimizing SQL Anywhere
编辑录入:coldstar [复制链接] [打 印]- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接