I was preparing my company HR software product for Microsoft Platform Test for ISV in order to get Microsoft Certified Partner status.

One of the elective requirement must  be complied by our application is Requires SQL Server 2000 SP3 or later. Due to this, I wrote an simple program to parse product version (e.g. 8.00.760) and compare with other product version value.

Sample :
?dChkVer('8.00.760', '8.00.2338')              && Return 'A'
?dChkVer('8.00.760', '8.00.110')                && Return 'B'
?dChkVer('8.00.760', '8.00.760')                && Return 'S'

*)Return Value : 1. 'A' - tcVersionToCompare is later than tcVersion
*)                       2. 'B' - tcVersionToCompare is earlier than tcVersion
*)                       3. 'S' - tcVersionToCompare is same as tcVersion

FUNCTION dChkVer
LPARAMETERS tcVersion AS String, tcVersionToCompare AS String

LOCAL lnMajor AS Integer, ;
        lnMinor AS Integer, ;
        lnBuild AS Integer, ;
        lnMajor2 AS Integer, ;
        lnMinor2 AS Integer, ;
        lnBuild2 AS Integer, ;
        lnPos AS Integer, ;
        lnPos2 AS Integer, ;
        lcResult AS String

lnPos   = AT('.', tcVersion, 1)
lnPos2  = AT('.', tcVersion, 2)

lnMajor = VAL(LEFT(tcVersion, lnPos + 1))
lnMinor = VAL(SUBSTR(tcVersion, lnPos + 1, lnPos2- lnPos))
lnBuild = VAL(SUBSTR(tcVersion, lnPos2 + 1))

lnPos   = AT('.', tcVersionToCompare , 1)
lnPos2  = AT('.', tcVersionToCompare , 2)

lnMajor2= VAL(LEFT(tcVersionToCompare , lnPos + 1))
lnMinor2= VAL(SUBSTR(tcVersionToCompare , lnPos + 1, lnPos2- lnPos))
lnBuild2= VAL(SUBSTR(tcVersionToCompare , lnPos2 + 1))

DO CASE
CASE lnMajor2 > lnMajor
    lcResult = 'A'
CASE lnMajor2 = lnMajor AND lnMinor2 > lnMinor
    lcResult = 'A'
CASE lnMajor2 = lnMajor AND lnMinor2 = lnMinor AND lnBuild2 > lnBuild
    lcResult = 'A'
CASE lnMajor2 = lnMajor AND lnMinor2 = lnMinor AND lnBuild2 = lnBuild
    lcResult = 'S'
OTHERWISE
    lcResult = 'B'
ENDCASE

RETURN lcResult

If anyone has simpler way for this function and willing to share, please don't hesitate to email me. :)