4 |
The LA Fox Developer Newsletter
|
ADO J urn psta rt
(Cony from page 3)
cChars
=
For nDigit
=
I To Len(cBin)
nBin
=
Asc(Substr(cBin, nDigit,
1))
cChars
=
cChars
+
Thls.Hex2Char(Int(nBinhl6))
+
This.Hex2Char(Mod(nBin,16))
EndFor
Return(cChars)
EndProc
Protected Procedure hex2char(nHex)
Local nAsc
Do Case
Case Between(nHex,0,9)
nAsc =48
+
nHex
Case Between(nHex,10,15)
nAsc
=
65
+
nHex
-
10 EndCase
Return(Chr(nAsc))
EndProc
Procedure import(cString)
With This
.Datal
=
Left(cString, Len(.Datal))
cStrlng
=
SubStr(cStrlng, Len(.Datal)+1)
.Data2
=
Left(cString, Len(.Data2))
cStrlng
=
SubStr(cString, Len(.Data2)+1)
.Data3
=
Left(cString, Len(.Data3))
cString
=
SubStr(cString, Len(.Data3)+1)
.Data4
=
Left(cString, Len(.Data4)) EndWith
Return cString
EndProc
Protected Procedure export
With This
.Datal
=
Space(4)
.Data2
=
Space(2)
.Data3
=
Space(2)
.Data4
=
Space(8) End With
Return(This.Datal
+
This.Data2
+
This.Data3
+
This.Data4)
EndProc
Protected Procedure Convert(cGuid)
•I This method makes the call to the BinToHex that
With This
cGuid
=
.BinToHex(.Datal)
+
“-“
+
.BinToHex(.Data2)
+
“-“
|
May 2000
.BlnToHex(.Data3)
+
“-“
+
.BlnToHex(.Data4)
Return cGuid
Endwith
EndProc
Procedure
Init
Declare Integer UuidCreate
In c:\Winnt\System32\RPCRT4.DLL String
@
UUID Return
EndProc
EndDefine
Output is produced as follows:
Disconnected/Persisted Recordsets
One of the most powerful features of ADO is the ability to create both disconnected and persisted recordsets. A disconnected recordset is a client-side recordset that does not have a current ActiveConnection. SQL data sources, such as SQL Server, Oracle, and so on, are licensed according to the number of concurrent connections. For example, the number of people that using an application connected to SQL Server is 300. However, it has been determined that at any time, only 50 users actually use the services of a connection. A connection is needed only when data is being requested, updates are made, or a stored procedure on the database server is invoked. From a financial standpoint, it is far less expensive for a company to only purchase 50 licenses than to purchase 300. From a resource standpoint, performance should improve because the server only has the overhead of 50 connections instead of 300, of which 250 are idle at any time.
Using the ADO recordset of customer data already created, the following code disconnects the client-side recordset:
oRecordSet.ActiveConnection
=
Null
If you attempt to do this with a server-side recordset, an error occurs stating that the operation is not allowed on an open recordset. Once the recordset is disconnected, you can continue to work with and modify records. The following code will work:
oRecordset.MoveFirst
Do While loRecordset.Eof
?oRecordset. FieIds(”companyname”).Value
oRecordset.Fields(”companyname”).Value
=
Upper(oRecordset.FieIds(”companyname”).Value)
oRecordset.MoveNext
EndDo
With
modified records in a client-side recordset, three basic options exist.
|
Page 4
|
4 |