{"id":5336,"date":"2019-07-15T08:56:41","date_gmt":"2019-07-15T07:56:41","guid":{"rendered":"https:\/\/www.threesl.com\/blog\/?p=5336"},"modified":"2023-02-09T14:09:38","modified_gmt":"2023-02-09T14:09:38","slug":"open-database-connectivity-odbc-mysql","status":"publish","type":"post","link":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/","title":{"rendered":"Open Database Connectivity (ODBC)"},"content":{"rendered":"<p>Open Database Connectivity (ODBC) is an application that allows different types of databases to interface through the use of a library containing data access routines. Cradle now supports connections to DISAM, Oracle and MySQL.<\/p>\n<figure id=\"attachment_5338\" aria-describedby=\"caption-attachment-5338\" style=\"width: 1280px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5338\" src=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC.png\" alt=\"Connection to Different Data Storage Types\" width=\"1280\" height=\"720\" srcset=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC.png 1280w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC-300x169.png 300w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC-768x432.png 768w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC-1024x576.png 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption id=\"caption-attachment-5338\" class=\"wp-caption-text\">This diagram shows the logical representation of the project data storage<\/figcaption><\/figure>\n<h2>Installation Requirements<\/h2>\n<p>Before installing check the minimum hardware and operating system requirements for ODBC. The following are necessary for a successful installation:<\/p>\n<ul>\n<li>An Oracle or MySQL installation accessible to the CDS preferably on the same machine<\/li>\n<li>An ODBC driver manager<\/li>\n<li>An ODBC driver for the data source you wish to access. For example, Oracle in Oracle for Windows or SQL Server<\/li>\n<\/ul>\n<p>Please ensure the versions are the following or greater:<\/p>\n<ul>\n<li>Oracle in Oracle from Oracle Corporation version is 18c<\/li>\n<li>MySQL ODBC 8.0 Unicode Driver from Oracle Corporation is version 8.0.16<\/li>\n<li>Windows ODBC Data Source Administrator appropriate for your Windows release<\/li>\n<li>unixODBC driver Manager 2.3.7 or later<\/li>\n<\/ul>\n<p><em>*Cradle install <span style=\"text-decoration: underline;\">will not work<\/span> with Oracle databases that have been setup using the \u2018Create as Container Database\u2019 option.<\/em><\/p>\n<p>ODBC is a licence option which can allow Oracle or SQL or both to work with our Cradle Enterprise version. This new licence is not available for any other version of Cradle. For enquires about the new ODBC licence, please email <a href=\"mailto:salesdetails@threesl.com\">salesdetails@threesl.com<\/a>.<\/p>\n<h2>Cradle and ODBC<\/h2>\n<p>The users can still import and export standard export, CSV, XML and now <a href=\"https:\/\/www.threesl.com\/cradle\/help\/7.5\/content\/importexport\/other\/reqif.htm\">ReqIF<\/a> files. If a user is on Windows they can still use our Toolsuite applications. The only difference is the access to databases either directly (DISAM) or through ODBC (Oracle and MySQL).<\/p>\n<p>With Cradle supporting ODBC, a user can now install Cradle on the same database server farm as the Oracle\/MySQL databases. A separate server is no longer required. \u00a0Although projects can be on a separate server and linked to the Cradle database using a UNC path e.g. \\\\hostname\\path\\projects\\mmh1. Click for more information on <a href=\"https:\/\/www.threesl.com\/blog\/storing-project-databases-nas\/\">Storing Project Databases in NAS<\/a>.<\/p>\n<figure id=\"attachment_7541\" aria-describedby=\"caption-attachment-7541\" style=\"width: 733px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-7541 size-full\" src=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/About-1.png\" alt=\"3 different projects on 2 different servers\" width=\"733\" height=\"631\" srcset=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/About-1.png 733w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/About-1-300x258.png 300w\" sizes=\"auto, (max-width: 733px) 100vw, 733px\" \/><figcaption id=\"caption-attachment-7541\" class=\"wp-caption-text\">Cradle About WorkBench UI showing 3 different projects on 2 different servers<\/figcaption><\/figure>\n<h2>Installing ODBC<\/h2>\n<p>The CDS requires an installation of ODBC on the same machine for either Linux or Windows. Client machines which don\u2019t have the CDS on them don\u2019t need to have ODBC installed at all.<\/p>\n<h3>Linux<\/h3>\n<p>If the Linux distribution you are installing on does not have v2.3.7 of <strong>unixODBC<\/strong> as a package, then you\u2019ll need to build this from source. You can download and find installing steps for it from http:\/\/www.unixodbc.org\/download.html. Ensure the user installing is the System Administrator or a user with administrator privileges for installing both ODBC and Cradle.<\/p>\n<p>Check for the following files on your Linux installation:<\/p>\n<figure id=\"attachment_5345\" aria-describedby=\"caption-attachment-5345\" style=\"width: 440px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5345\" src=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/unixodbc_files.png\" alt=\"libodbc, libodbccr and libodbcinst\" width=\"440\" height=\"77\" srcset=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/unixodbc_files.png 440w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/unixodbc_files-300x53.png 300w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><figcaption id=\"caption-attachment-5345\" class=\"wp-caption-text\">Necessary files on Linux<\/figcaption><\/figure>\n<h3>Windows<\/h3>\n<p>If the Windows platform you are installing on does not have ODBC please install the latest Oracle in Oracle for Windows. You can find installing and upgrading documents for Oracle Database <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/18\/install-and-upgrade.html\">here<\/a> and select the release you are on from the drop-down.<\/p>\n<p>Certain settings are required to be selected when using Oracle in Oracle. Check and enable or disable the following options in the Oracle ODBC Driver Configuration checking all numbers:<\/p>\n<figure id=\"attachment_5341\" aria-describedby=\"caption-attachment-5341\" style=\"width: 559px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5341\" src=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/ODBC_Data_Source_options.png\" alt=\"Oracle ODBC Driver Configuration\" width=\"559\" height=\"783\" srcset=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/ODBC_Data_Source_options.png 559w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/ODBC_Data_Source_options-214x300.png 214w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><figcaption id=\"caption-attachment-5341\" class=\"wp-caption-text\">Oracle ODBC Driver Configuration for Application, Oracle and Workarounds<\/figcaption><\/figure>\n<p>Turn on the <strong>Connection Pooling<\/strong> attributes and use the default options:<\/p>\n<figure id=\"attachment_5342\" aria-describedby=\"caption-attachment-5342\" style=\"width: 594px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5342\" src=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/ODBC_Data_Source_Pooling.png\" alt=\"Pool Connection settings\" width=\"594\" height=\"421\" srcset=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/ODBC_Data_Source_Pooling.png 594w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/ODBC_Data_Source_Pooling-300x213.png 300w\" sizes=\"auto, (max-width: 594px) 100vw, 594px\" \/><figcaption id=\"caption-attachment-5342\" class=\"wp-caption-text\">Turn on Connection Pooling Attributes<\/figcaption><\/figure>\n<h2>Setting up with Cradle<\/h2>\n<p>After installation of both Oracle and Cradle, the administrator is required to check and alter the following files correctly:<\/p>\n<ul>\n<li>Support file for the driver when required on Windows usually in \u2018Oracle &lt;version&gt;\\network\\admin\u2019<\/li>\n<\/ul>\n<p>The following example of a <samp>tnsnames.ora<\/samp> file, shows it can have more than one Oracle database location set within it.<\/p>\n<figure id=\"attachment_5344\" aria-describedby=\"caption-attachment-5344\" style=\"width: 987px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5344\" src=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/tnsnames.png\" alt=\"tnsnames.ora file\" width=\"987\" height=\"347\" srcset=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/tnsnames.png 987w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/tnsnames-300x105.png 300w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/tnsnames-768x270.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption id=\"caption-attachment-5344\" class=\"wp-caption-text\">tnsnames.ora file<\/figcaption><\/figure>\n<ul>\n<li>Correctly configure the ODBC file for Cradle in %CRADLEHOME%\\admin\\db_config\\odbc called <samp>odbc_config<\/samp><\/li>\n<\/ul>\n<p>All options are hashed out in the file until an administrator changes them. All options show an example of what can be entered. This is an <samp>odbc_config<\/samp> example for just Oracle on one of our installations.<\/p>\n<pre><sub>CRADLE_VERSION = 7.7<\/sub>\r\n<sub>#<\/sub>\r\n<sub>ODBC_DRIVERINFO = ORACLE<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 CONFIG_DIR = 'oracle'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 CHARSET_METHOD = ENVIRONMENT<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 CHARSET_VAR = 'NLS_LANG'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 CHARSET_BDY = '.'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 CHARSET = 'AL32UTF8'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 CONNECT_STR = 'DSN=$SOURCE;UID=\"$USER\";PWD=\"$PASSWORD\";'<\/sub>\r\n<sub>ODBC_DRIVERINFO = END<\/sub>\r\n<sub>#<\/sub>\r\n<sub>#<\/sub>\r\n<sub>ODBC_DRIVER = ORACLE<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 ODBC_SOURCE = 'OracleODBC-18c-ORAC'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 DBMS_NAME = 'Oracle'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 DEFAULT_DB_TABLESPACE = 'USERS'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 DEFAULT_DB_SCHEMA_USE = DEFAULT<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 DEFAULT_DB_SCHEMA = 'cradle_prj_$PCODE'<\/sub>\r\n<sub>\u00a0 \u00a0 DEFAULT_USER = 'CRADLE_CDS_USER'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 DEFAULT_PASSWORD = '***'<\/sub>\r\n<sub>ODBC_DRIVER = END<\/sub>\r\n<sub>ODBC_DRIVER = ORACLE<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 ODBC_SOURCE = 'OracleODBC-18c-ORAC12'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 DBMS_NAME = 'Oracle'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 DEFAULT_DB_TABLESPACE = 'USERS'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 DEFAULT_DB_SCHEMA_USE = DEFAULT<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 DEFAULT_DB_SCHEMA = 'cradle_prj_$PCODE'<\/sub>\r\n<sub>\u00a0\u00a0\u00a0 DEFAULT_USER = 'CRADLE_CDS_USER'<\/sub>\r\n<sub>\u00a0\u00a0 \u00a0DEFAULT_PASSWORD = '***'<\/sub>\r\n<sub>ODBC_DRIVER = END\r\n<\/sub><\/pre>\n<ul>\n<li>Correctly configure the file <strong>create_CRADLE_CDS_USER<\/strong> in cradle\\admin\\db_config\\odbc\\setup_scripts<\/li>\n<\/ul>\n<p>The default user <em>tablespace<\/em> and users within your Oracle database need to be set within this file. This is to allow the altering and creating privileges for the users. In our original it has:<\/p>\n<ul>\n<li>USER &#8220;CRADLE_CDS_USER&#8221;<\/li>\n<li>DEFAULT TABLESPACE &#8220;USERS\u201d<\/li>\n<\/ul>\n<p>The privilege options in create_CRADLE_CDS_USER should be changed to your own <em>tablespace<\/em> and user names used in the <em>odbc_config<\/em> file.<\/p>\n<h2>Creating New Projects<\/h2>\n<p>Users get the same Cradle interface as before but with a new section it now allows connects to 3 different types of database. The different databases can be created through Project Manager by selecting a different Data Source.<\/p>\n<figure id=\"attachment_5340\" aria-describedby=\"caption-attachment-5340\" style=\"width: 620px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5340\" src=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/Create_ODBC_Projects.png\" alt=\"Showing 2 different Oracle databases in Create Project UI\" width=\"620\" height=\"197\" srcset=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/Create_ODBC_Projects.png 620w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/Create_ODBC_Projects-300x95.png 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><figcaption id=\"caption-attachment-5340\" class=\"wp-caption-text\">Showing 2 different Oracle databases either can be used<\/figcaption><\/figure>\n<p>Once a source is selected, a new section allows the default settings from the <samp>odbc_config<\/samp> file to be bypassed if required:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"620\" height=\"264\" class=\"size-full wp-image-5343\" src=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/Override_ODBC_Projects.png\" alt=\"&quot;&quot;\" srcset=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/Override_ODBC_Projects.png 620w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/Override_ODBC_Projects-300x128.png 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<p>Projects can be still be created through a command line using <a href=\"https:\/\/www.threesl.com\/cradle\/help\/7.5\/content\/manpages\/c_prj.htm\"><kbd>c_prj<\/kbd><\/a> using the new <kbd>-odbc_src<kbd> option.<\/kbd><\/kbd><\/p>\n<pre>[-odbc_src &lt;odbc_source&gt;\r\n\u00a0[-odbc_sch {DEFAULT | DATABASE | NONE | &lt;ODBC schema&gt;}]\r\n\u00a0[-odbc_usr &lt;ODBC user&gt;]\r\n\u00a0[-odbc_pwd &lt;ODBC password&gt;]]<\/pre>\n<pre><em>c_prj.exe -create -code TEST -title \"Test Project\" -path \/home\/project\/odbc -pid ODBC01 -schema DEFAULT -odbc_source OracleODBC-18c-ORAC -odbc_user -odbc_pwd<\/em><\/pre>\n<p>Both <samp>-odbc_user<\/samp> and <samp>-odbc_pwd<\/samp> are left blank so the <samp>default user<\/samp> and <samp>password<\/samp> from the <samp>odbc_config<\/samp> file will be used. They will only be filled when an override is required. When creating a database for Oracle then the <samp>-odbc_sch DEFAULT<\/samp> would be used. For an SQL database then <samp>-odbc_sch DATABASE<\/samp> would be used.<\/p>\n<h2>File Locations<\/h2>\n<p>All items <em>requirements, system notes<\/em> and <em>diagrams<\/em> etc., will be located in an Oracle database but there are some files that are kept in a project folder like in a DISAM project.<\/p>\n<p>The <samp>\u2018prj_params\u2019<\/samp> file can be found in the project folder with a new file called <samp>\u2018connection_config\u2019<\/samp>. The <samp>\u2018prj_params\u2019<\/samp> is the same as before, with all the options for the <em>project schema<\/em> and user interactions. The new <samp>\u2018connection_config\u2019<\/samp> file holds the <em>version, type, database source<\/em> and <em>odbc schema<\/em> used. It also holds the <em>User<\/em> and <em>Password<\/em> to override the DEFAULT USER \/ PASSWORD from the <samp>odbc_config<\/samp>.<\/p>\n<pre><em>CRADLE_VERSION = 7.7<\/em>\r\n<em>TYPE = PDB_CONN_ODBC<\/em>\r\n<em>SOURCE = OracleODBC<\/em>\r\n<em>USER = *****<\/em>\r\n<em>PASSWORD = *****<\/em>\r\n<em>DB_SCHEMA_USE = DEFAULT<\/em><\/pre>\n<p>The definitions e.g. <em>views<\/em>, <em>queries<\/em> and <em>reports<\/em> etc., are still held in the definitions folder under the different user types. <em>Source<\/em> and <em>Formal<\/em> <em>Documents<\/em> are also held as before in the <samp>doc<\/samp> and <samp>fdoc<\/samp> folders.<\/p>\n<h6>*****NOTE*****<\/h6>\n<p>Direct manipulation of data in Cradle&#8217;s data files held in DISAM or an ODBC supported database is not recommended under any circumstance. The inherent integrity of the data and its internal relationships can only be maintained by accessing through Cradle&#8217;s defined UI, command-line or API tools.<\/p>\n<ul>\n<li>We do not provide any information about Cradle&#8217;s use of Oracle and<br \/>\nMySQL other than which we provide in our documentation<\/li>\n<li>We do not provide any information or assistance to anyone who is<br \/>\nproposing to access Cradle&#8217;s data that is stored in Oracle or<br \/>\nMySQL other than through Cradle<\/li>\n<li>Anyone who accesses, either read-only or read-write, Cradle data<br \/>\nthat is stored in Oracle or MySQL without using Cradle as the only<br \/>\nmeans to access that data, does so entirely at their own risk and<br \/>\n3SL will not accept any responsibility for, nor provide any<br \/>\nassistance to, anyone who accesses Cradle data in that way and then<br \/>\nsubsequently finds that their data is no longer accessible through,<br \/>\nor manipulable by, Cradle<\/li>\n<\/ul>\n<h5>Update:<\/h5>\n<p>July 2020 &#8211; Directory updated<\/p>\n<aside class=\"mashsb-container mashsb-main mashsb-stretched\"><div class=\"mashsb-box\"><div class=\"mashsb-buttons\"><a class=\"mashicon-twitter mash-small mash-center mashsb-noshadow\" href=\"https:\/\/twitter.com\/intent\/tweet?text=&amp;url=https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/&amp;via=threesl\" target=\"_top\" rel=\"nofollow\"><span class=\"icon\"><\/span><span class=\"text\">Tweet<\/span><\/a><a class=\"mashicon-facebook mash-small mash-center mashsb-noshadow\" href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fwww.threesl.com%2Fblog%2Fopen-database-connectivity-odbc-mysql%2F\" target=\"_top\" rel=\"nofollow\"><span class=\"icon\"><\/span><span class=\"text\">Share<\/span><\/a><a class=\"mashicon-subscribe mash-small mash-center mashsb-noshadow\" href=\"#\" target=\"_top\" rel=\"nofollow\"><span class=\"icon\"><\/span><span class=\"text\">Newsletter<\/span><\/a><div class=\"onoffswitch2 mash-small mashsb-noshadow\" style=\"display:none\"><\/div><\/div>\n            <\/div>\n                <div style=\"clear:both\"><\/div><\/aside>\n            <!-- Share buttons by mashshare.net - Version: 4.0.47-->","protected":false},"excerpt":{"rendered":"<p>Open Database Connectivity (ODBC) is an application that allows different types of databases to interface through the use of a library containing data access routines. Cradle now supports connections to DISAM, Oracle and MySQL. Installation Requirements Before installing check the minimum hardware and operating system requirements for ODBC. The following are necessary for a successful &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Open Database Connectivity (ODBC)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"no","_lmt_disable":"no","footnotes":""},"categories":[6],"tags":[345,600,619],"class_list":["post-5336","post","type-post","status-publish","format-standard","hentry","category-tips","tag-cradle-database","tag-database","tag-odbc"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Open Database Connectivity (ODBC) - 3SL Blog Hints &amp; Tips<\/title>\n<meta name=\"description\" content=\"ODBC for Oracle and MySQL databases supported in Cradle. Cradle supports connections to DISAM, Oracle and MySQL databases.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Open Database Connectivity (ODBC) - 3SL Blog Hints &amp; Tips\" \/>\n<meta property=\"og:description\" content=\"ODBC for Oracle and MySQL databases supported in Cradle. Cradle supports connections to DISAM, Oracle and MySQL databases.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/\" \/>\n<meta property=\"og:site_name\" content=\"3SL Blog\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/3SLCradle\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-15T07:56:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-09T14:09:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC.png\" \/>\n<meta name=\"author\" content=\"Mikki Hall\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mikki_uk\" \/>\n<meta name=\"twitter:site\" content=\"@threesl\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mikki Hall\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/\"},\"author\":{\"name\":\"Mikki Hall\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#\\\/schema\\\/person\\\/3838d388b1f271f95339aeb2034e19b1\"},\"headline\":\"Open Database Connectivity (ODBC)\",\"datePublished\":\"2019-07-15T07:56:41+00:00\",\"dateModified\":\"2023-02-09T14:09:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/\"},\"wordCount\":1250,\"publisher\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/CDS_Connection_ODBC.png\",\"keywords\":[\"Cradle database\",\"database\",\"ODBC\"],\"articleSection\":[\"Hints &amp; Tips\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/\",\"url\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/\",\"name\":\"Open Database Connectivity (ODBC) - 3SL Blog Hints &amp; Tips\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/CDS_Connection_ODBC.png\",\"datePublished\":\"2019-07-15T07:56:41+00:00\",\"dateModified\":\"2023-02-09T14:09:38+00:00\",\"description\":\"ODBC for Oracle and MySQL databases supported in Cradle. Cradle supports connections to DISAM, Oracle and MySQL databases.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/CDS_Connection_ODBC.png\",\"contentUrl\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/CDS_Connection_ODBC.png\",\"width\":1280,\"height\":720,\"caption\":\"This diagram shows the logical representation of the project data storage\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/open-database-connectivity-odbc-mysql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Open Database Connectivity (ODBC)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/\",\"name\":\"3SL Blog\",\"description\":\"From concept to creation\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#organization\",\"name\":\"3SL\",\"url\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/3SL_Logo_Medium.png\",\"contentUrl\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/3SL_Logo_Medium.png\",\"width\":152,\"height\":80,\"caption\":\"3SL\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"http:\\\/\\\/facebook.com\\\/3SLCradle\",\"https:\\\/\\\/x.com\\\/threesl\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#\\\/schema\\\/person\\\/3838d388b1f271f95339aeb2034e19b1\",\"name\":\"Mikki Hall\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c8ae2c18a88ce092f11f35245045093a73cabeabe55aa8ac868b1681ddd2c3dc?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c8ae2c18a88ce092f11f35245045093a73cabeabe55aa8ac868b1681ddd2c3dc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c8ae2c18a88ce092f11f35245045093a73cabeabe55aa8ac868b1681ddd2c3dc?s=96&d=mm&r=g\",\"caption\":\"Mikki Hall\"},\"sameAs\":[\"https:\\\/\\\/www.threesl.com\\\/\",\"https:\\\/\\\/x.com\\\/mikki_uk\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Open Database Connectivity (ODBC) - 3SL Blog Hints &amp; Tips","description":"ODBC for Oracle and MySQL databases supported in Cradle. Cradle supports connections to DISAM, Oracle and MySQL databases.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/","og_locale":"en_GB","og_type":"article","og_title":"Open Database Connectivity (ODBC) - 3SL Blog Hints &amp; Tips","og_description":"ODBC for Oracle and MySQL databases supported in Cradle. Cradle supports connections to DISAM, Oracle and MySQL databases.","og_url":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/","og_site_name":"3SL Blog","article_publisher":"http:\/\/facebook.com\/3SLCradle","article_published_time":"2019-07-15T07:56:41+00:00","article_modified_time":"2023-02-09T14:09:38+00:00","og_image":[{"url":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC.png","type":"","width":"","height":""}],"author":"Mikki Hall","twitter_card":"summary_large_image","twitter_creator":"@mikki_uk","twitter_site":"@threesl","twitter_misc":{"Written by":"Mikki Hall","Estimated reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/#article","isPartOf":{"@id":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/"},"author":{"name":"Mikki Hall","@id":"https:\/\/www.threesl.com\/blog\/#\/schema\/person\/3838d388b1f271f95339aeb2034e19b1"},"headline":"Open Database Connectivity (ODBC)","datePublished":"2019-07-15T07:56:41+00:00","dateModified":"2023-02-09T14:09:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/"},"wordCount":1250,"publisher":{"@id":"https:\/\/www.threesl.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC.png","keywords":["Cradle database","database","ODBC"],"articleSection":["Hints &amp; Tips"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/","url":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/","name":"Open Database Connectivity (ODBC) - 3SL Blog Hints &amp; Tips","isPartOf":{"@id":"https:\/\/www.threesl.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/#primaryimage"},"image":{"@id":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC.png","datePublished":"2019-07-15T07:56:41+00:00","dateModified":"2023-02-09T14:09:38+00:00","description":"ODBC for Oracle and MySQL databases supported in Cradle. Cradle supports connections to DISAM, Oracle and MySQL databases.","breadcrumb":{"@id":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/#primaryimage","url":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC.png","contentUrl":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2019\/07\/CDS_Connection_ODBC.png","width":1280,"height":720,"caption":"This diagram shows the logical representation of the project data storage"},{"@type":"BreadcrumbList","@id":"https:\/\/www.threesl.com\/blog\/open-database-connectivity-odbc-mysql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.threesl.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Open Database Connectivity (ODBC)"}]},{"@type":"WebSite","@id":"https:\/\/www.threesl.com\/blog\/#website","url":"https:\/\/www.threesl.com\/blog\/","name":"3SL Blog","description":"From concept to creation","publisher":{"@id":"https:\/\/www.threesl.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.threesl.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.threesl.com\/blog\/#organization","name":"3SL","url":"https:\/\/www.threesl.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.threesl.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2017\/02\/3SL_Logo_Medium.png","contentUrl":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2017\/02\/3SL_Logo_Medium.png","width":152,"height":80,"caption":"3SL"},"image":{"@id":"https:\/\/www.threesl.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/facebook.com\/3SLCradle","https:\/\/x.com\/threesl"]},{"@type":"Person","@id":"https:\/\/www.threesl.com\/blog\/#\/schema\/person\/3838d388b1f271f95339aeb2034e19b1","name":"Mikki Hall","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/c8ae2c18a88ce092f11f35245045093a73cabeabe55aa8ac868b1681ddd2c3dc?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c8ae2c18a88ce092f11f35245045093a73cabeabe55aa8ac868b1681ddd2c3dc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c8ae2c18a88ce092f11f35245045093a73cabeabe55aa8ac868b1681ddd2c3dc?s=96&d=mm&r=g","caption":"Mikki Hall"},"sameAs":["https:\/\/www.threesl.com\/","https:\/\/x.com\/mikki_uk"]}]}},"modified_by":"Jan Lamb","_links":{"self":[{"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/posts\/5336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/comments?post=5336"}],"version-history":[{"count":20,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/posts\/5336\/revisions"}],"predecessor-version":[{"id":8350,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/posts\/5336\/revisions\/8350"}],"wp:attachment":[{"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/media?parent=5336"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/categories?post=5336"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/tags?post=5336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}