Hi Aleksey
My mistake I had told the tech. support at ADS that it was a problem with the connection type. So why I said UNICODE here I do not know. I guess headcolds and testing are not a good combination.
Another questions is does the cursoradpater class use early binding for ADO? I began all this testing to find a way to speed up the cursoradpater class with ADO over the Internet.
Below is the code I used for early binding.
Thanks,
Simon
Local lnSec1,lnSec2,lnSec3,lnSec4,lnSec5,loDI,loCI
Local loC As ADODB.Connection
Local loD As ADODB.RecordSet
lnSec1=Seconds()
loC=CreateObjectEX("ADODB.Connection","","")
loCI=GetInterface(loC,"_Connection")
loCI.ConnectionString="Provider=Advantage OLE DB Provider; Data Source=\\server1\apps\ads\FOPro.add; User ID=adssys; Password=teeka;"
loCI.CursorLocation=2
loCI.Open
lnSec2=Seconds()
loD=CreateObjectEX("ADODB.RecordSet","","")
loDI=GetInterface(loD,"_RecordSet")
loDI.Open("Select * From UPDatDic",loCI,0,3)
lnSec3=Seconds()
Use dbf\updatdic
Copy Structure to tmp\updatdic
Use tmp\UPDatDic
With loDI.Fields
lnSec4=Second()
loAllowNull=.Item("AllowNull")
loAType=.Item("AType")
loAutoInc=.Item("AutoInc")
loBackColor=.Item("BackColor")
loBoundCol=.Item("BoundCol")
loCDXFilter=.Item("CdxFilter")
loCDXKey=.Item("CDXKey")......
>Hi Simon,
>
>>Early binding gave a small increase in speed but not enough to make it worthwhile.
>>
>Did you use early binding (GETINTERFACE) for Fields objects? Did you store early-bound Field instances into vars before the read loop?
>
>>So I guess it must be due to the UNICODE conversions.
>>
>
>I don't think this is the case. Assuming you ran your tests on the same set of data, the following run already includes all the costs associated with calling ADO objects from VFP (binding, Unicode translation, etc.)
>
>Remote Server (MSSQL) - Client Side Cursor Task Time
> Open ADO Connection 0.015 0.094 0.015
> Open ADO RecordSet 0.266 0.266 0.281
> Insert Records 0.828 0.813 0.829
>
>
>Going against different connection shouldn't significantly affect those costs. Therefore, the perf degradation for the following run can be explained only by the fact that ADO/OLEDB works slower for this connection+type of cursor. Did you use server side, read-only, forward-only cursor for this run?
>
>
>Internet Server (ADS) - Server Side Cursor Task Time
> Open ADO Connection 5.34 4.765 27.347
> Open ADO RecordSet 0.346 0.282 0.272
> Insert Records 113.102 128.245 131.751
>
>
>If you want to compare performance with VB6, comparison with MSDatGrd isn't really valid here, you are not measuring time for the same set of operations. MSDatGrd may not retrieve all the data, etc.
>
>Aleksey.
Simon White
dCipher Computing