Reverse engineering a MySQL database using MyODBC and Visio

Y

yk63fd01

Hello group,

I'm trying to get Visio to produce a data model diagram of an existing
MySQL database. I'm able to connect to the database properly from the
ODBC Administrator (utilizing MyODBC's "Test" function). However, from
within Visio, the connection fails. I'm selecting the same data source
in Visio as the one that passes MyODBC's test from the ODBC Admin.

After Visio fails, ODBC Admin can no longer pass that test. I've
restarted the MySQL daemon between each attempt to connect to make sure
that the server isn't getting messed up by Visio's attempt.

Attached to this message is an excerpt from the SQL.log file which
shows ODBC Admin success, Visio failure, ODBC Admin failure, and
finally Excel failure.

Any help would be greatly appreciated.



---- ATTACHMENT BELOW ----

--------------------------------------------------------
---- Successful ODBC Administrator connect follows ----

odbcad32 bd8-bb4 ENTER SQLAllocHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 00000000
SQLHANDLE * 0007D644

odbcad32 bd8-bb4 EXIT SQLAllocHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 00000000
SQLHANDLE * 0x0007D644 ( 0x009c1540)

odbcad32 bd8-bb4 ENTER SQLSetEnvAttr
SQLHENV 009C1540
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 0x00000003
SQLINTEGER 0

odbcad32 bd8-bb4 EXIT SQLSetEnvAttr with return code 0
(SQL_SUCCESS)
SQLHENV 009C1540
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 0x00000003 (BADMEM)
SQLINTEGER 0

odbcad32 bd8-bb4 ENTER SQLAllocHandle
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 009C1540
SQLHANDLE * 0007D648

odbcad32 bd8-bb4 EXIT SQLAllocHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 009C1540
SQLHANDLE * 0x0007D648 ( 0x009c15e8)

odbcad32 bd8-bb4 ENTER SQLDriverConnectW
HDBC 009C15E8
HWND 00000000
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

odbcad32 bd8-bb4 EXIT SQLDriverConnectW with return code 0
(SQL_SUCCESS)
HDBC 009C15E8
HWND 00000000
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

odbcad32 bd8-bb4 ENTER SQLDisconnect
HDBC 009C15E8

odbcad32 bd8-bb4 EXIT SQLDisconnect with return code 0
(SQL_SUCCESS)
HDBC 009C15E8

odbcad32 bd8-bb4 ENTER SQLFreeHandle
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 009C15E8

odbcad32 bd8-bb4 EXIT SQLFreeHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 009C15E8

odbcad32 bd8-bb4 ENTER SQLFreeHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 009C1540

odbcad32 bd8-bb4 EXIT SQLFreeHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 009C1540

odbcad32 bd8-bb4 ENTER SQLAllocHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 00000000
SQLHANDLE * 0007D644

--------------------------------------------------------
---- Failed Visio connect follows ----

VISIO 1b0-218 ENTER SQLAllocHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 00000000
SQLHANDLE * 00BBF81C

VISIO 1b0-218 EXIT SQLAllocHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 00000000
SQLHANDLE * 0x00BBF81C ( 0x02981540)

VISIO 1b0-218 ENTER SQLSetEnvAttr
SQLHENV 02981540
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 0x00000002
SQLINTEGER 0

VISIO 1b0-218 EXIT SQLSetEnvAttr with return code 0
(SQL_SUCCESS)
SQLHENV 02981540
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 0x00000002 (BADMEM)
SQLINTEGER 0

VISIO 1b0-218 ENTER SQLAllocHandle
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 02981540
SQLHANDLE * 00359698

VISIO 1b0-218 EXIT SQLAllocHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 02981540
SQLHANDLE * 0x00359698 ( 0x029815e8)

VISIO 1b0-218 ENTER SQLDriverConnectW
HDBC 029815E8
HWND 000404C0
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 3 <SQL_DRIVER_COMPLETE_REQUIRED>

VISIO 1b0-218 EXIT SQLDriverConnectW with return code -1
(SQL_ERROR)
HDBC 029815E8
HWND 000404C0
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 3 <SQL_DRIVER_COMPLETE_REQUIRED>

DIAG [S1T00] [MySQL][ODBC 3.51 Driver]Can't connect to MySQL server
on '192.168.1.104' (10060) (2003)

VISIO 1b0-218 ENTER SQLErrorW
HENV 02981540
HDBC 029815E8
HSTMT 00000000
WCHAR * 0x0012CD6C (NYI)
SDWORD * 0x0012CDC4
WCHAR * 0x0012C96C
SWORD 512
SWORD * 0x0012CDD8

VISIO 1b0-218 EXIT SQLErrorW with return code 0
(SQL_SUCCESS)
HENV 02981540
HDBC 029815E8
HSTMT 00000000
WCHAR * 0x0012CD6C (NYI)
SDWORD * 0x0012CDC4 (2003)
WCHAR * 0x0012C96C [ 81] "[MySQL][ODBC 3.51
Driver]Can't connect to MySQL server on '192.168.1.104' (10060)"
SWORD 512
SWORD * 0x0012CDD8 (81)

