We can take this a step further, if you want just the drivers and to be "registered" you can do the following:
Code:

FUNCTION MYSQLODBCDRIVER()
DIM $sourcepath,$connkey,$driver,$regkey,$x
$sourcepath=@ldrive+'\programs'
$connkey = "HKCU\Software\ODBC\ODBC.INI\"
$driver = "%windir%\System32\myodbc3.dll"
$regkey = "HKLM\Software\ODBC\ODBCINST.INI\MySQL ODBC 3.51 Driver"

IF NOT Exist("%windir%\system32\myodbc3.dll")
COPY $sourcepath+"myodbc3.dll" "%windir%\system32\myodbc3.dll"
ENDIF
IF NOT Exist("%windir%\help\my3dsn.hlp")
COPY $sourcepath+"my3dsn.hlp" "%windir%\help\my3dsn.hlp"
ENDIF
IF NOT Exist("%windir%\system32\myodbc3d.dll")
COPY $sourcepath+"myodbc3d.dll" "%windir%\system32\myodbc3d.dll"
ENDIF
IF ReadValue("HKLM\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers","MySQL ODBC 3.51 Driver")<>"Installed"
$x=WriteValue("HKLM\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers","MySQL ODBC 3.51 Driver","Installed","REG_SZ")
ENDIF
IF ReadValue($regkey,"UsageCount")<>12
$x=WriteValue($regkey,"UsageCount",12,"REG_DWORD")
ENDIF
IF ReadValue($regkey,"Driver")<>"%windir%\System32\myodbc3.dll"
$x=WriteValue($regkey,"Driver","%windir%\System32\myodbc3.dll","REG_SZ")
ENDIF
IF ReadValue($regkey,"Setup")<>"%windir%\System32\myodbc3.dll"
$x=WriteValue($regkey,"Setup","%windir%\System32\myodbc3.dll","REG_SZ")
ENDIF
IF ReadValue($regkey,"APILevel")<>2
$x=WriteValue($regkey,"APILevel",2,"REG_SZ")
ENDIF
IF ReadValue($regkey,"ConnectFunctions")<>"YYN"
$x=WriteValue($regkey,"ConnectFunctions","YYN","REG_SZ")
ENDIF
IF ReadValue($regkey,"DriverODBCVer")<>"03.51"
$x=WriteValue($regkey,"DriverODBCVer","03.51","REG_SZ")
ENDIF
IF ReadValue($regkey,"FileUsage")<>0
$x=WriteValue($regkey,"FileUsage",0,"REG_SZ")
ENDIF
IF ReadValue($regkey,"FileExtns")<>"*.txt"
$x=WriteValue($regkey,"FileExtns","*.txt","REG_SZ")
ENDIF
IF ReadValue($regkey,"SQLLevel")<>1
$x=WriteValue($regkey,"SQLLevel",1,"REG_SZ")
ENDIF
IF ReadValue($regkey,"CPTimeout")<>60
$x=WriteValue($regkey,"CPTimeout",60,"REG_SZ")
ENDIF
IF ReadValue($regkey,"DNSHelpFile")<>"%windir%\help\my3dsn.hlp"
$x=WriteValue($regkey,"DNSHelpFile","%windir%\help\my3dsn.hlp","REG_SZ")
ENDIF
IF ReadValue("HKLM\Software\ODBC\ODBCINST.INI\ODBC Core","UsageCount")<>1
$x=WriteValue("HKLM\Software\ODBC\ODBCINST.INI\ODBC Core","UsageCount",1,"REG_DWORD")
ENDIF
ENDFUNCTION



If you need to create just the ODBC connector, provided the drivers are installed - above, then you can do the following (note: the $user parameter added for adding a global or system-wide DSN):
Code:

FUNCTION MYSQLODBC($dsn, $description, $option, $sourcepath, OPTIONAL $user, OPTIONAL $dbname,
OPTIONAL $pwd, OPTIONAL $port, OPTIONAL $server, OPTIONAL $stmt, OPTIONAL $user)
DIM $w,$connkey
IF $user
$connkey = "HKCU\Software\ODBC\ODBC.INI\"
ELSE
$connkey = "HKLM\Software\ODBC\ODBC.INI\"
ENDIF
IF ReadValue($connkey+"ODBC Data Sources",$dsn)<>"MySQL ODBC 3.51 Driver"
$w=WriteValue($connkey+"ODBC Data Sources",$dsn,"MySQL ODBC 3.51 Driver","REG_SZ")
ENDIF
IF ReadValue($connkey+$dsn,"Description")<>$description
$w=WriteValue($connkey+$dsn,"Description",$description,"REG_SZ")
ENDIF
IF ReadValue($connkey+$dsn,"Database")$DatabaseName
$w=WriteValue($connkey+$dsn,"Database",$dbname,"REG_SZ")
ENDIF
IF ReadValue($connkey+$dsn,"Driver")<>$driver
$w=WriteValue($connkey+$dsn,"Driver",$driver,"REG_SZ")
ENDIF
IF ReadValue($connkey+$dsn,"Option")<>$option
$w=WriteValue($connkey+$dsn,"Option",$option,"REG_SZ")
ENDIF
IF ReadValue($connkey+$dsn,"Password")<>$pwd
$w=WriteValue($connkey+$dsn,"Password",$pwd,"REG_SZ")
ENDIF
IF ReadValue($connkey+$dsn,"Port")<>$port
$w=WriteValue($connkey+$dsn,"Port",$port,"REG_SZ")
ENDIF
IF ReadValue($connkey+$dsn,"Server")<>$server
$w=WriteValue($connkey+$dsn,"Server",$server,"REG_SZ")
ENDIF
IF ReadValue($connkey+$dsn,"Stmt")<>$stmt
$w=WriteValue($connkey+$dsn,"Stmt",$stmt,"REG_SZ")
ENDIF
IF ReadValue($connkey+$dsn,"User")<>$user
$w=WriteValue($connkey+$dsn,"User",$user,"REG_SZ")
ENDIF
ENDFUNCTION



HTH,

Kent


Edited by kdyer (2005-05-03 08:59 PM)
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's