Option Explicit

Const dbDriverNoPrompt = 1
Const dbUseODBC = 1
Const dbOpenDynamic = 16

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

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

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

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

Set DAO = CreateObject("DAO.DBEngine.36")

Set W = DAO.CreateWorkspace("myODBC", "", "", dbUseODBC)

Set C = W.OpenConnection("", dbDriverNoPrompt, False, ConnectStr)

C.Execute "DROP TABLE IF EXISTS `xtest`;"

C.Execute "CREATE TABLE  `xtest` (" & _
               "  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT," & _
               "  `MEMO1` longtext NOT NULL," & _
               "  PRIMARY KEY (`ID`) USING BTREE" & _
               ") ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;"

'INSERT TEST DATA. 
C.Execute "INSERT INTO xtest (MEMO1) Values('ABCDEFGHIJKLMNOPQRSTUVWXYZ');"
C.Execute "INSERT INTO xtest (MEMO1) Values('1234');"

'Run query so memo field with smallest length is in the last record.
WScript.echo "Run query so memo field with smallest length is in the last record."
Set R = C.OpenRecordset("Select * from xtest order by ID", dbOpenDynamic)
WScript.echo "ID=" & R.Fields("ID").Value & vbtab & "MEMO=" & R.Fields("MEMO1").Value & vbtab & "LENGTH=" & Len(R.Fields("MEMO1").Value)
R.MoveNext
WScript.echo "ID=" & R.Fields("ID").Value & vbtab & "MEMO=" & R.Fields("MEMO1").Value & vbtab & "LENGTH=" & Len(R.Fields("MEMO1").Value)
R.Close

'Reverse order so memo field with largest length is in the last record.
WScript.echo "Reverse order so memo field with largest length is in the last record."
Set R = C.OpenRecordset("Select * from xtest order by ID DESC", dbOpenDynamic)
WScript.echo "ID=" & R.Fields("ID").Value & vbtab & "MEMO=" & R.Fields("MEMO1").Value & vbtab & "LENGTH=" & Len(R.Fields("MEMO1").Value)
R.MoveNext
WScript.echo "ID=" & R.Fields("ID").Value & vbtab & "MEMO=" & R.Fields("MEMO1").Value & vbtab & "LENGTH=" & Len(R.Fields("MEMO1").Value)


R.Close
C.Close