VISIO 1b0-218 ENTER SQLErrorW
HENV 00000000
HDBC 029815E8
HSTMT 00000000
WCHAR * 0x0012CD6C (NYI)
SDWORD * 0x0012CDC4
WCHAR * 0x0012C96C
SWORD 512
SWORD * 0x0012CDD8

VISIO 1b0-218 EXIT SQLErrorW with return code 100
(SQL_NO_DATA_FOUND)
HENV 00000000
HDBC 029815E8
HSTMT 00000000
WCHAR * 0x0012CD6C (NYI)
SDWORD * 0x0012CDC4
WCHAR * 0x0012C96C
SWORD 512
SWORD * 0x0012CDD8

VISIO 1b0-218 ENTER SQLFreeHandle
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 029815E8

VISIO 1b0-218 EXIT SQLFreeHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 029815E8

VISIO 1b0-218 ENTER SQLFreeHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 02981540

VISIO 1b0-218 EXIT SQLFreeHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 02981540

--------------------------------------------------------
---- Failed ODBC Administrator connect follows ----

odbcad32 700-978 ENTER SQLAllocHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 00000000
SQLHANDLE * 0007D644

odbcad32 700-978 EXIT SQLAllocHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 00000000
SQLHANDLE * 0x0007D644 ( 0x009c1540)

odbcad32 700-978 ENTER SQLSetEnvAttr
SQLHENV 009C1540
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 0x00000003
SQLINTEGER 0

odbcad32 700-978 EXIT SQLSetEnvAttr with return code 0
(SQL_SUCCESS)
SQLHENV 009C1540
SQLINTEGER 200 <SQL_ATTR_ODBC_VERSION>
SQLPOINTER 0x00000003 (BADMEM)
SQLINTEGER 0

odbcad32 700-978 ENTER SQLAllocHandle
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 009C1540
SQLHANDLE * 0007D648

odbcad32 700-978 EXIT SQLAllocHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 009C1540
SQLHANDLE * 0x0007D648 ( 0x009c15e8)

odbcad32 700-978 ENTER SQLDriverConnectW
HDBC 009C15E8
HWND 00000000
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

odbcad32 700-978 EXIT SQLDriverConnectW with return code -1
(SQL_ERROR)
HDBC 009C15E8
HWND 00000000
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

DIAG [HYT00] [MySQL][ODBC 3.51 Driver]Can't connect to MySQL server
on '192.168.1.104' (10060) (2003)

odbcad32 700-978 ENTER SQLGetDiagRecW
SQLSMALLINT 2
SQLHANDLE 009C15E8
SQLSMALLINT 1
SQLWCHAR * 0x0007D3A8 (NYI)
SQLINTEGER * 0x0007D5EC
SQLWCHAR * 0x009C1A20 (NYI)
SQLSMALLINT 512
SQLSMALLINT * 0x0007D5FC

odbcad32 700-978 EXIT SQLGetDiagRecW with return code 0
(SQL_SUCCESS)
SQLSMALLINT 2
SQLHANDLE 009C15E8
SQLSMALLINT 1
SQLWCHAR * 0x0007D3A8 (NYI)
SQLINTEGER * 0x0007D5EC (2003)
SQLWCHAR * 0x009C1A20 (NYI)
SQLSMALLINT 512
SQLSMALLINT * 0x0007D5FC (81)

odbcad32 700-978 ENTER SQLGetDiagRecW
SQLSMALLINT 2
SQLHANDLE 009C15E8
SQLSMALLINT 2
SQLWCHAR * 0x0007D3A8 (NYI)
SQLINTEGER * 0x0007D5EC
SQLWCHAR * 0x009C1A20 (NYI)
SQLSMALLINT 512
SQLSMALLINT * 0x0007D5FC

odbcad32 700-978 EXIT SQLGetDiagRecW with return code 100
(SQL_NO_DATA_FOUND)
SQLSMALLINT 2
SQLHANDLE 009C15E8
SQLSMALLINT 2
SQLWCHAR * 0x0007D3A8 (NYI)
SQLINTEGER * 0x0007D5EC
SQLWCHAR * 0x009C1A20 (NYI)
SQLSMALLINT 512
SQLSMALLINT * 0x0007D5FC

odbcad32 700-978 ENTER SQLFreeHandle
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 009C15E8

odbcad32 700-978 EXIT SQLFreeHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 009C15E8

odbcad32 700-978 ENTER SQLFreeHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 009C1540

odbcad32 700-978 EXIT SQLFreeHandle with return code 0
(SQL_SUCCESS)
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 009C1540

--------------------------------------------------------
---- Failed Excel connect follows ----

msqry32 9f4-b04 ENTER SQLAllocEnv
HENV * 0C0F7F48

msqry32 9f4-b04 EXIT SQLAllocEnv with return code 0
(SQL_SUCCESS)
HENV * 0x0C0F7F48 ( 0x00881540)

