WEB开发网
开发学院数据库Sybase Optimizing SQL Anywhere performance over a WAN... 阅读

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

上一页  2 3 4 5 6 7 

Tags:Optimizing SQL Anywhere

编辑录入:coldstar [复制链接] [打 印]
赞助商链接