Option Explicit

Const adOpenKeyset = 1
Const adLockOptimistic = 3

Dim SQL
Dim W, C, R
Dim MysqlHost, MysqlPwd, MysqlUID, MysqlDB
Dim ConnectStr, DriverStr
Dim dNum

MysqlHost = ""
MysqlUID  = ""
MysqlPwd  = ""
MysqlDB   = ""

'DriverStr = "MySQL ODBC 3.51 Driver"
DriverStr = "MySQL ODBC 5.1 Driver"

ConnectStr = "SERVER=" & MysqlHost & ";DRIVER=" & DriverStr & ";PWD=" & MysqlPwd & ";DATABASE=" & MysqlDB & ";UID=" & MysqlUID

'Open Connection
Set C = CreateObject("ADODB.Connection")
C.Open ConnectStr

'Create test table
C.Execute "DROP TABLE IF EXISTS `xtest`;"
C.Execute "CREATE TABLE  `xtest` (" & _
               "  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT," & _
               "  `D1` double NOT NULL," & _
               "  PRIMARY KEY (`ID`) USING BTREE" & _
               ") ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;"



'NOTE: This double works OK
'dNum = CDbl(510000.257514293)

'Create a record with a 'problem' double
dNum = CDbl(510000.257514292)
Set R = CreateObject("ADODB.Recordset")
R.Open "Select * from xtest where ID=-1", C, adOpenKeyset, adLockOptimistic
R.AddNew
R.Fields("D1").Value = dNum
R.Update
R.Close

'Re-Find record using ID. and display contents of double
R.Open "Select * from xtest where ID=1", C, adOpenKeyset, adLockOptimistic
If R.EOF = False Then
  WScript.echo "Record found using ID. D1=" & R.Fields("D1").Value
Else
  WScript.echo "Record NOT found using ID."
End If
R.Close

'Now re-find using the double. The record will NOT be found.
R.Open "Select * from xtest where D1 = " & dNum, C, adOpenKeyset, adLockOptimistic
If R.EOF = False Then
  WScript.echo "Record found using D1. D1=" & R.Fields("D1").Value
Else
  WScript.echo "Record NOT found using D1=" & dNum
End If



R.Close
C.Close
			   
