Unable to Obtain Table Information in Enterprise Architect - MySQL - mysql

I'm using Sparx Enterprise Architect version 9.2 to import a database schema from a MySQL database using the ODBC connection. When I test the ODBC connection using the ODBC Data Source Administrator (Windows 7), the connection tests successfully. I'm using the MySQL ODBC 5.1 driver.
In Enterprise Architect when I try to use this ODBC connection to import the schema I get a message saying, "Unable to obtain table information".
Am I missing something? Any ideas?

The information provided by PsiX is helpful and relevant, but not the piece I was missing. The missing info can be found here, which applies even though it's talking about PostgreSQL (because it's being accessed through ODBC either way). Here is the pertinent information from the link above:
If you are using a 64-bit operating system:
• Enterprise Architect
requires 32-bit ODBC drivers to connect to a repository through ODBC;
to set up the ODBC configuration on 64-bit clients, run the 32-bit
ODBC Data Source Administrator from C:\Windows\SysWOW64\odbcad32.exe
• You can quickly load the correct 32-bit ODBC Data Source
Administrator by selecting Tools | ODBC Data Sources in the
Enterprise Architect menu bar
This piece of information was, unfortunately, omitted in the instructions for setting up Enterprise Architect for MySQL. (Too bad I hadn't noticed the option under Tools previously. Some of us have to do things the hard way!) Thanks again for the info provided by PsiX. It may be just what the next person needs so I'll give it an up-vote. :-)

Did you use the correct ODBC driver?
32 vs 64 bit is relevant here.
Did you check the two checkboxes as described in the installation of the driver?
(Select the Return matched rows instead of affected rows and Allow big result sets checkboxes.)
See here for a detailed description

Related

Getting a pop Up when loading data from IBM informix to SQL DB