msqry32 9f4-b04 ENTER SQLDataSourcesW
HENV 00881540
UWORD 31 <unknown>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1CC
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192

msqry32 9f4-b04 EXIT SQLDataSourcesW with return code 0
(SQL_SUCCESS)
HENV 00881540
UWORD 31 <unknown>
WCHAR * 0x008815E8 [ 22] "Visio Datab"
SWORD 34
SWORD * 0x0012F1CC (22)
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192 (31)

msqry32 9f4-b04 ENTER SQLDataSourcesW
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1CC
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192

msqry32 9f4-b04 EXIT SQLDataSourcesW with return code 0
(SQL_SUCCESS)
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8 [ 18] "MS Access"
SWORD 34
SWORD * 0x0012F1CC (18)
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192 (31)

msqry32 9f4-b04 ENTER SQLDataSourcesW
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1CC
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192

msqry32 9f4-b04 EXIT SQLDataSourcesW with return code 0
(SQL_SUCCESS)
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8 [ 11] "Excel"
SWORD 34
SWORD * 0x0012F1CC (11)
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192 (30)

msqry32 9f4-b04 ENTER SQLDataSourcesW
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1CC
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192

msqry32 9f4-b04 EXIT SQLDataSourcesW with return code 0
(SQL_SUCCESS)
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8 [ 11] "dBASE"
SWORD 34
SWORD * 0x0012F1CC (11)
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192 (30)

msqry32 9f4-b04 ENTER SQLDataSourcesW
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1CC
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192

msqry32 9f4-b04 EXIT SQLDataSourcesW with return code 0
(SQL_SUCCESS)
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8 [ 4] "Ra"
SWORD 34
SWORD * 0x0012F1CC (4)
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192 (22)

msqry32 9f4-b04 ENTER SQLDataSourcesW
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1CC
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192

msqry32 9f4-b04 EXIT SQLDataSourcesW with return code 0
(SQL_SUCCESS)
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8 [ 4] "Go"
SWORD 34
SWORD * 0x0012F1CC (4)
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192 (22)

msqry32 9f4-b04 ENTER SQLDataSourcesW
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1CC
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192

msqry32 9f4-b04 EXIT SQLDataSourcesW with return code 100
(SQL_NO_DATA_FOUND)
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1CC
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F192

msqry32 9f4-b04 ENTER SQLDataSourcesW
HENV 00881540
UWORD 32 <unknown>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1C4
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F18A

msqry32 9f4-b04 EXIT SQLDataSourcesW with return code 0
(SQL_SUCCESS)
HENV 00881540
UWORD 32 <unknown>
WCHAR * 0x008815E8 [ 27] "Xtreme Sample"
SWORD 34
SWORD * 0x0012F1C4 (27)
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F18A (31)

msqry32 9f4-b04 ENTER SQLDataSourcesW
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1C4
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F18A

msqry32 9f4-b04 EXIT SQLDataSourcesW with return code 100
(SQL_NO_DATA_FOUND)
HENV 00881540
UWORD 1 <SQL_FETCH_NEXT>
WCHAR * 0x008815E8
SWORD 34
SWORD * 0x0012F1C4
WCHAR * 0x00000000
SWORD 0
SWORD * 0x0012F18A

msqry32 9f4-b04 ENTER SQLAllocConnect
HENV 00881540
HDBC * 0012EEF4

msqry32 9f4-b04 EXIT SQLAllocConnect with return code 0
(SQL_SUCCESS)
HENV 00881540
HDBC * 0x0012EEF4 ( 0x00881750)

msqry32 9f4-b04 ENTER SQLSetConnectOption
HDBC 00881750
SQLINTEGER 103 <SQL_LOGIN_TIMEOUT>
SQLPOINTER 0x0000002D

msqry32 9f4-b04 EXIT SQLSetConnectOption with return code 0
(SQL_SUCCESS)
HDBC 00881750
SQLINTEGER 103 <SQL_LOGIN_TIMEOUT>
SQLPOINTER 0x0000002D (BADMEM)

msqry32 9f4-b04 ENTER SQLDriverConnectW
HDBC 00881750
HWND 000F0464
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 1 <SQL_DRIVER_COMPLETE>

msqry32 9f4-b04 EXIT SQLDriverConnectW with return code 0
(SQL_SUCCESS)
HDBC 00881750
HWND 000F0464
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 1 <SQL_DRIVER_COMPLETE>

msqry32 9f4-b04 ENTER SQLGetInfoW
HDBC 00881750
UWORD 2 <SQL_DATA_SOURCE_NAME>
PTR 0x00881880
SWORD 2048
SWORD * 0x0012EEF2
 
Y

yk63fd01

Update:


I was able to get RKSoft's CASE Studio 2 to reverse engineer a model
using the same installation of MySQL and MyODBC. I also was able to
get Spectral Core's FullConvert 1.3 to connect to the database using
the native MySQL protocol.


I would conclude that the problem does appear to be in Visio and Excel
(MSQUERY) (although there certainly could be other influencing factors
which I'm not seeing).
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top