For my SSIS package, source is IBM informix database and the destination is SQL server. Everything is fine. Even I'm able to load the data from source to destination. But, gets the below pop up as shown below almost 20 times for lat-least loading 1000 records then i should i say ok then it will proceed further.
it is Configured as a ODBC connection as shown below.
Please help.
Thanks,
Vikram
Ummm. kind of the error is self-explanatory ;)
You are using an Informix ODBC driver from DataDirect which was licensed to be used only with an Oracle client.
You should use the Informix ODBC driver (from IBM/HCL) instead of that one from DataDirect.
Download Informix ClientSDK from https://www-01.ibm.com/marketing/iwm/tnd/search.jsp?rs=ifxdl or use the CSDK media that came with the engine.
After the installation you should have an ODBC driver ('IBM INFORMIX ODBC DRIVER' or 'IBM INFORMIX ODBC DRIVER (64-bit)' registered on your Windows box which you can use to connect to Informix from SSIS
If you're moving large amounts of data with SSIS or simplify the deployment of the informix client, you can also evaluate an open version of the Informix ODBC connector distributed by IBM here.
Regardless of which driver you try, you'll need both a 32-bit ODBC driver for your BIDS development environment and 64-bit for run-time.
Note that I am employed by Progress.

Unable to access Visual FoxPro database through MS Access 2013

I am trying to access a Visual FoxPro Database through MS Access 2013 on a Windows 7 Machine, but I am getting this error.
"specified driver could not be loaded due to system error 0. The operation completed successfully(Microsoft Visual FoxPro Driver C:\Windows\system32\vfpodbc.dll).(#160)"
I tried installing Microsoft OLE DB Provider for Visual FoxPro 9.0 SP2 but I am getting the same results.
Any help is much appreciated.
You cannot use OLEDB with Access, can you? If you can then it is straight forward with VFPOLEDB driver.
You cannot use VFP ODBC driver if database version is later than VFP6.
If you are in a need to downgrade to access (which I never classify as a "database") then you could use Excel in between. Excel can import data using OLEDB (but strangely access can't, go figure). Or if you know how to write VBA code in access then maybe you could utilize the OLEBD driver from there too.
Another option might be to get the data to SQL server express via OleDb, then from SQL server to access (yet a bigger downgrade).
Another option would be to use code for this. If it were from VFP it would be as easy as 1,2,3 creating a cursor adapter or remote view to access and pumping data there. With C# too you can create connections to both sides, read from one and write to the other.
If I were you, I wouldn't choose to downgrade to access, but maybe upgrade to postgreSQL, MS SQL, ...
PS: Check out Advantage Database Server. It was supporting ODBC for VFP (local server version for free). That might be your option.
PS2: Access can import XML, right? Maybe you would want to export VFP data as XML and import from there.

Connect to MySQL database and fetch data in Julia

How can I fetch data from MySQL database in Julia?
It looks like this package provides tools for connecting to any database, including MySQL. However, it looks like assuming I have to first setup ODBC DSN to connect to it (I don't know what it is in the first place, although I've used MySQL for two years). So I tried to configure it by reading this page at MySQL documentation... but hit the wall immediately.
One, I can't find a command named myodbc-installer in my OS X 10.8.5. Two, there is no such application called ODBC Administrator, and instead there is ODBC manager in my system - So I think that documentation is too outdated... right?
Also, even when I opened ODBC manager and tried to click on Add on User DSN tab, there are no driver detected on the screen. So how can I configure ODBC DSN and make use of MySQL in Julia?
Also, do I have to deal with such a tedious setup process? I'd like to use a package, if any, that is as intuitive and easy to use as RMySQL package in R, which doesn't force me to care about DSN - any such package in Julia?
I'm on 0.2.0-rc in Julia and already installed the package through Pkg.add("ODBC"). MySQL version is 5.3.6 and installed via MAMP.
Thanks.
Jacob Quinn here, package maintainer for the ODBC package for Julia.
A few things to help you understand how the process works:
-ODBC is an API middle layer originally developed by Microsoft to create a common interface between DB systems and applications. This was useful because with the number of different DB systems, it would be hard to have applications that could reliably connect to any DB.
-ODBC has been ported to Linux/Unix/OSX systems through 2 main projects: iodbc (mainly OSX) and unixODBC (Linux)
-The basic components of the API are the ODBC Manager, which is the middle layer, the DB system, the application, and the ODBC driver, which is DB-specific and actually implements the communication between application-ODBC Manager and ODBC Manager-DB system.
-In the case of RMySQL, only the MySQL driver has been implemented with R wrapper functions which allow the connection to MySQL DB systems
-In the case of ODBC.jl (and the corresponding RODBC for R), a more generalized approach is taken where wrapper functions of the ODBC Manager are provided, which allow connection with any DB system, provided the user has the correct DB driver installed and connection string
Hopefully that helps understand the ODBC process a little better.
So for your case, it looks like you don't have the MySQL driver installed since it didn't show up in your ODBC Manager. You can find the driver here.
Once you have the driver installed, it should be pretty simple to set up a DSN (following either MySQL documentation or the excellent connectionstrings.com, MySQL Section).
You should then be able to start using ODBC in julia:
Pkg.add("ODBC")
using ODBC
ODBC.connect(dsn)
query("select * from customers")
If you run into any other issues or troubles getting things setup or installed, feel free to open an issue here and I'm more than willing to help troubleshoot the setup to get you going.

What is the purpose of an ODBC driver when connecting to a MySQL server?

I've been wondering what are the benefits of using an ODBC driver to interface with a MySQL server? What advantage does that have over directly connecting to the server via TCP and firing off your SQL commands directly?
I'm working with a code base written in labVIEW that references a UDL file which references a data source and its associated ODBC driver to handle the connection to the server. I'm not yet convinced its necessary. I can see the benefit of using a driver if you are connecting to Microsoft Access or excel but if your recipient is an SQL server of some type why would you need a middle man to handle your SQL commands?
I have used the ODBC driver 3.51 for connecting to MySQL Community Server 5.1 for some time now. The ODBC driver allows you (on a Windows computer) to add your MySQL connection to the ODBC data sources list. Now you can reference this data source in many compatible applications. I have been able to use this ODBC connection in VB.Net applications as well as proprietary applications for printing and other functions with ODBC functionality.
I would say that when coding web or python applications i always use the built in MySQL packages, but if you need to access your data through VB.Net or another proprietary application (like a stand-alone windows app) you probably need to set up a system ODBC data source to access your database. To me the ODBC lets Windows access MySQL easily. Without Windows i don't think you need it.
Why ODBC and not JDBC? Some reasons come to mind in order of helpfulness when using JDBC:
Standard api to access the results from a query. To iterate over the results and to get the actual values with the appropriate type.
No need to know how the protocol works to connect to the server. Just use the host, user, password, send the SQL and iterate over the result.
Abstract out the connection to the database. Changing the database should be simpler.
Standard way to commit and rollback for transaction based changes.
In my experience, JDBC is very verbose. You need to write many lines to accomplish simple things. I've found the Spring JDBCTemplate wrapper to be an extremely easy to use alternative for simple stuff.

Generate Visio ERD from existing MySQL Database

Is there a simple way to generate an ERD in Visio from an existing MySQL Database? I'm aware that this is possible in MySQL Workbench, but I have a requirement for it to be done in Visio. Or otherwise can I convert an ERD made in MySQL Workbench to a format Visio can open?
Yes, it can be done in Visio. You need to use the reverse engineer feature.
Here is a blog post explaining the basic steps:
http://maniish.wordpress.com/2007/11/24/reverse-engineer-mysql-in-visio-2007/
The above is all correct. You also must pay special attention to your application's architecture. We fought the MySQL ODBC configured UserDSN not being visible in the Reverse Engineer dialog, including using multiple versions of ODBC. We finally figured out we had to install 32 bit ODBC drivers on a 64 bit Windows machine because the Visio 2K10 that was installed was a 32 bit app.
At first we installed 64 bit ODBC because this was a 64 bit machine (sounded logical). I finally found an article that mentioned the app architecture was the determining factor for ODBC. After installing the 32 bit MySQL ODBC drivers (right over the top of the previous ones) and delete/recreate the DSN connection, the drivers were visible in the dialog and the Reverse Engineer process worked.