<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title type="text">CUBRID APIs Wiki</title>
      <subtitle type="html">CUBRID APIs Wiki</subtitle>
      <updated>2013-05-24T07:45:03-07:00</updated>
   <id>http://www.cubrid.org/wiki_apis/atom</id>
   <link rel="alternate" type="text/html" hreflang="en" href="http://www.cubrid.org/?mid=wiki_apis"/>
   <link rel="self" type="application/atom+xml" href="http://www.cubrid.org/wiki_apis/atom"/>
   <generator uri="http://www.xpressengine.com/" version="1.4.4.1">XpressEngine</generator>
   <entry>
      <title>CUBRID ODBC Driver Release Notes</title>
      <id>http://www.cubrid.org/251430</id>
      <published>2012-01-04T00:10:48-08:00</published>
      <updated>2013-05-23T21:38:15-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/251430"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/251430#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h1&gt;CUBRID ODBC Driver 9.1.0.p1 Release Note(2013-05-06)&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Download: &lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Drivers/ODBC_Driver/&quot;&gt;http://ftp.cubrid.org/CUBRID_Drivers/ODBC_Driver/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;&lt;/h1&gt;
&lt;h3 style=&quot;width: 670px; margin: 10px 0px; font-size: 16px; font-family: Calibri, &apos;Times New Roman&apos;, Tahoma, sans-serif;&quot;&gt;&lt;/h3&gt;
&lt;h3 style=&quot;width: 670px; margin: 10px 0px; font-size: 16px; font-family: Calibri, &apos;Times New Roman&apos;, Tahoma, sans-serif;&quot;&gt;Changed and Enhanced Features:&lt;/h3&gt;
&lt;ul style=&quot;color: #131212; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; line-height: 20px; font-size: 15px; font-weight: normal;&quot;&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-184&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-184&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-184&lt;/a&gt;&amp;nbsp;-&amp;nbsp;ODBC]&amp;nbsp;how to do auto_commit off in C#&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;line-height: 20px; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; font-size: 15px; margin: 7px 0px; text-align: justify; color: #131212; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;width: 670px; margin: 10px 0px; font-size: 16px; font-family: Calibri, &apos;Times New Roman&apos;, Tahoma, sans-serif;&quot;&gt;Fixed bugs:&lt;/h3&gt;
&lt;ul style=&quot;color: #131212; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; line-height: 20px; font-size: 15px; font-weight: normal;&quot;&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-152&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-152&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-152&lt;/a&gt;&amp;nbsp;-&amp;nbsp;ODBC] Error when executing a query in Korean&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-155&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-155&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-155&lt;/a&gt;&amp;nbsp;- Run time error when selecting in CUBRID ODBC Driver&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-156&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-156&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-156&lt;/a&gt;&amp;nbsp;- user reported&amp;gt; ODBC driver has a Fetch error&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-443&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-443&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-443&lt;/a&gt;&amp;nbsp;- Fetch error in using openrowset() call in sql server&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-445&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-445&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-445&lt;/a&gt;&amp;nbsp;- sql server core dump if openrowset() call on numeric field from ODBC driver&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-536&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-536&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-536&lt;/a&gt;&amp;nbsp;-&amp;nbsp;ODBC]&amp;nbsp;The returned value of OdbcConnection.Database is incorrect&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-538&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-538&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-538&lt;/a&gt;&amp;nbsp;-&amp;nbsp;ODBC]&amp;nbsp;A problem of the returned value of OdbcConnection.DataSource property&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-539&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-539&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-539&lt;/a&gt;&amp;nbsp;-&amp;nbsp;ODBC]&amp;nbsp;OdbcDataReader.GetDataTypeName doesn&apos;t work&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-540&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-540&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-540&lt;/a&gt;&amp;nbsp;-&amp;nbsp;ODBC]&amp;nbsp;OdbcDataReader GetInt16, GetInt32 doesn&apos;t returns expected exception when read an overbound integer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;CUBRID ODBC Driver 9.1.0 Release Note&lt;/h1&gt;
&lt;h3&gt;Functionality added or changed:&lt;/h3&gt;
&lt;p&gt;The following ODBC APIs are newly supported by CUBRID ODBC:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SQLPrimaryKeys&lt;/li&gt;
&lt;li&gt;SQLForeignKeys&lt;/li&gt;
&lt;li&gt;SQLProcedures&lt;/li&gt;
&lt;li&gt;SQLProcedureColumns&lt;/li&gt;
&lt;li&gt;SQLTablePrivileges&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All four functions are catalog functions, which can get schema information of database you connect to.  CUBRID schema information is stored in system catalog table, so you can also get this information from system catalog virtual table using SQL statement.&lt;/p&gt;
&lt;p&gt;Database schema information is important for data modeling tools like &lt;b&gt;CA ERwin Data Modeler&lt;/b&gt;, which enables you to visualize complex data structures.  It uses schema information, for example, tables of database, columns and attributes of table, the primary and foreign keys of table, and relationships between tables and so on, to get the structure of the database.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;SQLPrimaryKeys returns the column names that make up the primary key for a table.&lt;/li&gt;
&lt;li&gt;SQLForeignKeys can return:&lt;ol&gt;
&lt;li&gt;A list of foreign keys in the specified table (columns in the specified table that refer to primary keys in other tables).&lt;/li&gt;
&lt;li&gt;A list of foreign keys in other tables that refer to the primary key in the specified table.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;SQLProcedures returns returns the list of function/procedure names stored in a specific data source.&lt;ol&gt;
&lt;li&gt;Stored functions/procedures are blocks of code that have a flow of commands for data manipulation and are easy to     manipulate and administer. CUBRID supports to develop stored functions and procedures in Java. Java stored     functions/procedures are executed on the JVM (Java Virtual Machine) hosted by CUBRID.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;SQLProcedureColumns returns the list of input and output parameters for the specified procedures, but not including     the return columns.&lt;/li&gt;
&lt;li&gt;SQLTablePrivileges returns a list of tables and the privileges associated with each table, which represents     authorization information of the classes for which the current user has authorization in the database.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Fixed bugs:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;SQLFetchScroll: When parameter FetchOrientation is SQL_FETCH_LAST, SQLFetchScroll should return the last complete     rowset in the result set. But it will return the first, not the last.    
&lt;ul&gt;
&lt;li&gt;SQLFetchScroll is used to fetches the specified rowset of data from the result set and returns data for all bound     columns. Rowsets can be specified at an absolute or relative position or by bookmark.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SQLSetPos: Application will crash when calling SQLSetPos.    
&lt;ul&gt;
&lt;li&gt;SQLSetPos sets the cursor position in a rowset and allows an application to refresh, update or delete data in the     result set.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SQLSetPos: The default value of statement attribute SQL_ATTR_ROW_ARRAY_SIZE is 1, which is the number of rows     returned by each call to SQLFetch or SQLFetchScroll. If we set this attribute to value that is more than 1, SQLSetPos     can&apos;t work correctly.&lt;/li&gt;
&lt;li&gt;SQLStatistics and SQLSpecialColumns: The results of the two catalog functions are not valid.&lt;br /&gt;&lt;br /&gt;SQLStatistics retrieves a list of statistics about a single table and the indexes associated with the table.     SQLSpecialColumns retrieves the following information about columns within a specified table:    
&lt;ul&gt;
&lt;li&gt;When IdentifierType is SQL_BEST_ROWID, it will return information of columns that uniquely identifies a row in          the table;&lt;/li&gt;
&lt;li&gt;When IdentifierType is SQL_ROWVER, it will return information of columns that are automatically updated when any          value in the row is updated by a transaction.&lt;br /&gt;&lt;br /&gt;No data type in CUBRID will auto-update, so it only can return the columns which compose the unique keys.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="odbc"/>
            <category term="driver"/>
            <category term="release note"/>
            
   </entry>
   <entry>
      <title>CUBRID OLEDB Driver Release Notes</title>
      <id>http://www.cubrid.org/348228</id>
      <published>2012-04-23T01:27:38-07:00</published>
      <updated>2013-05-23T21:34:16-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/348228"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/348228#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;CUBRID OLEDB Driver 9.1.0.p1 Release Note (2013-05-06)&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download:&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Drivers/OLEDB_Driver/&quot;&gt;http://ftp.cubrid.org/CUBRID_Drivers/OLEDB_Driver&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;width: 670px; margin: 10px 0px; font-size: 16px; font-family: Calibri, &apos;Times New Roman&apos;, Tahoma, sans-serif;&quot;&gt;Fixed bugs:&lt;/h3&gt;
&lt;ul style=&quot;color: #131212; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; line-height: 20px; font-size: 15px;&quot;&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-390&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-390&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-390&lt;/a&gt;&amp;nbsp;- Requesting schema_info&amp;nbsp;unnecessarily&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-398&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-398&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-398&lt;/a&gt;&amp;nbsp;- OLEDB] The previous Connection String doesn&apos;t work when connecting to a remote CUBRID&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-406&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-406&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-406&lt;/a&gt;&amp;nbsp;- OLEDB]&amp;nbsp;provider 64bit doesn&apos;t work well - CLONE from CUBRIDSUS&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-407&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-407&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-407&lt;/a&gt;&amp;nbsp;- OLEDB] Supporting Charset setting in OLEDB Provider&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-457&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-457&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-457&lt;/a&gt;&amp;nbsp;- OLEDB]&amp;nbsp;Some warnings in Test Connection, if using 64bit provider&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-490&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-490&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-490&lt;/a&gt;&amp;nbsp;- When using CursorLocation = adUseClient, it is crashed!&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-531&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-531&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-531&lt;/a&gt;&amp;nbsp;- OLEDB]&amp;nbsp;OleDbCommand.ExecuteReader(CommandBehavior) problem&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-534&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-534&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-534&lt;/a&gt;&amp;nbsp;- OLEDB]&amp;nbsp;return value of OleDbDataAdapter.Fill(DataTable) is not right&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-535&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-535&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-535&lt;/a&gt;&amp;nbsp;- OLEDB]if use Reader.GetBoolean to get a bit data, it will throw an exception&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/apis-541&quot; class=&quot;notexist&quot; style=&quot;color: #3b5999 !important; text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #ee0000;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-541&quot; style=&quot;color: #3b5999 !important; text-decoration: none;&quot;&gt;APIS-541&lt;/a&gt;&amp;nbsp;- OLEDB] rollback of OleDbTransaction is not work&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;h1&gt;CUBRID OLEDB Driver 9.1.0 Release Note&lt;/h1&gt;
&lt;p&gt;&lt;b&gt;Updates summary since beta release&lt;/b&gt;&lt;br /&gt;=================================================&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2 new schema rowsets added (Catalog and SQL language)&lt;/li&gt;
&lt;li&gt;New test cases added (localization, data types handling, extended connect)&lt;/li&gt;
&lt;li&gt;Changed the login internal procedure to use the connect_with_url CCI function; additional parameters included (login &amp;amp; query timeout, auto-commit)&lt;/li&gt;
&lt;li&gt;64-bit driver library available for download&lt;/li&gt;
&lt;li&gt;Various updates in the source code; more code cleanup&lt;/li&gt;
&lt;li&gt;Additional resources made available (new tutorial and short video)&lt;/li&gt;
&lt;li&gt;Some improvements in LOB handling&lt;/li&gt;
&lt;li&gt;New Installer version&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;General development notes&lt;/b&gt;&lt;br /&gt;=================================================&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The 8.4.1 provider code is based on the legacy CUBRID 3.1 OLE DB provider code&lt;/li&gt;
&lt;li&gt;Various enhancements and support for latest CUBRID releases has been implemented&lt;/li&gt;
&lt;li&gt;We have focused on supporting OLE DB Consumer templates (&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/8k76sd16%28v=vs.80%29.aspx&quot; target=&quot;_self&quot;&gt;http://msdn.microsoft.com/en-us/library/8k76sd16%28v=vs.80%29.aspx&lt;/a&gt;). Direct OLE DB interfaces should work as well, but the technology is deprecated.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;A full suite of open source test cases is now part of the driver code base release&lt;/li&gt;
&lt;li&gt;Regarding .NET support (via System.Data.OleDb namespace), we are encouraging the use of the fully managed CUBRID ADO.NET driver instead (&lt;a href=&quot;/wiki_apis/entry/cubrid-ado-net-driver&quot; target=&quot;_self&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-ado-net-driver&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;The code is released under the BSD license (&lt;a href=&quot;/bsd_license&quot; target=&quot;_self&quot;&gt;http://www.cubrid.org/bsd_license&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Release components&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;==============================================&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The driver source code (&lt;a href=&quot;http://svn.cubrid.org/cubridapis/oledb/branches/RB-8.4.1/Source/&quot; target=&quot;_self&quot;&gt;http://svn.cubrid.org/cubridapis/oledb/branches/RB-8.4.1/Source/&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;The driver OLE DB Data Provider compiled library x32/x64 release (CUBRIDProvider.dll)&lt;/li&gt;
&lt;li&gt;Win32 Driver Installer (with a short video)&lt;/li&gt;
&lt;li&gt;Release notes&lt;/li&gt;
&lt;li&gt;Test cases suite : 60+ OLE DB Consumer test cases (see the attachments for a test suite run output)&lt;/li&gt;
&lt;li&gt;3 Tutorials&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Known limitations&lt;/b&gt;&lt;br /&gt;=================================================&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There is limited support for queries not based on tables structures, in terms of columns automatic definitions&lt;/li&gt;
&lt;li&gt;There is no full support yet for BLOB/BLOB Dynamic Accessors&lt;/li&gt;
&lt;li&gt;Update() support is restricted to Auto-Commit mode = Off, which must be explicitly stated via session transaction.&lt;/li&gt;
&lt;li&gt;Not all schema are implemented as defined here: &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/a6fhbff0%28v=vs.71%29.aspx&quot; target=&quot;_self&quot;&gt;http://msdn.microsoft.com/en-us/library/a6fhbff0%28v=vs.71%29.aspx&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;More test coverage is required for testing non-standard data types&lt;/li&gt;
&lt;li&gt;We are supporting mainly C++ OLE DB templates; there is limited or no support for other driver usages (direct interfaces&lt;/li&gt;
&lt;li&gt;Very limited support for some special data types: SET, MUTISET and SEQUENCE&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;What&apos;s next/To-Do&lt;/b&gt;&lt;br /&gt;=================================================&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Re-Generate and publish the Doxygen driver documentation&lt;/li&gt;
&lt;li&gt;Continue to improve support for BLOB/CLOB&lt;/li&gt;
&lt;li&gt;Make available in write-mode additional connection properties: loging &amp;amp; query timeouts&lt;/li&gt;
&lt;li&gt;Add more test cases coverage, in particular for CUBRID specific data types and for .NET OleDb access.&lt;/li&gt;
&lt;li&gt;Remove the data provider distribution from the CUBRID standard installer&lt;/li&gt;
&lt;li&gt;Continue SVN cleanup and update Trunk&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="cubrid"/>
            <category term="oledb"/>
            <category term="driver"/>
            <category term="release note"/>
            
   </entry>
   <entry>
      <title>CUBRID OLEDB Driver 9.1.0.p1 Release Note</title>
      <id>http://www.cubrid.org/649866</id>
      <published>2013-05-03T18:44:35-07:00</published>
      <updated>2013-05-23T21:29:59-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/649866"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/649866#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;table cellspacing=&quot;2&quot; style=&quot;background: #cccccc;&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;9.1.0.p1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Fixed bugs:&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-390&quot;&gt;APIS-390&lt;/a&gt;] - 수행하지  않는(필요없는) schema_info 요청&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-398&quot;&gt;APIS-398&lt;/a&gt;] - OLEDB]&amp;nbsp;Driver를 사용하여 원격지의 CUBRID 연결 시 기존 Connection String이 적용되지 않음&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-406&quot;&gt;APIS-406&lt;/a&gt;] - OLEDB]&amp;nbsp;provider 64비트가 정상동작하지 않음 - CLONE from CUBRIDSUS&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-407&quot;&gt;APIS-407&lt;/a&gt;] - OLEDB]&amp;nbsp;OLEDB 프로바이더에 charset 지정 가능하도록 수정&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-457&quot;&gt;APIS-457&lt;/a&gt;] - OLEDB]&amp;nbsp;Some warnings in Test Connection, if using 64bit provider&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-490&quot;&gt;APIS-490&lt;/a&gt;] - When  using CursorLocation = adUseClient, it is crashed! &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-531&quot;&gt;APIS-531&lt;/a&gt;] - OLEDB]&amp;nbsp;OleDbCommand.ExecuteReader(CommandBehavior) problem&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-534&quot;&gt;APIS-534&lt;/a&gt;] - OLEDB]&amp;nbsp;return value of OleDbDataAdapter.Fill(DataTable) is not right&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-535&quot;&gt;APIS-535&lt;/a&gt;] - OLEDB]if use Reader.GetBoolean to get a bit data, it will throw an  exception&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-541&quot;&gt;APIS-541&lt;/a&gt;] - OLEDB] rollback of OleDbTransaction is not work&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</content>
                  <category term="oledb"/>
            
   </entry>
   <entry>
      <title>CUBRID OLEDB Driver</title>
      <id>http://www.cubrid.org/251916</id>
      <published>2012-01-04T23:10:15-08:00</published>
      <updated>2013-05-23T19:11:24-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/251916"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/251916#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;b&gt;OLE DB&lt;/b&gt; (Object Linking and Embedding, Database) is an API designed by Microsoft for accessing data from a variety of sources in a uniform manner, thus can be used by all Microsoft platforms. It is a set of interfaces implemented using the Component Object Model (COM).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;.NET Framework&lt;/b&gt; is a software framework for Microsoft Windows operating systems. It includes a large library, and it supports several programming languages which allows language interoperability (each language can utilize code written in other languages). The .NET library is available to all the programming languages that .NET supports. A data provider in the .NET Framework serves as a bridge between an application and a data source; a data provider is used to retrieve data from a data source and to reconcile changes to that data back to the data source.&lt;/p&gt;
&lt;div class=&quot;grid col2&quot;&gt;&lt;span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/?mid=downloads&amp;amp;item=oledb_driver&amp;amp;os=windows&quot; target=&quot;_self&quot;&gt;Download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-oledb-driver-installation-instructions-new&quot;&gt;Installation Instructions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-oledb-tutorials&quot; target=&quot;_self&quot;&gt;Latest News, Guides and Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/questions&quot; target=&quot;_self&quot;&gt;Questions&amp;nbsp;and Answers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/qa-ok-sign-cubrid-oledb-driver&quot;&gt;QA OK Sign report&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt; &lt;span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-oledb-driver-release-notes&quot;&gt;Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/manual/api/oledb/8.4.1/&quot; target=&quot;_self&quot;&gt;CUBRID OLEDB Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms722784(VS.85).aspx&quot; target=&quot;_self&quot;&gt;MSDN OLE DB Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS/component/10104&quot; target=&quot;_self&quot;&gt;JIRA Issue Tracker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/oledb/&quot; target=&quot;_self&quot;&gt;OLEDB SVN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;OLEDB driver source code is&amp;nbsp;distributed under the terms of&amp;nbsp;&lt;a href=&quot;/bsd_license&quot; target=&quot;_self&quot;&gt;BSD open source license&lt;/a&gt;.&lt;/p&gt;
&lt;div id=&quot;endic_ext_wrapper&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="oledb"/>
            <category term="driver"/>
            
   </entry>
   <entry>
      <title>CUBRID ODBC Driver</title>
      <id>http://www.cubrid.org/204000</id>
      <published>2011-08-15T04:11:55-07:00</published>
      <updated>2013-05-23T18:58:52-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/204000"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/204000#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;If you want to use CUBRID as a data source for your Windows applications using the ODBC Driver, follow tutorials provided in this project page.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;grid col2&quot;&gt;&lt;span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/?mid=downloads&amp;amp;item=odbc_driver&amp;amp;os=windows&quot; target=&quot;_self&quot;&gt;Download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-odbc-driver-installation-instructions-new&quot;&gt;Installation Instructions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-odbc-tutorials&quot; target=&quot;_self&quot;&gt;Latest News, Guides and Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/questions&quot; target=&quot;_self&quot;&gt;Questions and Answers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt; &lt;span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-odbc-driver-release-notes&quot;&gt;Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/desktop/ms714562(v=vs.85).aspx&quot; target=&quot;_self&quot;&gt;MSDN Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS/component/10103&quot; target=&quot;_self&quot;&gt;JIRA Issue Tracker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/qa-ok-sign-cubrid-odbc-driver&quot;&gt;QA OK Sign report&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CUBRID ODBC driver supports ODBC version 3.52, ODBC core, and some of Level 1 and Level 2 APIs. Since it has been developed based on ODBC Spec 3.x, backward compatibility is not completely ensured for programs written using ODBC Spec 2.x.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ODBC driver source code is distributed under the terms of &lt;a href=&quot;/bsd_license&quot; target=&quot;_self&quot;&gt;BSD open source license&lt;/a&gt;.&lt;/p&gt;
&lt;div id=&quot;endic_ext_wrapper&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="odbc"/>
            <category term="driver"/>
            
   </entry>
   <entry>
      <title>CUBRID OLEDB Driver Installation Instructions</title>
      <id>http://www.cubrid.org/644669</id>
      <published>2013-04-26T01:39:49-07:00</published>
      <updated>2013-05-22T21:52:59-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/644669"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/644669#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;The scope of this tutorial is to provide an introduction to the CUBRID OLEDB Data Provider. We will show you where to get the CUBRID OLEDB Provider library, how to setup a CUBRID connection and how to develop some simple applications, mainly using OLE DB Consumer templates.&lt;/p&gt;
&lt;table border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Notice: If your CUBRID OLEDB driver version is 9.1.0.p1 or later, &lt;/strong&gt;only one installation package is needed for both Windows 32 bit and 64 bit. Our new OLEDB installer supports CUBRID DB engine 8.4.1 or later.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If your CUBRID OLEDB Driver version is 9.1.0 or older&lt;/strong&gt;, it may have a problem on 64 bit operating system. Please see our installation tutorial for an old version: http://www.cubrid.org/wiki_apis/entry/cubrid-oledb-driver-installation-instructions-old&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2&gt;Download&lt;/h2&gt;
&lt;p&gt;Download a new installation package file which name is &quot;&lt;strong&gt;CUBRID_OLEDB_Provider-&amp;lt;version&amp;gt;-win32-x64.zip&lt;/strong&gt;&quot;.&lt;/p&gt;
&lt;p&gt;It will install both &lt;strong&gt;CUBRIDProvider32.dll&lt;/strong&gt; and &lt;strong&gt;CUBRIDPRovider64.dll&lt;/strong&gt; at once. You can find a CUBRID OLEDB Provider installer at:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Drivers/OLEDB_Driver/&quot;&gt;http://ftp.cubrid.org/CUBRID_Drivers/OLEDB_Driver/&lt;/a&gt; or&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/?mid=downloads&amp;amp;item=oledb_driver&quot;&gt;http://www.cubrid.org/?mid=downloads&amp;amp;item=oledb_driver&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Driver Installation&lt;/h2&gt;
&lt;p&gt;Run a CUBRID OLEDB Provider Installer (exe) and click the Next / Install Button.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image003.jpg&quot; src=&quot;/files/attach/images/194379/669/644/image003.jpg&quot; width=&quot;474&quot; height=&quot;386&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In your installation directory, you can see the following DLL files and uninstall. exe.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image005.jpg&quot; src=&quot;/files/attach/images/194379/669/644/image005.jpg&quot; width=&quot;245&quot; height=&quot;99&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;DB Connection&lt;/h2&gt;
&lt;h3&gt;Data Link Properties Dialog Box&lt;/h3&gt;
&lt;p&gt;To access this dialog box in Visual Studio .NET, select Connect to Database from the Tools menu or click the Connect to Database icon in Server Explorer. &lt;br /&gt;You also can open this dialog box by double-clicking a universal data link (.udl) file in Windows Explorer, and in a variety of other ways, including programmatically.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;1）you must install Visual Studio first, click &amp;ldquo;Connect to Database&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img alt=&quot;image001p.jpg&quot; src=&quot;/files/attach/images/194379/669/644/image001p.jpg&quot; width=&quot;374&quot; height=&quot;280&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2) Choose &amp;lt;other&amp;gt;,and .Net Famework Data Provider for OLE DB, Then click continue button &lt;br /&gt;&lt;img alt=&quot;image002p.jpg&quot; src=&quot;/files/attach/images/194379/669/644/image002p.jpg&quot; width=&quot;416&quot; height=&quot;235&quot; /&gt;&lt;/p&gt;
&lt;p&gt;3) Choose CUBRID OLE DB Provider, then click Data links button&lt;br /&gt;&lt;img alt=&quot;image003p.jpg&quot; src=&quot;/files/attach/images/194379/669/644/image003p.jpg&quot; width=&quot;319&quot; height=&quot;434&quot; /&gt;&lt;/p&gt;
&lt;p&gt;4) Fill in the information, and click Test Connection button, if driver connect database successful, success dialog will pop up.&lt;br /&gt;More information can found in msdn:&amp;nbsp;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/79t8s5dk(v=vs.71).aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/79t8s5dk(v=vs.71).aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image004p.jpg&quot; src=&quot;/files/attach/images/194379/669/644/image004p.jpg&quot; width=&quot;499&quot; height=&quot;370&quot; /&gt;&lt;/p&gt;
&lt;p&gt;5) A simple method of open dialog&lt;br /&gt;First, create a text file, and modify extension to *.udl: 1.txt -&amp;gt; 1.udl&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image005p.jpg&quot; src=&quot;/files/attach/images/194379/669/644/image005p.jpg&quot; width=&quot;185&quot; height=&quot;23&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Second, double click 1.udl, dialog will pop up.&lt;br /&gt;&lt;img alt=&quot;image006p.jpg&quot; src=&quot;/files/attach/images/194379/669/644/image006p.jpg&quot; width=&quot;326&quot; height=&quot;404&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;6) &amp;nbsp;Setting method of character set&lt;/p&gt;
&lt;p&gt;Connection String:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #ccffff;&quot;&gt;&quot;Provider=CUBRIDProvider;Data Source=demodb;Location=10.34.64.104;User ID=dba;Password=;Port=30000;Fetch Size=100;&lt;span style=&quot;color: #ff0000;&quot;&gt;Charset=utf-8&lt;/span&gt;;&quot;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;The following tutorials will help you when developing your application thru CUBRID OLEDB Provider.&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-oledb-overview&quot;&gt;CUBRID OLEDB Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/oledb-connection-string&quot;&gt;OLEDB Connection String&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/manual/841/en/Configuring%20Connection%20Strings&quot; target=&quot;_self&quot;&gt;Configuring Connection String&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/oledb-consumer-templates-coding&quot;&gt;OLEDB Consumer Templates Coding&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="driver"/>
            <category term="oledb"/>
            <category term="installation instructions"/>
            
   </entry>
   <entry>
      <title>Installing CUBRID PHP Driver using PECL</title>
      <id>http://www.cubrid.org/248660</id>
      <published>2011-12-29T21:18:19-08:00</published>
      <updated>2013-05-15T20:36:43-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/248660"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/248660#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;If PECL packager is installed in your system, the installation of CUBRID PHP Driver is straightforward. PECL will download and compile the library for you.&lt;/p&gt;
&lt;h3&gt;Requirements&lt;/h3&gt;
&lt;p&gt;To install the PHP Driver using PECL, you need to have CUBRID Database installed in your system since PHP Driver is dependent on CUBRID CCI API.&lt;/p&gt;
&lt;h3&gt;Installation&lt;/h3&gt;
&lt;p&gt;Type the following command to install the latest version of CUBRID PHP Driver.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo pecl install cubrid&lt;/pre&gt;
&lt;p&gt;If you need older version of the driver, you can indicate its exact version like:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo pecl install cubrid-8.3.0.0005&lt;/pre&gt;
&lt;blockquote class=&quot;q5&quot;&gt;
&lt;p&gt;During the installation you will be prompted to enter&amp;nbsp;&lt;b&gt;&quot;CUBRID base install dir [!autodetect] :&quot;&lt;/b&gt;. Just to make sure your installation goes smoothly, enter the full path to the directory where you have installed CUBRID. Ex: if CUBRID was installed at&amp;nbsp;&lt;i&gt;/home/cubridtest/CUBRID&lt;/i&gt;, then enter&amp;nbsp;&lt;i&gt;/home/cubridtest/CUBRID&lt;/i&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;a) If you have Centos 6.0 and above or Fedora 15 and above, then &lt;b&gt;do not edit&lt;/b&gt; the php.ini as stated in step b and instead create a file named &lt;b&gt;cubrid.ini&lt;/b&gt; in which you add only the line &lt;b&gt;extension=cubrid.so&lt;/b&gt;. This file has to be placed in the &lt;b&gt;/etc/php.d&lt;/b&gt; folder.&lt;/p&gt;
&lt;p&gt;b) &lt;b&gt;Edit the php.ini&lt;/b&gt; (default location: &lt;i&gt;/etc/php5/apache2/php.ini&lt;/i&gt; or &lt;i&gt;/etc/php.ini&lt;/i&gt;) and add the following two lines at the end of the file.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;[!CUBRID] extension=cubrid.so&lt;/pre&gt;
&lt;p&gt;To apply the changes, restart your Web Server.&lt;/p&gt;
&lt;h2&gt;What If I don&apos;t have PECL installed?&lt;/h2&gt;
&lt;p&gt;If you do not have PECL installed, follow these instructions to get it installed in your system.&lt;/p&gt;
&lt;h3&gt;Ubuntu Instructions&lt;/h3&gt;
&lt;p&gt;In order to install CUBRID-PHP API on Ubuntu, you will need PHP Development Tools (&lt;b&gt;phpize)&lt;/b&gt; and &lt;b&gt;pear&lt;/b&gt; packager.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Type the following command to &lt;b&gt;install phpize&lt;/b&gt;:&amp;nbsp;&lt;br /&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get install php5-dev&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Type the following command to &lt;b&gt;install pear package&lt;/b&gt;:&amp;nbsp;
&lt;div class=&quot;code&quot;&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get install php-pear&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then follow the above instructions to install CUBRID PHP Driver.&lt;/p&gt;
&lt;h3&gt;Fedora/CentOS Instructions&lt;/h3&gt;
&lt;p&gt;In order to install CUBRID-PHP API on Fedora/CentOS, you will need &lt;b&gt;PHP PEAR&lt;/b&gt; and &lt;b&gt;phpize&lt;/b&gt; packages.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Install phpize&lt;/b&gt;. Remember that &lt;i&gt;php-dev&lt;/i&gt; should be either PHP 5.2.x compatible or PHP 5.3.x since CUBRID-PHP Extension is developed for these PHP versions. If your Linux distribution installs earlier version, you need to update it.&amp;nbsp;
&lt;div class=&quot;code&quot;&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;yum install php-devel&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Download PEAR package&lt;/b&gt;:&amp;nbsp;
&lt;div class=&quot;code&quot;&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;wget http://pear.php.net/go-pear.phar&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Run PEAR package&lt;/b&gt; with PHP:&amp;nbsp;
&lt;div class=&quot;code&quot;&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;php go-pear.phar&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What&apos;s Next?&lt;/h2&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Refer to CUBRID PHP Tutorials&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="php"/>
            <category term="driver"/>
            <category term="tutorial"/>
            <category term="installation instructions"/>
            <category term="PECL"/>
            
   </entry>
   <entry>
      <title>CUBRID Sharding with node-cubrid 2.0</title>
      <id>http://www.cubrid.org/622064</id>
      <published>2013-03-26T23:53:17-07:00</published>
      <updated>2013-05-14T00:20:43-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/622064"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/622064#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;In this guide we will go through the process of setting up a CUBRID SHARD environment and using the CUBRID Node.js 2.0 driver to insert and retrieve data from the shard DB nodes.&lt;/p&gt;
&lt;p&gt;If you are not familiar with the CUBRID Node.js driver yet, check out our CUBRID Node.js Tutorials. Same goes for the CUBRID SHARD basic concepts &amp;ndash; see CUBRID SHARD.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;h2&gt;Setting up the CUBRID SHARD environment&lt;/h2&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;The first thing we need to do is set up the CUBRID SHARD and the shard databases architecture. For simplicity we will use two shard DB nodes.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So let&amp;rsquo;s get right to it. First, in each shard DB node we will create a database and a user account, and start the database:&lt;/p&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Shard DB name: sharddb&lt;/li&gt;
&lt;li&gt;Shard DB user account: shard&lt;/li&gt;
&lt;li&gt;Shard DB user password: shard123&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;To do this, we will use the CUBRID command line tool &amp;ldquo;csql&amp;rdquo;. In each shard DB node, type the following commands:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;# Creating CUBRID SHARD DB
cubrid createdb sharddb

# Creating CUBRID SHARD user account
csql -S -u dba sharddb -c &quot;create user shard password &apos;shard123&apos;&quot;

# Starting CUBRID SHARD DB
cubrid server start sharddb&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Next, we have to change the shard configurations. In the node that we choose to be the shard server we have to edit three shard configuration files located in the &amp;#92;CUBRID&amp;#92;conf directory:&lt;/p&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;shard.conf&lt;/li&gt;
&lt;li&gt;shard_connection.txt&lt;/li&gt;
&lt;li&gt;shard_key.txt&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;The first file, shard.conf, contains the shard broker parameters. The only thing to do here is to make sure that the following parameters are set:&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;SHARD_DB_NAME        = sharddb
SHARD_DB_USER        = shard
SHARD_DB_PASSWORD    = shard123&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;In the second file - shard_connection.txt, we will configure the network addresses of the shard DB nodes. In our setup, one node is on the same machine as the shard server, and the other one is located somewhere else in the local area network.&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;# shard-id  	real-db-name  		connection-info
0           		sharddb       		localhost
1           		sharddb      		10.0.0.186&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;Make sure that you set the correct IP address for the second shard DB node.&lt;/p&gt;
&lt;p&gt;The last file that we need to configure is shard_key.txt. This file configures the shard DB mapping configuration, for the shard key hash value, as follows:&lt;/p&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;[!%shard_key]: Sets the shard key section&lt;/li&gt;
&lt;li&gt;min: The minimum value range of the shard key hash results.&lt;/li&gt;
&lt;li&gt;max: The maximum range of the shard key hash results.&lt;/li&gt;
&lt;li&gt;shard_id: The shard identifier&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;[!%shard_key]
#min		max		shard_id
0		127      		0
128		255     		1&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;This configuration means that an INSERT statement will execute on shard 0 when the shard key hash result created by default hash function is between 0 and 127, and will execute on shard 1 when the shard key hash result created by the default hash function is between 128 and 255.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;We are now ready to start the CUBRID SHARD service:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;cubrid shard start
@ cubrid shard start
++ cubrid shard start: success&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;We have one more step to complete before we can use Node.js with CUBRID SHARD &amp;ndash; prepare our test data.&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Let&amp;rsquo;s create a table in each shard DB:&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;csql -C -u shard -p &apos;shard123&apos; sharddb@localhost -c &quot;create table student (s_no int, s_name varchar, s_age int, primary key(s_no))&quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;h2&gt;Using the CUBRID Node.js 2.0 driver with CUBRID SHARD&lt;/h2&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;The code examples we will show in this guide use the CUBRID Node.js 2.0 driver to perform the followings operations:&lt;/p&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Connect to the shard broker&lt;/li&gt;
&lt;li&gt;Insert data into the shard DB nodes&lt;/li&gt;
&lt;li&gt;Query the data we inserted&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3&gt;Inserting data:&lt;/h3&gt;
&lt;p&gt;Let&amp;rsquo;s see how to insert data into the shard DB nodes:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;var CUBRID = require(&apos;node-cubrid&apos;),
  Helpers = CUBRID.Helpers,
  ActionQueue = CUBRID.ActionQueue;

var client = CUBRID.createCUBRIDConnection(&apos;localhost&apos;, 45011, &apos;shard&apos;, &apos;shard123&apos;, &apos;sharddb&apos;);
ActionQueue.enqueue(
  [
    function (cb) {
      client.connect(cb);
    },
    function (cb) {
      Helpers.logInfo(&apos;Connected.&apos;);
      var i = 0;
      ActionQueue.while(
        function () {
          return i &amp;lt; 255;
        },
        function (cb) {
          Helpers.logInfo(&apos;Executing insert number &apos; + i + &apos;.&apos;);
          client.executeWithTypedParams(&apos;INSERT INTO student VALUES (/*+ shard_key */ ?,?,?)&apos;, [i, &apos;name_&apos; + i, 20 + i % 8], // i % 8 to set the age of the student between 20 and 27
            [&apos;int&apos;, &apos;varchar&apos;, &apos;int&apos;], function () {
              client.commit(function () {
                i++;
                cb.call();
              });
            });
        },
        function () {
          cb.call();
        }
      );
    },
    function (cb) {
      client.close(cb);
    }
  ],
  function () {
    Helpers.logInfo(&apos;Connection closed.&apos;);
  }
);&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;The output is:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;Connected.
Executing insert number 0.
Executing insert number 1.
Executing insert number 2.
Executing insert number 3.
(&amp;hellip;)
Executing insert number 251.
Executing insert number 252.
Executing insert number 253.
Executing insert number 254.
Connection closed.&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;As you can see, there are a few differences in the above code when compared to connecting and inserting in a &amp;ldquo;normal&amp;rdquo; CUBRID database setup. The most important one is the connection port. By default, the CUBRID SHARD broker port is 45011, but you can change it in the shard.conf file.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;Another key difference is in the INSERT statement that we execute. Here we have to specify the shard_key column using a shard SQL hint. It will tell the shard broker which shard DB to choose according to the setup we made in the shard_key.txt file.&lt;/p&gt;
&lt;p&gt;Tip: For more information about shard SQL hints see Selecting a Shard DB through the Shard SQL Hint.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;So, let&amp;rsquo;s see what CUBRID SHARD did when it executed these statements, by checking the shard broker log file located in &amp;#92;CUBRID&amp;#92;log&amp;#92;broker&amp;#92;proxy_log:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;Select shard. (shard_id:0, key_column:[shard_key_column], shard_key_id:0).
Select shard. (prev_shard_id:-1, curr_shard_id:0). context(cid:1, uid:12, is_busy:Y, is_in_tran:N, is_prepare_for_execute:N, free_on_end_tran:N, free_on_client_io_write:N, free_context:N, is_client_in_tran:Y, is_cas_in_tran:N, is_bypass_msg:N, waiting_event:((nil), -), func_code:-1, stmt_h_id:-1, stmt_hint_type:-1, wait_timeout:30, client_id:1, shard_id:-1, cas_id:-1, error_ind:0, error_code:0, error_msg:[-] ).
As expected, the CUBRID SHARD broker selected our first shard node and ran the statement on it. It is the same for the first 127 queries. So what about query number 128 and next?
Select shard. (shard_id:1, key_column:[shard_key_column], shard_key_id:4).
Select shard. (prev_shard_id:-1, curr_shard_id:1). context(cid:1, uid:12, is_busy:Y, is_in_tran:N, is_prepare_for_execute:N, free_on_end_tran:N, free_on_client_io_write:N, free_context:N, is_client_in_tran:Y, is_cas_in_tran:N, is_bypass_msg:N, waiting_event:((nil), -), func_code:-1, stmt_h_id:-1, stmt_hint_type:-1, wait_timeout:30, client_id:1, shard_id:-1, cas_id:-1, error_ind:0, error_code:0, error_msg:[-] ).
For the 128th INSERT statement (&amp;ldquo;INSERT INTO student VALUES (/*+ shard_key */ 128,&amp;rsquo;name_128&amp;rsquo;,20)&amp;rdquo;) the broker selected the other shard node since according to our shard_key.txt configuration, INSERT statements with the key column value (here s_no = 128) bigger than 127 will execute on the second shard DB node.&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;h3&gt;Querying the CUBRID SHARD DB nodes&lt;/h3&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;In the next section we will learn how to retrieve the data from our shard DB nodes. The only thing that is different here is that CUBRID SHARD uses the (old) 8.4.x TCP protocol for query execution, so before we can run a query we have to tell Node.js driver to use this protocol by calling the setEnforceOldQueryProtocol() method. Now we can execute our queries, again using the shard SQL hints:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;var CUBRID = require(&apos;node-cubrid&apos;),
  Helpers = CUBRID.Helpers,
  ActionQueue = CUBRID.ActionQueue,
  Result2Array = CUBRID.Result2Array;

var client = CUBRID.createCUBRIDConnection(&apos;localhost&apos;, 45011, &apos;shard&apos;, &apos;shard123&apos;, &apos;sharddb&apos;);
ActionQueue.enqueue(
  [
    function (cb) {
      client.connect(cb);
    },
    function (cb) {
      client.setEnforceOldQueryProtocol(true);
      Helpers.logInfo(&apos;Querying: select * from student /*+ shard_id(0) */&apos;);
      client.query(&apos;select * from student /*+ shard_id(0) */&apos;, cb);
    },
    function (result, queryHandle, cb) {
      Helpers.logInfo(&apos;Resutls from the first shard (shard_id = 0):&apos;);
      Helpers.logInfo(&apos;Query result rows count: &apos; + Result2Array.TotalRowsCount(result));
      var arr = Result2Array.RowsArray(result);
      for (var j = 0; j &amp;lt; arr.length; j++) {
        Helpers.logInfo(arr[j].toString());
      }
      client.closeQuery(queryHandle, cb);
    },
    function (queryHandle, cb) {
      client.close(cb);
    }
  ],
  function () {
  }
);&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;Here we used the /*+ shard_id(0) */ SQL hint to specify which shard DB we are targeting. As expected, we have retrieved the data from the first shard DB node:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;Querying: select * from student /*+ shard_id(0) */
Results from the first shard (shard_id = 0):
Query result rows count: 128
0,name_0,20
1,name_1,21
2,name_2,22
3,name_3,23
(&amp;hellip;)
124,name_124,24
125,name_125,25
126,name_126,26
127,name_127,27&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;To get the data from the other shard DB the only thing we have to change is the parameter of the SQL hint to 1: /*+ shard_id(1) */ and we will get the desired results:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;Querying: select * from student /*+ shard_id(1) */
Results from the first shard (shard_id = 1):
Query result rows count: 127
128,name_128,20
129,name_129,21
130,name_130,22
131,name_131,23
(&amp;hellip;)
251,name_251,23
252,name_252,26
253,name_253,25
254,name_254,26&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;What if we want to get data from an invalid shard id, for example if we run &amp;ldquo;select * from student /*+ shard_id(2) */&amp;rdquo;? The shard broker will obviously return an error. So let&amp;rsquo;s look at the log file after we ran this query:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;Create new sql statement. (index:0). statement(index:0, num_alloc:1, stmt_h_id:0, status:1, context id:0, context uid:1, num pinned:0, lru_next:(nil), lru_prev:(nil), sql_stmt:[select * from student /*+ shard_id(2) */]). context(cid:0, uid:1, is_busy:Y, is_in_tran:N, is_prepare_for_execute:N, free_on_end_tran:N, free_on_client_io_write:N, free_context:N, is_client_in_tran:Y, is_cas_in_tran:N, is_bypass_msg:N, waiting_event:((nil), -), func_code:-1, stmt_h_id:-1, stmt_hint_type:-1, wait_timeout:30, client_id:0, shard_id:-1, cas_id:-1, error_ind:0, error_code:0, error_msg:[-] ).
Invalid shard/CAS id is requested. (shard_id:2, cas_id:-1).
send error(msg) to the client. (error_ind:-1, error_code:-1001, errro_msg:-)&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;h2&gt;References and links&lt;/h2&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;table style=&quot;border: none;&quot; width=&quot;516&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoNormalTable&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes; height: 39.75pt; mso-prop-change: Ovidiu 20130318T1806;&quot;&gt;
&lt;td style=&quot;width: 2.2in; border-top-style: solid; border-bottom-style: solid; border-left-style: solid; border-color: windowtext; border-width: 1pt; padding: 0in 5.4pt; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;211&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;CUBRID Node.js driver home page&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 203.75pt; border: solid windowtext 1.0pt !msorm; border-left: none !msorm; mso-border-left-alt: solid windowtext .5pt !msorm; mso-border-alt: solid windowtext .5pt !msorm; padding: 0in 5.4pt 0in 5.4pt !msorm; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;305&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;https://github.com/CUBRID/node-cubrid&quot;&gt;https://github.com/CUBRID/node-cubrid&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;https://github.com/organizations/CUBRID&quot;&gt;https://github.com/organizations/CUBRID&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 1; height: 39.75pt; mso-prop-change: Ovidiu 20130318T1806;&quot;&gt;
&lt;td style=&quot;width: 2.2in; border-bottom-style: solid; border-left-style: solid; border-right-color: windowtext; border-bottom-color: windowtext; border-left-color: windowtext; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-top-style: none; padding: 0in 5.4pt; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;211&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Online driver documentation&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 303.75pt; border-top: none !msorm; border-left: none !msorm; border-bottom: solid windowtext 1.0pt !msorm; border-right: solid windowtext 1.0pt !msorm; mso-border-top-alt: solid windowtext .5pt !msorm; mso-border-left-alt: solid windowtext .5pt !msorm; mso-border-alt: solid windowtext .5pt !msorm; padding: 0in 5.4pt 0in 5.4pt !msorm; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;405&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;https://github.com/CUBRID/node-cubrid/tree/master/documentation&quot;&gt;https://github.com/CUBRID/node-cubrid/tree/master/documentation&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 2; height: 39.75pt; mso-prop-change: Ovidiu 20130318T1806;&quot;&gt;
&lt;td style=&quot;width: 2.2in; border-bottom-style: solid; border-left-style: solid; border-right-color: windowtext; border-bottom-color: windowtext; border-left-color: windowtext; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-top-style: none; padding: 0in 5.4pt; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;211&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Online Wiki&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 303.75pt; border-top: none !msorm; border-left: none !msorm; border-bottom: solid windowtext 1.0pt !msorm; border-right: solid windowtext 1.0pt !msorm; mso-border-top-alt: solid windowtext .5pt !msorm; mso-border-left-alt: solid windowtext .5pt !msorm; mso-border-alt: solid windowtext .5pt !msorm; padding: 0in 5.4pt 0in 5.4pt !msorm; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;405&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-node-js-driver&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-node-js-driver&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 3; height: 39.75pt; mso-prop-change: Ovidiu 20130318T1806;&quot;&gt;
&lt;td style=&quot;width: 2.2in; border-bottom-style: solid; border-left-style: solid; border-right-color: windowtext; border-bottom-color: windowtext; border-left-color: windowtext; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-top-style: none; padding: 0in 5.4pt; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;211&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Driver tutorials and examples&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 303.75pt; border-top: none !msorm; border-left: none !msorm; border-bottom: solid windowtext 1.0pt !msorm; border-right: solid windowtext 1.0pt !msorm; mso-border-top-alt: solid windowtext .5pt !msorm; mso-border-left-alt: solid windowtext .5pt !msorm; mso-border-alt: solid windowtext .5pt !msorm; padding: 0in 5.4pt 0in 5.4pt !msorm; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;405&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-node-js-tutorials&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-node-js-tutorials&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 4; height: 39.75pt;&quot;&gt;
&lt;td style=&quot;width: 2.2in; border-bottom-style: solid; border-left-style: solid; border-right-color: windowtext; border-bottom-color: windowtext; border-left-color: windowtext; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-top-style: none; padding: 0in 5.4pt; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;211&quot;&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 12.0pt; line-height: 107%;&quot;&gt;CUBRID   SHARD documentation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 303.75pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;405&quot;&gt;
&lt;p style=&quot;line-height: normal;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 12.0pt; color: #4472c4; mso-bidi-font-weight: bold;&quot;&gt;&lt;a href=&quot;/manual/843/en/CUBRID%20SHARD&quot;&gt;&lt;span style=&quot;color: #4472c4;&quot;&gt;http://www.cubrid.org/manual/843/en/CUBRID%20SHARD&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;line-height: normal;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 12.0pt; color: #4472c4; mso-bidi-font-weight: bold;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 5; height: 39.75pt;&quot;&gt;
&lt;td style=&quot;width: 2.2in; border-bottom-style: solid; border-left-style: solid; border-right-color: windowtext; border-bottom-color: windowtext; border-left-color: windowtext; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-top-style: none; padding: 0in 5.4pt; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;211&quot;&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 12.0pt; line-height: 107%; mso-bidi-font-weight: bold;&quot;&gt;Database Sharding the right way: Easy, Reliable and Open source&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 303.75pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;405&quot;&gt;
&lt;p style=&quot;line-height: normal;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 12.0pt; mso-bidi-font-weight: bold;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/cubrid/database-sharding-the-right-way-easy-reliable-and-open-source-highload-2012&quot;&gt;http://www.slideshare.net/cubrid/database-sharding-the-right-way-easy-reliable-and-open-source-highload-2012&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 6; mso-yfti-lastrow: yes; height: 39.75pt;&quot;&gt;
&lt;td style=&quot;width: 2.2in; border-bottom-style: solid; border-left-style: solid; border-right-color: windowtext; border-bottom-color: windowtext; border-left-color: windowtext; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; border-top-style: none; padding: 0in 5.4pt; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;211&quot;&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 12.0pt; line-height: 107%; mso-bidi-font-weight: bold;&quot;&gt;Selecting a Shard DB through the Shard SQL Hint&lt;span style=&quot;font-size: 12.0pt; line-height: 107%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 303.75pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; height: 39.75pt;&quot; valign=&quot;top&quot; width=&quot;405&quot;&gt;
&lt;p style=&quot;line-height: normal;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 12.0pt; mso-bidi-font-weight: bold;&quot;&gt;&lt;a href=&quot;/manual/90/en/Selecting%20a%20Shard%20DB%20through%20the%20SHARD%20SQL%20Hint&quot;&gt;http://www.cubrid.org/manual/90/en/Selecting%20a%20Shard%20DB%20through%20the%20SHARD%20SQL%20Hint&lt;/a&gt;&lt;span style=&quot;font-size: 12.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 12.0pt; line-height: 107%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;We hope you enjoyed using the CUBRID Node.js 2.0 driver in a sharding environment!&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;Please let us know your feedback and suggestions, so we can improve! And do not forget, tryout the CUBRID Node.js 2.0 driver!&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="node.js"/>
            <category term="node.js 2.0"/>
            <category term="tutorial"/>
            <category term="sharding"/>
            
   </entry>
   <entry>
      <title>CUBRID PDO Driver Installation Instructions</title>
      <id>http://www.cubrid.org/250976</id>
      <published>2012-01-03T17:29:09-08:00</published>
      <updated>2013-05-13T01:11:25-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/250976"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/250976#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;There are several ways to install CUBRID PDO Driver. Below you will see instructions for each of them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[Installing CUBRID PDO Driver using PECL] (Linux)&lt;/li&gt;
&lt;li&gt;[Downloading and Installing Precompiled CUBRID PHP/PDO Driver (Windows)]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_tutorials/entry/create-a-cubrid-database-vm-with-vagrant-and-chef-cookbook-under-5-minutes&quot;&gt;Create a CUBRID Database VM with Vagrant and Chef Cookbook under 5 minutes&lt;/a&gt;&amp;nbsp;(Linux)&lt;/li&gt;
&lt;li&gt;[Build CUBRID PDO Driver on Mac OS X through PECL using CCI Driver] (Mac OS X)&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="pdo"/>
            <category term="installation instructions"/>
            
   </entry>
   <entry>
      <title>Installing CUBRID PDO Driver using PECL</title>
      <id>http://www.cubrid.org/250953</id>
      <published>2012-01-03T17:15:06-08:00</published>
      <updated>2013-05-13T01:09:28-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/250953"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/250953#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;If PECL packager is installed in your system, the installation of CUBRID PDO Driver is straightforward. PECL will download and compile the library for you.&lt;/p&gt;
&lt;h3&gt;Requirements&lt;/h3&gt;
&lt;p&gt;To install the PDO Driver using PECL, you need to have CUBRID Database installed in your system since PDO&amp;nbsp;Driver is dependent on CUBRID CCI API.&lt;/p&gt;
&lt;h3&gt;Installation&lt;/h3&gt;
&lt;p&gt;Type the following command to install the latest version of CUBRID PDO Driver.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo pecl install pdo_cubrid&lt;/pre&gt;
&lt;p&gt;If you need older version of the driver, you can indicate its exact version like:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo pecl install pdo_cubrid-8.3.1.0003&lt;/pre&gt;
&lt;blockquote class=&quot;q5&quot;&gt;
&lt;p&gt;During the installation you will be prompted to enter&amp;nbsp;&lt;b&gt;&quot;CUBRID base install dir [!autodetect] :&quot;&lt;/b&gt;. Just to make sure your installation goes smoothly, enter the full path to the directory where you have installed CUBRID. Ex: if CUBRID was installed at&amp;nbsp;&lt;i&gt;/home/cubridtest/CUBRID&lt;/i&gt;, then enter&amp;nbsp;&lt;i&gt;/home/cubridtest/CUBRID&lt;/i&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;a) If you have &lt;strong&gt;Centos 6.0 and above, Fedora 15 and above, or Ubuntu 13.04 and above&lt;/strong&gt;, create a file named &lt;b&gt;pdo_cubrid.ini&lt;/b&gt; in &lt;em&gt;/etc/php5/conf.d/&lt;/em&gt;&amp;nbsp;or &lt;em&gt;/etc/php.d&lt;/em&gt; (check where in your system other &lt;em&gt;.ini&lt;/em&gt;&amp;nbsp;files are located).&lt;/p&gt;
&lt;p&gt;b) Otherwise,&amp;nbsp;&lt;b&gt;edit the php.ini&lt;/b&gt;&amp;nbsp;(default location:&amp;nbsp;&lt;i&gt;/etc/php5/apache2/php.ini &lt;/i&gt;or &lt;i&gt;/etc/php.ini&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt;Then in the above &lt;strong&gt;.ini&lt;/strong&gt; file add the following line:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;extension=pdo_cubrid.so&lt;/pre&gt;
&lt;p&gt;To apply the changes, restart your Web Server.&lt;/p&gt;
&lt;h2&gt;What If I don&apos;t have PECL installed?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_apis/entry/installing-cubrid-php-driver-using-pecl&quot;&gt;Install PECL packager&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What&apos;s Next?&lt;/h2&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Refer to &lt;a href=&quot;/wiki_apis/entry/cubrid-pdo-tutorials&quot;&gt;CUBRID PDO Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="pdo"/>
            <category term="installation instructions"/>
            <category term="tutorial"/>
            
   </entry>
   <entry>
      <title>Build CUBRID PDO Driver on Mac OS X through PECL using CCI Driver</title>
      <id>http://www.cubrid.org/653282</id>
      <published>2013-05-07T23:11:14-07:00</published>
      <updated>2013-05-07T23:11:14-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/653282"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/653282#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;In this tutorial you will learn how to install CUBRID PDO driver on Mac OS X through PECL repository using CUBRID CCI driver.&lt;/p&gt;
&lt;h2&gt;Download CCI driver&lt;/h2&gt;
&lt;p&gt;CUBRID PDO driver has a dynamic dependency on CCI driver. You can download either &lt;a href=&quot;/?mid=downloads&amp;amp;item=cci_driver&amp;amp;os=detect&quot;&gt;64 or 32 bit version of CUBRID CCI diver&lt;/a&gt;&amp;nbsp;depending on your Mac OS architecture.&amp;nbsp;Once you download it, you need to copy the contents of the &lt;span style=&quot;font-family: monospace;&quot;&gt;/lib&lt;/span&gt; directory to&amp;nbsp;&lt;span style=&quot;font-family: monospace;&quot;&gt;/usr/lib&lt;/span&gt;&amp;nbsp;and the contents of &lt;span style=&quot;font-family: monospace;&quot;&gt;/include&lt;/span&gt; directory to &lt;span style=&quot;font-family: monospace;&quot;&gt;/usr/include&lt;/span&gt;. The following example illustrates how to extract a 64-bit version and copy its contents.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;tar zxvf CUBRID-CCI-8.4.1.4009-x64.macosx.tar.gz
sudo cp CUBRID-CCI-8.4.1.4009-x64/lib/* /usr/lib
sudo cp CUBRID-CCI-8.4.1.4009-x64/include/* /usr/include&lt;/pre&gt;
&lt;h2&gt;Install PDO driver using PECL&lt;/h2&gt;
&lt;p&gt;Type the following command to install the latest version of CUBRID PDO Driver from PECL repository.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo pecl install pdo_cubrid&lt;/pre&gt;
&lt;p&gt;If you need older version of the driver, you can indicate its exact version like:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo pecl install pdo_cubrid-8.4.3.0001&lt;/pre&gt;
&lt;p&gt;During the installation you will be prompted to enter &quot;&lt;strong&gt;CUBRID base install dir [!autodetect]:&lt;/strong&gt;&quot;. Enter that same directory where we have extracted CUBRID CCI driver files.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;CUBRID base install dir [!autodetect] : /usr&lt;/pre&gt;
&lt;h2&gt;Configure php.ini&lt;/h2&gt;
&lt;p&gt;Now find the &lt;b&gt;php.ini&lt;/b&gt; file and add the following line which instructs your Web server or FastCGI Process Manager to load CUBRID PDO extension with the next restart.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;extension=pdo_cubrid.so&lt;/pre&gt;
&lt;p&gt;Done! Now restart your Web server to load CUBRID extension.&lt;/p&gt;
&lt;h2&gt;Test CUBRID PHP API&lt;/h2&gt;
&lt;p&gt;Create a simple &lt;b&gt;test.php&lt;/b&gt; file with the following contents:&lt;/p&gt;
&lt;pre class=&quot;brush:php&quot;  title=&quot;&quot;&gt;&amp;lt;?php phpinfo(); ?&amp;gt;&lt;/pre&gt;
&lt;p&gt;In your browser visit &lt;a target=&quot;_self&quot; href=&quot;http://localhost/test.php&quot;&gt;http://localhost/test.php&lt;/a&gt;. Search for &quot;&lt;b&gt;pdo_cubrid&lt;/b&gt;&quot;. You should see entries like &lt;i&gt;Version&lt;/i&gt;, &lt;i&gt;CCI Version&lt;/i&gt;, and &lt;i&gt;CUBRID Version&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;If you have any questions, please ask them at our &lt;a target=&quot;_self&quot; href=&quot;/questions&quot;&gt;Q&amp;amp;A site&lt;/a&gt;. If any issues with installation, post on our &lt;a target=&quot;_self&quot; href=&quot;/forum&quot;&gt;forum&lt;/a&gt;.&lt;/p&gt;
&lt;div id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="pdo"/>
            <category term="driver"/>
            <category term="Mac OS X"/>
            <category term="build instructions"/>
            <category term="CCI"/>
            
   </entry>
   <entry>
      <title>CUBRID OLEDB Driver Installation Instructions Old</title>
      <id>http://www.cubrid.org/348265</id>
      <published>2012-04-23T01:36:40-07:00</published>
      <updated>2013-05-06T00:58:17-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/348265"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/348265#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;The scope of this tutorial is to provide an introduction to the CUBRID OLEDB Data Provider, version 8.4.1. We will show you where to get the CUBRID OLEDB Provider library, how to setup a CUBRID connection and how to develop some simple applications, mainly using OLE DB Consumer templates.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Requirements&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Windows Vista/7&lt;/li&gt;
&lt;li&gt;CUBRID 8.4.1 (&lt;b&gt;The CUBRID version must match the Driver version)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Visual Studio 2010 Express Edition (&lt;a href=&quot;http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express&quot; target=&quot;_self&quot;&gt;http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;.NET framework 3.5 or above (&lt;a href=&quot;http://www.microsoft.com/download/en/details.aspx?id=21&quot; target=&quot;_self&quot;&gt;http://www.microsoft.com/download/en/details.aspx?id=21&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CUBRID OLE DB Data Provider&lt;/h2&gt;
&lt;p&gt;Before you start to developing applications with CUBRID, you will need the provider library (&lt;b&gt;CUBRIDProvider.dll&lt;/b&gt;). Make sure to download the appropiate DLL according to your CUBRID installation. You can check the CUBRID version by using the command &quot;&lt;span style=&quot;font-family: monospace;&quot;&gt;cubrid --version&lt;/span&gt;&quot;. You have several options:&lt;/p&gt;
&lt;h3&gt;Use official installer&lt;/h3&gt;
&lt;p&gt;Use the official &lt;a href=&quot;/?mid=downloads&amp;amp;item=oledb_driver&quot; target=&quot;_self&quot;&gt;CUBRID OLED DB Data Provider Installer&lt;/a&gt;. You can follow this &lt;i&gt;1 minute&lt;/i&gt; video tutorial to see how to install CUBRIDProvider using the installer.&lt;/p&gt;
&lt;p&gt;&lt;iframe src=&quot;http://www.youtube.com/embed/FN_6c9x9UOA&quot; width=&quot;420&quot; frameborder=&quot;0&quot; height=&quot;315&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;h3&gt;Download the compiled libraries&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;line-height: normal;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-Drivers/OLEDB_Driver/CUBRIDProvider-8.4.1.zip/download&quot; target=&quot;_self&quot;&gt;32 bit OLEDB Data Provider&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-Drivers/OLEDB_Driver/CUBRIDProvider-8.4.1-x64.zip/download&quot; target=&quot;_self&quot;&gt;64 bit OLEDB Data Provider&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you choose to install it manually (by just downloading the CUBRIDProvider.dll), you need to properly register the driver before you can use it, through one of the following registration methods:&lt;/p&gt;
&lt;p&gt;1.	Download the CUBRIDProvider.tlb file from here, and make sure it is located in the same folder with the CUBRIDProvider.dll, and run the following command in that folder:&lt;/p&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;regsvr32 CUBRIDProvider.dll&lt;/pre&gt;
&lt;p&gt;2.	Download the CUBRIDProvider.reg file from here, update it by specifying your own path location of the CUBRIDProvider.dll (the CUBRIDProvider.reg file you downloaded will contain by default the following location: C:&amp;#92;CUBRID&amp;#92;oledb&amp;#92;CUBRIDProvider.dll) and then run the following command:&lt;/p&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;regedit CUBRIDProvider.reg&lt;/pre&gt;
&lt;h3&gt;Compile from source code&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;Checkout the code from the SVN repository:&lt;/span&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/oledb/branches/RB-8.4.1/Source/&quot; target=&quot;_self&quot; style=&quot;line-height: normal;&quot;&gt;http://svn.cubrid.org/cubridapis/oledb/branches/RB-8.4.1/Source/&lt;/a&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;For compiling the source code and the example in this tutorial, use Microsoft Visual Studio Express edition &amp;ndash; you can download it from: &lt;/span&gt;&lt;a href=&quot;http://www.microsoft.com/express/Downloads/#2010-Visual-CPP&quot; target=&quot;_self&quot; style=&quot;line-height: normal;&quot;&gt;http://www.microsoft.com/express/Downloads/#2010-Visual-CPP&lt;/a&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;. Please make sure you download the appropriate version &amp;ndash; 32 or 64-bit.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;Compile or modify the installer&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;If you wish to make certain changes to our OLEDB Data Provider Installer, refer to &lt;/span&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;[Compiling the CUBRID OLE DB installer].&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="oledb"/>
            <category term="driver"/>
            <category term="installation instructions"/>
            
   </entry>
   <entry>
      <title>CUBRID OLEDB Driver 9.1.0 release note</title>
      <id>http://www.cubrid.org/644377</id>
      <published>2013-04-25T22:58:53-07:00</published>
      <updated>2013-05-05T23:48:34-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/644377"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/644377#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;table style=&quot;background: #cccccc;&quot; cellspacing=&quot;2&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;9.1.0.0001&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Updates summary since beta release&lt;/b&gt;&lt;br /&gt;=================================================&lt;/p&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;2 new schema rowsets added (Catalog and SQL language)&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;New test cases added (localization, data types handling, extended connect)&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Changed the login internal procedure to use the connect_with_url CCI function; additional parameters included (login &amp;amp; query timeout, auto-commit)&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;64-bit driver library available for download&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Various updates in the source code; more code cleanup&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Additional resources made available (new tutorial and short video)&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Some improvements in LOB handling&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;New Installer version&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;General development notes&lt;/b&gt;&lt;br /&gt;=================================================&lt;/p&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;The 8.4.1 provider code is based on the legacy CUBRID 3.1 OLE DB provider code&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Various enhancements and support for latest CUBRID releases has been implemented&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;We have focused on supporting OLE DB Consumer templates (&lt;a style=&quot;color: #3b5999 !important; text-decoration: none;&quot; target=&quot;_self&quot; href=&quot;http://msdn.microsoft.com/en-us/library/8k76sd16%28v=vs.80%29.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/8k76sd16%28v=vs.80%29.aspx&lt;/a&gt;). Direct OLE DB interfaces should work as well, but the technology is deprecated.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;A full suite of open source test cases is now part of the driver code base release&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Regarding .NET support (via System.Data.OleDb namespace), we are encouraging the use of the fully managed CUBRID ADO.NET driver instead (&lt;a style=&quot;color: #3b5999 !important; text-decoration: none;&quot; target=&quot;_self&quot; href=&quot;/wiki_apis/entry/cubrid-ado-net-driver&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-ado-net-driver&lt;/a&gt;).&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;The code is released under the BSD license (&lt;a style=&quot;color: #3b5999 !important; text-decoration: none;&quot; target=&quot;_self&quot; href=&quot;/bsd_license&quot;&gt;http://www.cubrid.org/bsd_license&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Release components&lt;br /&gt;&lt;/b&gt;==============================================&lt;/p&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;The driver source code (&lt;a style=&quot;color: #3b5999 !important; text-decoration: none;&quot; target=&quot;_self&quot; href=&quot;http://svn.cubrid.org/cubridapis/oledb/branches/RB-8.4.1/Source/&quot;&gt;http://svn.cubrid.org/cubridapis/oledb/branches/RB-8.4.1/Source/&lt;/a&gt;)&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;The driver OLE DB Data Provider compiled library x32/x64 release (CUBRIDProvider.dll)&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Win32 Driver Installer (with a short video)&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Release notes&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Test cases suite : 60+ OLE DB Consumer test cases (see the attachments for a test suite run output)&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;3 Tutorials&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Known limitations&lt;/b&gt;&lt;br /&gt;=================================================&lt;/p&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;There is limited support for queries not based on tables structures, in terms of columns automatic definitions&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;There is no full support yet for BLOB/BLOB Dynamic Accessors&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Update() support is restricted to Auto-Commit mode = Off, which must be explicitly stated via session transaction.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Not all schema are implemented as defined here:&amp;nbsp;&lt;a style=&quot;color: #3b5999 !important; text-decoration: none;&quot; target=&quot;_self&quot; href=&quot;http://msdn.microsoft.com/en-us/library/a6fhbff0%28v=vs.71%29.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/a6fhbff0%28v=vs.71%29.aspx&lt;/a&gt;.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;More test coverage is required for testing non-standard data types&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;We are supporting mainly C++ OLE DB templates; there is limited or no support for other driver usages (direct interfaces&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Very limited support for some special data types: SET, MUTISET and SEQUENCE&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;What&apos;s next/To-Do&lt;/b&gt;&lt;br /&gt;=================================================&lt;/p&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Re-Generate and publish the Doxygen driver documentation&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Continue to improve support for BLOB/CLOB&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Make available in write-mode additional connection properties: loging &amp;amp; query timeouts&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Add more test cases coverage, in particular for CUBRID specific data types and for .NET OleDb access.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Remove the data provider distribution from the CUBRID standard installer&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Continue SVN cleanup and update Trunk&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</content>
                  <category term="release note"/>
            <category term="oledb"/>
            
   </entry>
   <entry>
      <title>CUBRID ODBC Driver Installation Instructions</title>
      <id>http://www.cubrid.org/644583</id>
      <published>2013-04-26T00:30:40-07:00</published>
      <updated>2013-05-05T23:15:44-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/644583"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/644583#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;div&gt;If you want to use CUBRID as a data source for your Windows applications using the ODBC Driver, this article will help you achieve this.&lt;/div&gt;
&lt;table border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div&gt;&lt;strong&gt;Notice: If your CUBRID ODBC Driver version is 9.1.0.p1 or later,&lt;/strong&gt; only one installation package is needed for both Windows 32 bit and 64 bit. Our new ODBC installer  supports CUBRID DB engine 8.4.1 or later.&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;If your CUBRID ODBC Driver version is 9.1.0 or older,&lt;/strong&gt; it may have a problem on 64 bit operating system. Please see our installation tutorial for an old version: &lt;a href=&quot;/wiki_apis/entry/cubrid-odbc-driver-installation-instructions-old&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-odbc-driver-installation-instructions-old&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Download&lt;/h2&gt;
&lt;div&gt;Download a new installation package file which name is &quot;&lt;strong&gt;cubrid-odbc-&amp;lt;version&amp;gt;-win32-x64&lt;/strong&gt;.zip&quot;. &lt;br /&gt;It will install both &lt;strong&gt;cubrid_odbc32.dll&lt;/strong&gt; and &lt;strong&gt;cubrid_odbc64.dll &lt;/strong&gt;at once. You can find a CUBRId ODBC inataller at:&lt;br /&gt; &lt;br /&gt;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Drivers/ODBC_Driver/&quot;&gt;http://ftp.cubrid.org/CUBRID_Drivers/ODBC_Driver/&lt;/a&gt; or &lt;br /&gt;&lt;a href=&quot;/?mid=downloads&amp;amp;item=odbc_driver&quot;&gt;http://www.cubrid.org/?mid=downloads&amp;amp;item=odbc_driver&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;Driver Installation&lt;/h2&gt;
&lt;div&gt;Run a CUBRID ODBC Installer (exe) and click the Next / Install Button.&lt;/div&gt;
&lt;div&gt;&lt;img height=&quot;386&quot; width=&quot;474&quot; src=&quot;/files/attach/images/194379/583/644/image003.jpg&quot; alt=&quot;image003.jpg&quot; /&gt;&lt;/div&gt;
&lt;div&gt;In your installation directory, you can see the following DLL files and uninstall. exe.&lt;/div&gt;
&lt;div&gt;&lt;img height=&quot;127&quot; width=&quot;194&quot; src=&quot;/files/attach/images/194379/583/644/image005.jpg&quot; alt=&quot;image005.jpg&quot; /&gt;&lt;/div&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;div&gt;On your PC, first open the &lt;code style=&quot;color: #000000; margin: 0px 2px; padding: 2px; white-space: nowrap; border: 1px solid #aecff7; background-color: #f7f7f7; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 12px;&quot; class=&quot;menu&quot;&gt;Control Panel&lt;/code&gt; =&amp;gt; &lt;code style=&quot;color: #000000; margin: 0px 2px; padding: 2px; white-space: nowrap; border: 1px solid #aecff7; background-color: #f7f7f7; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 12px;&quot; class=&quot;menu&quot;&gt;Administrative Tools&lt;/code&gt;. You should see a list of tools available on your Windows OS as shown below.&lt;/div&gt;
&lt;div&gt;&lt;img title=&quot;Windows Administrative Tools&quot; rel=&quot;xe_gallery&quot; style=&quot;cursor: pointer;&quot; class=&quot;iePngFix&quot; height=&quot;502&quot; width=&quot;690&quot; src=&quot;/files/attach/images/49/434/139/data-sources-odbc.png&quot; alt=&quot;Windows Administrative Tools&quot; /&gt;&lt;/div&gt;
&lt;div&gt;Double click on the &lt;code style=&quot;color: #000000; margin: 0px 2px; padding: 2px; white-space: nowrap; border: 1px solid #aecff7; background-color: #f7f7f7; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 12px;&quot; class=&quot;menu&quot;&gt;Data Sources (ODBC)&lt;/code&gt; to open it.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;h3&gt;OPEN DATA SOURCES ON WINDOWS 64-BIT&lt;/h3&gt;
&lt;div&gt;&lt;span style=&quot;color: #131212; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 20px;&quot;&gt;If your driver version is 9.1.0.p1 or later, you should launch Data Sources (ODBC) as shown above as it will start 64-bit version of Data Sources (ODBC) program, otherwise you need to start 32-bit version of Data Sources (ODBC) which is located in  C:&amp;#92;Windows&amp;#92;SysWOW64&amp;#92;odbcad32.exe. Make sure you start this one. SysWOW64 means Windows 32-bits on Windows 64-bit.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #131212; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;Create new data source&lt;/h3&gt;
&lt;div&gt;&lt;img height=&quot;388&quot; width=&quot;470&quot; src=&quot;/files/attach/images/194379/583/644/image007.PNG&quot; alt=&quot;image007.PNG&quot; /&gt;&lt;/div&gt;
&lt;div&gt;Then navigate back to the &lt;code style=&quot;color: #000000; margin: 0px 2px; padding: 2px; white-space: nowrap; border: 1px solid #aecff7; background-color: #f7f7f7; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 12px;&quot; class=&quot;menu&quot;&gt;User DSN&lt;/code&gt; tab and click on the &lt;code style=&quot;color: #000000; margin: 0px 2px; padding: 2px; white-space: nowrap; border: 1px solid #aecff7; background-color: #f7f7f7; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 12px;&quot; class=&quot;menu&quot;&gt;Add&lt;/code&gt; button.&lt;/div&gt;
&lt;div&gt;&lt;img title=&quot;Add User Data Source Name&quot; rel=&quot;xe_gallery&quot; style=&quot;cursor: pointer;&quot; class=&quot;iePngFix&quot; height=&quot;390&quot; width=&quot;471&quot; src=&quot;/files/attach/images/49/434/139/odbc-data-source-admin-user-dsn-add.png&quot; alt=&quot;Add User Data Source Name&quot; /&gt;&lt;/div&gt;
&lt;div&gt;In the pop-up window choose the CUBRID Driver and click the &lt;code style=&quot;color: #000000; margin: 0px 2px; padding: 2px; white-space: nowrap; border: 1px solid #aecff7; background-color: #f7f7f7; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 12px;&quot; class=&quot;menu&quot;&gt;Finish&lt;/code&gt; button.&lt;/div&gt;
&lt;div&gt;&lt;img title=&quot;Create New Data Source&quot; rel=&quot;xe_gallery&quot; style=&quot;cursor: pointer;&quot; class=&quot;iePngFix&quot; height=&quot;358&quot; width=&quot;478&quot; src=&quot;/files/attach/images/49/434/139/odbc-create-new-data-source.png&quot; alt=&quot;Create New Data Source&quot; /&gt;&lt;/div&gt;
&lt;div&gt;Fill out the fields with the necessary data as shown in the image below.&lt;/div&gt;
&lt;div&gt;&lt;img title=&quot;CUBRID ODBC Data Source Name Config&quot; rel=&quot;xe_gallery&quot; style=&quot;cursor: pointer;&quot; class=&quot;iePngFix&quot; height=&quot;456&quot; width=&quot;406&quot; src=&quot;/files/attach/images/49/434/139/odbc-config-cubrid-data-sources.png&quot; alt=&quot;CUBRID ODBC Data Source Name Config&quot; /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;b&gt;DSN&lt;/b&gt;: Give a desired name to this data source (eg. your database name).&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Description&lt;/b&gt;: Enter the description for this data source.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;b&gt;DB Name&lt;/b&gt;: Enter the target database name.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;b&gt;DB User&lt;/b&gt;: Database user name.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Password&lt;/b&gt;: Database user password.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Server Address&lt;/b&gt;: Database host address (&lt;i&gt;localhost&lt;/i&gt;). You can also enter the remote server&apos;s IP address.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Server Port&lt;/b&gt;: CUBRID Broker&apos;s port number. The default port is &lt;b&gt;33000&lt;/b&gt;.&lt;br /&gt;You can check this in your command line terminal. Type &lt;code style=&quot;color: #cccccc; margin: 0px 2px; padding: 0px 2px; white-space: nowrap; border: 1px solid #cccccc; background-color: #000000; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 12px;&quot; class=&quot;cmd&quot;&gt;cubrid service status&lt;/code&gt;. In the output you will see&lt;b&gt;broker1&lt;/b&gt; in the first column and the port number in the third. You will notice that the broker uses the default port number 33000. If set otherwise, enter that port number into this field.
&lt;div style=&quot;margin: 7px 0px; text-align: justify;&quot;&gt;&lt;img title=&quot;CUBRID Service Status&quot; rel=&quot;xe_gallery&quot; style=&quot;cursor: pointer;&quot; class=&quot;iePngFix&quot; height=&quot;322&quot; width=&quot;677&quot; src=&quot;/files/attach/images/49/434/139/cmd-cubrid-service-status.png&quot; alt=&quot;CUBRID Service Status&quot; /&gt;&lt;/div&gt;
Another way to find the Broker port number is in the Broker&apos;s configuration file located at&lt;code style=&quot;color: #cccccc; margin: 0px 2px; padding: 0px 2px; white-space: nowrap; border: 1px solid #cccccc; background-color: #000000; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 12px;&quot; class=&quot;cmd&quot;&gt;%CUBRID%confcubrid_broker.conf&lt;/code&gt;. See the &lt;code style=&quot;color: inherit; margin: 0px 2px; padding: 2px 5px; white-space: nowrap; border: 1px solid #cccccc; background-color: #f8f8f8; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 12px;&quot;&gt;BROKER_PORT&lt;/code&gt; value.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;b&gt;FETCH_SIZE&lt;/b&gt;: Set the number of record to fetch from the database. &lt;b&gt;100&lt;/b&gt; should be reasonable.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Once filled out, click &lt;code style=&quot;color: #000000; margin: 0px 2px; padding: 2px; white-space: nowrap; border: 1px solid #aecff7; background-color: #f7f7f7; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-size: 12px;&quot; class=&quot;menu&quot;&gt;OK&lt;/code&gt; button. You will see &lt;b&gt;CUBRID&lt;/b&gt; among the &lt;b&gt;User Data Sources&lt;/b&gt; as shown below.&lt;/div&gt;
&lt;div&gt;&lt;img title=&quot;ODBC User Data Sources&quot; rel=&quot;xe_gallery&quot; style=&quot;cursor: pointer;&quot; class=&quot;iePngFix&quot; height=&quot;390&quot; width=&quot;471&quot; src=&quot;/files/attach/images/49/434/139/odbc-user-data-source.png&quot; alt=&quot;ODBC User Data Sources&quot; /&gt;&lt;/div&gt;
&lt;h2&gt;Connecting to a database directly without DSN&lt;/h2&gt;
&lt;div&gt;It is also possible to connect to the CUBRID database directly in the application source code indicating the connecting string. In this case, use the following connection string.&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;conn = &quot;driver={CUBRID Driver};server=localhost;port=33000;uid=dba;pwd=;db_name=demodb;&quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, &apos;Times New Roman&apos;, Tahoma, sans-serif; background-color: #f4f7fa;&quot;&gt;&lt;/div&gt;
&lt;h2&gt;Before establishing a connection&lt;/h2&gt;
&lt;div&gt;Make sure that your &lt;a href=&quot;/wiki_tutorials/entry/start-or-autostart-cubrid-database&quot;&gt;database is started&lt;/a&gt; before you try to connect or link to a CUBRID database. Otherwise, you will receive an &lt;b&gt;ODBC call failed&lt;/b&gt; error.&lt;/div&gt;
&lt;div&gt;This is all you need to do in order to connect to a CUBRID database using the ODBC driver.&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="odbc"/>
            <category term="Driver"/>
            <category term="installation instructions"/>
            <category term="tutorial"/>
            <category term="Windows"/>
            
   </entry>
   <entry>
      <title>CUBRID ODBC Driver Installation Instructions Old</title>
      <id>http://www.cubrid.org/203982</id>
      <published>2011-08-15T03:58:06-07:00</published>
      <updated>2013-05-05T18:10:46-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/203982"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/203982#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;If you want to use CUBRID as a data source for your Windows applications using the ODBC Driver, this article will help you achieve this.&lt;/p&gt;
&lt;blockquote class=&quot;q4&quot;&gt;
&lt;p&gt;&lt;b&gt;Notice:&lt;/b&gt; &lt;strong&gt;This Tutorial is only available for cubrid-odbc-8.4.0 or older versions&lt;/strong&gt;. CUBRID ODBC installation used to have a problem on 64 bit OS so we have offered a new installation package available for both 32bit and 64 bit OS since 2013-05. If your CUBRID DB Engine is running on 64 bit OS, please choose a new installation package by following : &lt;a href=&quot;/wiki_apis/entry/cubrid-odbc-driver-installation-instructions&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-odbc-driver-installation-instructions&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you still wish to separately download the ODBC driver, perhaps, for remote connection when CUBRID is not installed on your machine, you can download it from &lt;a href=&quot;/?mid=downloads&amp;amp;item=odbc_driver&amp;amp;os=windows&quot; target=&quot;_self&quot;&gt;http://www.cubrid.org/?mid=downloads&amp;amp;item=odbc_driver&amp;amp;os=windows&lt;/a&gt; or from &lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Drivers/ODBC_Driver/&quot;&gt;http://ftp.cubrid.org/CUBRID_Drivers/ODBC_Driver/&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;h3&gt;Open Data Sources on Windows 32-bit&lt;/h3&gt;
&lt;p&gt;On you PC, first open the &lt;code class=&quot;menu&quot;&gt;Control Panel&lt;/code&gt; =&amp;gt; &lt;code class=&quot;menu&quot;&gt;Administrative Tools&lt;/code&gt;. You should see a list of tools available on your Windows OS as shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/49/434/139/data-sources-odbc.png&quot; alt=&quot;Windows Administrative Tools&quot; title=&quot;Windows Administrative Tools&quot; class=&quot;iePngFix&quot; width=&quot;690&quot; height=&quot;502&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Double click on the &lt;code class=&quot;menu&quot;&gt;Data Sources (ODBC)&lt;/code&gt; to open it.&lt;/p&gt;
&lt;h3&gt;OPEN DATA SOURCES ON WINDOWS 64-BIT&lt;/h3&gt;
&lt;p&gt;If you are using 64-bit Windows, you should not launch &lt;code class=&quot;menu&quot;&gt;Data Sources (ODBC)&lt;/code&gt; as shown above as it will start 64-bit version of &lt;code class=&quot;menu&quot;&gt;Data Sources (ODBC)&lt;/code&gt; program. Since CUBRID ODBC driver is available only in 32-bit version, we need to start 32-bit version of &lt;code class=&quot;menu&quot;&gt;Data Sources (ODBC)&lt;/code&gt; which is located in &lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;b&gt;c:&amp;#92;Windows&amp;#92;System32&amp;#92;odbcad32.exe&lt;/b&gt;&lt;/span&gt;. Make sure you start this one.&lt;/p&gt;
&lt;h3&gt;Create new data source&lt;/h3&gt;
&lt;p&gt;Once you started the 32-bit version of &lt;code class=&quot;menu&quot;&gt;Data Sources (ODBC)&lt;/code&gt;, navigate to the &lt;code class=&quot;menu&quot;&gt;Drivers&lt;/code&gt; tab and make sure the &lt;b&gt;CUBRID Driver&lt;/b&gt; is available as shown below, which will mean that it has been successfully installed on your system.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/49/434/139/odbc-data-source-admin-drivers.png&quot; alt=&quot;ODBC Drivers&quot; title=&quot;ODBC Drivers&quot; class=&quot;iePngFix&quot; width=&quot;471&quot; height=&quot;390&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then navigate back to the &lt;code class=&quot;menu&quot;&gt;User DSN&lt;/code&gt; tab and click on the &lt;code class=&quot;menu&quot;&gt;Add&lt;/code&gt; button.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/49/434/139/odbc-data-source-admin-user-dsn-add.png&quot; alt=&quot;Add User Data Source Name&quot; title=&quot;Add User Data Source Name&quot; class=&quot;iePngFix&quot; width=&quot;471&quot; height=&quot;390&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In the pop-up window choose the CUBRID Driver and click the &lt;code class=&quot;menu&quot;&gt;Finish&lt;/code&gt; button.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/49/434/139/odbc-create-new-data-source.png&quot; alt=&quot;Create New Data Source&quot; title=&quot;Create New Data Source&quot; class=&quot;iePngFix&quot; width=&quot;478&quot; height=&quot;358&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Fill out the fields with the necessary data as shown in the image below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/49/434/139/odbc-config-cubrid-data-sources.png&quot; alt=&quot;CUBRID ODBC Data Source Name Config&quot; title=&quot;CUBRID ODBC Data Source Name Config&quot; class=&quot;iePngFix&quot; width=&quot;406&quot; height=&quot;456&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;DSN&lt;/b&gt;: Give a desired name to this data source (eg. your database name).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Description&lt;/b&gt;: Enter the description for this data source.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DB Name&lt;/b&gt;: Enter the target database name.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DB User&lt;/b&gt;: Database user name.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Password&lt;/b&gt;: Database user password.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Server Address&lt;/b&gt;: Database host address (&lt;i&gt;localhost&lt;/i&gt;). You can also enter the remote server&apos;s IP address.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Server Port&lt;/b&gt;: CUBRID Broker&apos;s port number. The default port is &lt;b&gt;33000&lt;/b&gt;.&lt;br /&gt;You can check this in your command line terminal. Type &lt;code class=&quot;cmd&quot;&gt;cubrid service status&lt;/code&gt;. In the output you will see &lt;b&gt;broker1&lt;/b&gt; in the first column and the port number in the third. You will notice that the broker uses the default port number 33000. If set otherwise, enter that port number into this field.
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/49/434/139/cmd-cubrid-service-status.png&quot; alt=&quot;CUBRID Service Status&quot; title=&quot;CUBRID Service Status&quot; class=&quot;iePngFix&quot; width=&quot;677&quot; height=&quot;322&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
Another way to find the Broker port number is in the Broker&apos;s configuration file located at &lt;code class=&quot;cmd&quot;&gt;%CUBRID%confcubrid_broker.conf&lt;/code&gt;. See the &lt;code&gt;BROKER_PORT&lt;/code&gt; value. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;FETCH_SIZE&lt;/b&gt;: Set the number of record to fetch from the database. &lt;b&gt;100&lt;/b&gt; should be reasonable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once filled out, click &lt;code class=&quot;menu&quot;&gt;OK&lt;/code&gt; button. You will see &lt;b&gt;CUBRID&lt;/b&gt; among the &lt;b&gt;User Data Sources&lt;/b&gt; as shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/49/434/139/odbc-user-data-source.png&quot; alt=&quot;ODBC User Data Sources&quot; title=&quot;ODBC User Data Sources&quot; class=&quot;iePngFix&quot; width=&quot;471&quot; height=&quot;390&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Connecting to a database directly without DSN&lt;/h2&gt;
&lt;p&gt;It is also possible to connect to the CUBRID database directly in the application source code indicating the connecting string. In this case, use the following connection string.&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;conn = &quot;driver={CUBRID Driver};server=localhost;port=33000;uid=dba;pwd=;db_name=demodb;&quot;&lt;/pre&gt;
&lt;h2&gt;Before establishing a connection&lt;/h2&gt;
&lt;p&gt;Make sure that your &lt;a href=&quot;/wiki_tutorials/entry/start-or-autostart-cubrid-database&quot; target=&quot;_self&quot;&gt;database is started&lt;/a&gt; before you try to connect or link to a CUBRID database. Otherwise, you will receive an &lt;b&gt;ODBC call failed&lt;/b&gt; error.&lt;/p&gt;
&lt;p&gt;This is all you need to do in order to connect to a CUBRID database using the ODBC driver.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="odbc"/>
            <category term="driver"/>
            <category term="installation instructions"/>
            <category term="tutorial"/>
            <category term="Windows"/>
            
   </entry>
   <entry>
      <title>QA OK Sign - CUBRID OLEDB Driver</title>
      <id>http://www.cubrid.org/644505</id>
      <published>2013-04-25T23:42:53-07:00</published>
      <updated>2013-05-03T18:42:35-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/644505"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/644505#comment"/>
      <author>
         <name>cd_interface</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f4f7fa; color: #131212; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; font-size: 15px; line-height: 20px;&quot;&gt;[CUBRID OLEDB 9.0.1.p1 QA Test Report]&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="oledb"/>
            <category term="driver"/>
            
   </entry>
   <entry>
      <title>CUBRID OLEDB 9.0.1.p1 QA Test Report</title>
      <id>http://www.cubrid.org/649832</id>
      <published>2013-05-03T18:37:57-07:00</published>
      <updated>2013-05-03T18:42:25-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/649832"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/649832#comment"/>
      <author>
         <name>cd_interface</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;1.&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;Test  Info&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Driver Build: ODBC 9.1, OLEDB 9.1&lt;/li&gt;
&lt;li&gt;Server Build: CUBRID 9.1 (9.1.0.0212) (64bit release build for linux_gnu)&lt;/li&gt;
&lt;li&gt;Test Platform: Windows7 32bit, Windows XP 32bit, Windows2003 64bit&lt;/li&gt;
&lt;li&gt;.Net Framework: 3.5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;2.&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;Test  Results&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;line-height: 14.25pt; background-color: white; width: 225px; border-collapse: collapse; margin-left: 22.1pt;&quot; class=&quot;MsoNormalTable&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 13.5pt; mso-yfti-irow: 1; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; background: silver; height: 13.5pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;120&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;OLEDB  Interface&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 78.9pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;105&quot;&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;OK&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;3.&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;Bug  status&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;line-height: 14.25pt; background-color: white; width: 158pt; border-collapse: collapse; margin-left: 22.1pt;&quot; class=&quot;MsoNormalTable&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;211&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 13.5pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes;&quot;&gt;
&lt;td style=&quot;padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; background: silver; height: 13.5pt; padding-top: 0cm; border: windowtext 1pt solid;&quot; width=&quot;120&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Total&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 68pt; padding-right: 5.4pt; height: 13.5pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;91&quot;&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;14&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 13.5pt; mso-yfti-irow: 1;&quot;&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; background: silver; height: 13.5pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;120&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Closed&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 68pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;91&quot;&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;14&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 13.5pt; mso-yfti-irow: 2; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; background: silver; height: 13.5pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;120&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Postpone&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 68pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;91&quot;&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;0&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;4.&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;Function  Testing&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;line-height: 14.25pt; border: medium none; background-color: white; border-collapse: collapse; margin-left: 25.15pt;&quot; class=&quot;MsoNormalTable&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding-bottom: 0cm; padding-left: 5.4pt; width: 3cm; padding-right: 5.4pt; padding-top: 0cm; border: black 1pt solid;&quot; valign=&quot;top&quot; width=&quot;113&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Total&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 77.95pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;104&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Pass&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 3cm; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;113&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Fail&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 92.15pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;123&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Success  Rate&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 3cm; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-top-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;113&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;236 &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 77.95pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;104&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;236 &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 3cm; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;113&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;0 &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 92.15pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;123&quot;&gt;&lt;span style=&quot;font-family: Cambria, serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;100%&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;5.&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;Issues&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; 1) Some CUBRID Date Type Name are not consistent with OLEDB Date Type Name. It may be ambiguous to users. We think it should be optimized. Please refer http://jira.cubrid.org/browse/APIS-30&lt;/p&gt;
&lt;p&gt;&amp;nbsp; 2) The CUBRID OLEDB Interface manual should describe the data type mapping between CUBRID and OLEDB, like the ODBC manual &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; http://www.cubrid.org/manual/91/en/api/odbc.html. It will help &amp;nbsp; &amp;nbsp;user to develop with OLEDB interface more easily&lt;/p&gt;
&lt;p&gt;&amp;nbsp; 3) Some properties value of db connection should be consistent with MSDN. It will help users use CUBRID more clearly. Such &amp;nbsp; as http://jira.cubrid.org/browse/APIS-532&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="oledb"/>
            
   </entry>
   <entry>
      <title>CUBRID ODBC Driver 9.1.0 Release Note</title>
      <id>http://www.cubrid.org/644445</id>
      <published>2013-04-25T23:23:11-07:00</published>
      <updated>2013-05-03T18:31:48-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/644445"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/644445#comment"/>
      <author>
         <name>cd_interface</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;table cellspacing=&quot;2&quot; style=&quot;background: #cccccc;&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;9.1.0&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h3 style=&quot;width: 735px; margin: 10px 0px; font-size: 16px; font-family: Calibri, &apos;Times New Roman&apos;, Tahoma, sans-serif; background-color: #f4f7fa;&quot;&gt;Functionality added or changed:&lt;/h3&gt;
&lt;p style=&quot;line-height: 20px; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; font-size: 15px; margin: 7px 0px; text-align: justify; color: #131212; font-weight: normal; background-color: #f4f7fa;&quot;&gt;The following ODBC APIs are newly supported by CUBRID ODBC:&lt;/p&gt;
&lt;ul style=&quot;color: #131212; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; line-height: 20px; font-size: 15px; font-weight: normal; background-color: #f4f7fa;&quot;&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLPrimaryKeys&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLForeignKeys&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLProcedures&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLProcedureColumns&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLTablePrivileges&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;line-height: 20px; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; font-size: 15px; margin: 7px 0px; text-align: justify; color: #131212; font-weight: normal; background-color: #f4f7fa;&quot;&gt;All four functions are catalog functions, which can get schema information of database you connect to. CUBRID schema information is stored in system catalog table, so you can also get this information from system catalog virtual table using SQL statement.&lt;/p&gt;
&lt;p style=&quot;line-height: 20px; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; font-size: 15px; margin: 7px 0px; text-align: justify; color: #131212; font-weight: normal; background-color: #f4f7fa;&quot;&gt;Database schema information is important for data modeling tools like&amp;nbsp;&lt;b&gt;CA ERwin Data Modeler&lt;/b&gt;, which enables you to visualize complex data structures. It uses schema information, for example, tables of database, columns and attributes of table, the primary and foreign keys of table, and relationships between tables and so on, to get the structure of the database.&lt;/p&gt;
&lt;p style=&quot;line-height: 20px; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; font-size: 15px; margin: 7px 0px; text-align: justify; color: #131212; font-weight: normal; background-color: #f4f7fa;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;color: #131212; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; line-height: 20px; font-size: 15px; font-weight: normal; background-color: #f4f7fa;&quot;&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLPrimaryKeys returns the column names that make up the primary key for a table.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLForeignKeys can return:&lt;ol&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;A list of foreign keys in the specified table (columns in the specified table that refer to primary keys in other tables).&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;A list of foreign keys in other tables that refer to the primary key in the specified table.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLProcedures returns returns the list of function/procedure names stored in a specific data source.&lt;ol&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Stored functions/procedures are blocks of code that have a flow of commands for data manipulation and are easy to manipulate and administer. CUBRID supports to develop stored functions and procedures in Java. Java stored functions/procedures are executed on the JVM (Java Virtual Machine) hosted by CUBRID.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLProcedureColumns returns the list of input and output parameters for the specified procedures, but not including the return columns.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLTablePrivileges returns a list of tables and the privileges associated with each table, which represents authorization information of the classes for which the current user has authorization in the database.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;line-height: 20px; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; font-size: 15px; margin: 7px 0px; text-align: justify; color: #131212; font-weight: normal; background-color: #f4f7fa;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;width: 735px; margin: 10px 0px; font-size: 16px; font-family: Calibri, &apos;Times New Roman&apos;, Tahoma, sans-serif; background-color: #f4f7fa;&quot;&gt;Fixed bugs:&lt;/h3&gt;
&lt;p style=&quot;line-height: 20px; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; font-size: 15px; margin: 7px 0px; text-align: justify; color: #131212; font-weight: normal; background-color: #f4f7fa;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;color: #131212; font-family: Calibri, &apos;Times New Roman&apos;, Arial, Tahoma; line-height: 20px; font-size: 15px; font-weight: normal; background-color: #f4f7fa;&quot;&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLFetchScroll: When parameter FetchOrientation is SQL_FETCH_LAST, SQLFetchScroll should return the last complete rowset in the result set. But it will return the first, not the last. 
&lt;ul style=&quot;margin: 0px;&quot;&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLFetchScroll is used to fetches the specified rowset of data from the result set and returns data for all bound columns. Rowsets can be specified at an absolute or relative position or by bookmark.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLSetPos: Application will crash when calling SQLSetPos. 
&lt;ul style=&quot;margin: 0px;&quot;&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLSetPos sets the cursor position in a rowset and allows an application to refresh, update or delete data in the result set.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLSetPos: The default value of statement attribute SQL_ATTR_ROW_ARRAY_SIZE is 1, which is the number of rows returned by each call to SQLFetch or SQLFetchScroll. If we set this attribute to value that is more than 1, SQLSetPos can&apos;t work correctly.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;SQLStatistics and SQLSpecialColumns: The results of the two catalog functions are not valid.&lt;br /&gt;&lt;br /&gt;SQLStatistics retrieves a list of statistics about a single table and the indexes associated with the table. SQLSpecialColumns retrieves the following information about columns within a specified table: 
&lt;ul style=&quot;margin: 0px;&quot;&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;When IdentifierType is SQL_BEST_ROWID, it will return information of columns that uniquely identifies a row in the table;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;When IdentifierType is SQL_ROWVER, it will return information of columns that are automatically updated when any value in the row is updated by a transaction.&lt;br /&gt;&lt;br /&gt;No data type in CUBRID will auto-update, so it only can return the columns which compose the unique keys.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</content>
                  <category term="odbc"/>
            <category term="driver"/>
            
   </entry>
   <entry>
      <title>CUBRID ODBC Driver 9.1.0.p1 Release Note</title>
      <id>http://www.cubrid.org/649812</id>
      <published>2013-05-03T18:30:17-07:00</published>
      <updated>2013-05-03T18:30:17-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/649812"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/649812#comment"/>
      <author>
         <name>cd_interface</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;table style=&quot;background: #cccccc;&quot; cellspacing=&quot;2&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;9.1.0.p1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Changed and Enhanced Features:&lt;/h3&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-184&quot;&gt;APIS-184&lt;/a&gt;] -  [ODBC]how to do auto_commit off in C#&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;h3&gt;Fixed bugs:&lt;/h3&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-152&quot;&gt;APIS-152&lt;/a&gt;] - [ODBC]  한글 쿼리 실행 시 에러&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-155&quot;&gt;APIS-155&lt;/a&gt;] - CUBRID  ODBC Driver에서 SELECT 수행시 런타임 오류 발생&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-156&quot;&gt;APIS-156&lt;/a&gt;] - user  reported&amp;gt; ODBC driver has a Fetch error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-443&quot;&gt;APIS-443&lt;/a&gt;] - Fetch  error in using openrowset() call in sql server&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-445&quot;&gt;APIS-445&lt;/a&gt;] - sql  server core dump if openrowset() call on numeric field from ODBC driver&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-536&quot;&gt;APIS-536&lt;/a&gt;] - [ODBC]  The returned value of OdbcConnection.Database is incorrect&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-538&quot;&gt;APIS-538&lt;/a&gt;] - [ODBC]  A problem of the returned value of OdbcConnection.DataSource property&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-539&quot;&gt;APIS-539&lt;/a&gt;] - [ODBC]  OdbcDataReader.GetDataTypeName doesn&apos;t work&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/APIS-540&quot;&gt;APIS-540&lt;/a&gt;] - [ODBC]  OdbcDataReader GetInt16, GetInt32 doesn&apos;t returns expected exception when read  an overbound integer&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</content>
                  <category term="odbc"/>
            
   </entry>
   <entry>
      <title>CUBRID ODBC 9.0.1.0.p1 QA Test Report</title>
      <id>http://www.cubrid.org/649704</id>
      <published>2013-05-03T17:47:31-07:00</published>
      <updated>2013-05-03T18:26:43-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/649704"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/649704#comment"/>
      <author>
         <name>cd_interface</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Test Info&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Driver Build: ODBC 9.1&lt;/li&gt;
&lt;li&gt;Server Build: CUBRID 9.1 (9.1.0.0212) (64bit release build for linux_gnu)&lt;/li&gt;
&lt;li&gt;Test Platform: Windows7 32bit, Windows XP 32bit, Windows2003 64bit&lt;/li&gt;
&lt;li&gt;.Net Framework: 3.5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2.Test Results&lt;/p&gt;
&lt;table style=&quot;line-height: 14.25pt; background-color: white; width: 168.9pt; border-collapse: collapse; margin-left: 22.1pt;&quot; class=&quot;MsoNormalTable&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;225&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 13.5pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes;&quot;&gt;
&lt;td style=&quot;padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; background: silver; height: 13.5pt; padding-top: 0cm; border: windowtext 1pt solid;&quot; width=&quot;120&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;ODBC  Interface&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 78.9pt; padding-right: 5.4pt; height: 13.5pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;105&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;OK&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;3.Bug status&lt;/p&gt;
&lt;table style=&quot;line-height: 14.25pt; background-color: white; width: 158pt; border-collapse: collapse; margin-left: 22.1pt;&quot; class=&quot;MsoNormalTable&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;211&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 13.5pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes;&quot;&gt;
&lt;td style=&quot;padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; background: silver; height: 13.5pt; padding-top: 0cm; border: windowtext 1pt solid;&quot; width=&quot;120&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Total&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 68pt; padding-right: 5.4pt; height: 13.5pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;91&quot;&gt;
&lt;p style=&quot;text-align: center; margin: 0cm 0cm 0pt;&quot; align=&quot;center&quot;&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;14&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 13.5pt; mso-yfti-irow: 1;&quot;&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; background: silver; height: 13.5pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;120&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Closed&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 68pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;91&quot;&gt;
&lt;p style=&quot;text-align: center; margin: 0cm 0cm 0pt;&quot; align=&quot;center&quot;&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;14&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 13.5pt; mso-yfti-irow: 2; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90pt; padding-right: 5.4pt; background: silver; height: 13.5pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;120&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Postpone&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 68pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0cm;&quot; width=&quot;91&quot;&gt;
&lt;p style=&quot;text-align: center; margin: 0cm 0cm 0pt;&quot; align=&quot;center&quot;&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 10pt; line-height: 14.25pt; text-indent: -18pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;4. Function Testing&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; border-collapse: collapse; margin-left: 2pt; border-width: 1px; border-style: none;&quot; class=&quot;MsoNormalTable&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; align=&quot;center&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding-bottom: 0cm; padding-left: 5.4pt; width: 3cm; padding-right: 5.4pt; padding-top: 0cm; border: black 1pt solid;&quot; valign=&quot;top&quot; width=&quot;113&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Total&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 77.95pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;104&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Pass&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 3cm; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;113&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Fail&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 92.15pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;123&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;Success  Rate&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Tahoma, sans-serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 3cm; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-top-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;113&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;271&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 77.95pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;104&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;271&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 3cm; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;113&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;0&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 92.15pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt;&quot; valign=&quot;top&quot; width=&quot;123&quot;&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;&lt;span style=&quot;font-family: Cambria, serif; font-size: 9pt;&quot; lang=&quot;EN-US&quot;&gt;100%&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;5. &amp;nbsp;Issues&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;None&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="odbc"/>
            <category term="Driver"/>
            
   </entry>
   <entry>
      <title>QA OK Sign - CUBRID ODBC Driver</title>
      <id>http://www.cubrid.org/644465</id>
      <published>2013-04-25T23:31:46-07:00</published>
      <updated>2013-05-03T18:26:08-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/644465"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/644465#comment"/>
      <author>
         <name>cd_interface</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;ul&gt;
&lt;li&gt;[CUBRID ODBC 9.0.1.0.p1 QA Test Report]&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="odbc"/>
            <category term="driver"/>
            
   </entry>
   <entry>
      <title>CUBRID JDBC Maven Repository</title>
      <id>http://www.cubrid.org/350121</id>
      <published>2012-04-25T17:31:11-07:00</published>
      <updated>2013-05-01T22:57:31-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/350121"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/350121#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;[CUBRID JDBC Driver|CUBRID JDBC] is an API that allows users to connect to CUBRID database within applications written in Java.&lt;/p&gt;
&lt;p&gt;In order to add CUBRID JDBC driver to your maven project, add the following &lt;b&gt;dependency&lt;/b&gt; to your project&apos;s &lt;b&gt;pom.xml&lt;/b&gt; file:&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;dependency&amp;gt;
&amp;lt;groupId&amp;gt;cubrid&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;cubrid-jdbc&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;8.4.3.1005&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Remember to indicate the appropriate &lt;b&gt;version number&lt;/b&gt;. The list of available versions can be found at &lt;a href=&quot;http://maven.cubrid.org/cubrid/cubrid-jdbc/&quot; target=&quot;_self&quot;&gt;http://maven.cubrid.org/cubrid/cubrid-jdbc/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You should also add the &lt;b&gt;repository information&lt;/b&gt; into your &lt;b&gt;pom.xml&lt;/b&gt; file:&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;repository&amp;gt;   
&amp;lt;id&amp;gt;CUBRID&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;CUBRID-releases&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://maven.cubrid.org&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;&lt;/pre&gt;
&lt;p&gt;This concludes the maven tutorial. If you have any question, please post it on our &lt;a href=&quot;/questions&quot; target=&quot;_self&quot;&gt;Q&amp;amp;A Site&lt;/a&gt; or on our &lt;a href=&quot;/forum&quot; target=&quot;_self&quot;&gt;forum&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="jdbc"/>
            <category term="Maven"/>
            <category term="tutorial"/>
            
   </entry>
   <entry>
      <title>Compiling the CUBRID OLE DB installer</title>
      <id>http://www.cubrid.org/373594</id>
      <published>2012-06-10T17:12:15-07:00</published>
      <updated>2013-04-26T01:50:05-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/373594"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/373594#comment"/>
      <author>
         <name>cd_interface</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The CUBRID OLE DB installer is open-source code, BSD licensed and built using NSIS.&lt;/p&gt;
&lt;p&gt;&lt;a target=&quot;_self&quot; href=&quot;http://nsis.sourceforge.net/Main_Page&quot;&gt;NSIS&lt;/a&gt; (Nullsoft Scriptable Install System) is a professional open source system for creating Windows installers.&amp;nbsp;It is designed to be as small and flexible as possible and is therefore very suitable for internet distribution.&lt;/p&gt;
&lt;p&gt;We choosed NSIS because it is widely used in open source projects, it is script-based and allows us to create the logic to handle even the most complex installation tasks.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Updating and compiling the installer&lt;/h2&gt;
&lt;p&gt;The source code for CUBRID OLEDB Installer is located in the CUBRID SVN repository:&lt;br /&gt;&lt;a target=&quot;_self&quot; href=&quot;http://svn.cubrid.org/cubridapis/oledb/branches/RB-8.4.1/Installer/CUBRID%20OLEDB%20Provider.nsi&quot;&gt;http://svn.cubrid.org/cubridapis/oledb/branches/RB-xxx/installer/installer.nsi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you want to compile the installer yourself, (and maybe change it,) we recommend the followings:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download the installer script source code - see the above specified location&lt;/li&gt;
&lt;li&gt;Update the script, if needed; we recommend using &lt;a target=&quot;_self&quot; href=&quot;http://hmne.sourceforge.net/&quot;&gt;HM NIS Edit&lt;/a&gt; tool.&lt;br /&gt;&lt;br /&gt;&quot;HM NIS Edit is the best Editor/IDE for Nullsoft Scriptable Install System (NSIS). Its useful for experts and beginners in the creation of Setup programs with the NSIS. Its Script Wizard will help you to create standard Setup programs with only few clicks, also its InstallOptions designer will help you to create your own custom pages with a friendly drag and drop interface.&quot;&lt;/li&gt;
&lt;li&gt;Compile the installer. (If you use HM NIS Edit it is just a matter of clicking a toolbar button.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote class=&quot;q4&quot;&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;By default, the installer script code is for creating the x32 installer. If you want to create the x64 installer,&lt;/p&gt;
&lt;p&gt;please update the installer script first by commenting/uncommenting the appropiate lines of code (just search for &quot;&lt;b&gt;64&lt;/b&gt;&quot; in the script).&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;</content>
                  <category term="oledb"/>
            <category term="api"/>
            <category term="build instructions"/>
            <category term="tutorial"/>
            
   </entry>
   <entry>
      <title>OLEDB Connection String</title>
      <id>http://www.cubrid.org/348485</id>
      <published>2012-04-23T05:02:48-07:00</published>
      <updated>2013-04-21T21:33:12-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/348485"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/348485#comment"/>
      <author>
         <name>cd_interface</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;The first thing we need to know in order to create a CUBRID connection is to how to build the connection string.&lt;/p&gt;
&lt;p&gt;Looking into the CUBRID documentation (&lt;a href=&quot;/manual/841/en/Configuring%20Connection%20Strings&quot; target=&quot;_self&quot;&gt;http://www.cubrid.org/manual/841/en/Configuring%20Connection%20Strings&lt;/a&gt;), you will find out that in order touse the CUBRID OLE DB Provider, the connection string must be built using the following &quot;pieces&quot;:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt; 
&lt;tr&gt;
&lt;td&gt;Item&lt;/td&gt;
&lt;td&gt;Exampe/Value&lt;/td&gt;
&lt;td&gt;Description&lt;/td&gt;
&lt;/tr&gt;
&lt;/thead&gt; 
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Provider&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;CUBRIDProvider&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Provider name. Do not change this value.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Source&lt;/td&gt;
&lt;td&gt;demodb&lt;/td&gt;
&lt;td&gt;Database name.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Location&lt;/td&gt;
&lt;td&gt;127.0.0.1 (or &quot;localhost&quot;)&lt;/td&gt;
&lt;td&gt;The IP address of the CUBRID Broker Server.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User Id&lt;/td&gt;
&lt;td&gt;dba&lt;/td&gt;
&lt;td&gt;Database username.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Password&lt;/td&gt;
&lt;td&gt;xxxxxx&lt;/td&gt;
&lt;td&gt;User password.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Port&lt;/td&gt;
&lt;td&gt;30000&lt;/td&gt;
&lt;td&gt;Broker port number (typically 30000 or 33000, for more info see &lt;a href=&quot;/wiki_tutorials/entry/connecting-to-a-remote-cubrid-database&quot;&gt;Connecting to a remote CUBRID Database&lt;/a&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;For example, to connect to the &lt;b&gt;demodb&lt;/b&gt; database, using the &lt;b&gt;public&lt;/b&gt; user, on a local CUBRID installation, the connection string will be:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt; Provider=CUBRIDProvider;Location=localhost;Data Source=demodb;User Id=public;Port=33000&lt;/pre&gt;
&lt;p&gt;Please note that in the next provider releases, you will be able to specify in the connection string additional information such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connection encoding&lt;/li&gt;
&lt;li&gt;Auto-commit mode&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="cubrid"/>
            <category term="oledb"/>
            <category term="connection string"/>
            
   </entry>
   <entry>
      <title>CUBRID Ruby API Documentation</title>
      <id>http://www.cubrid.org/252654</id>
      <published>2012-01-06T03:13:47-08:00</published>
      <updated>2013-04-09T00:10:47-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/252654"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/252654#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;table summary=&quot;Contents&quot; class=&quot;toc&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div id=&quot;toctitle&quot; style=&quot;text-align: center;&quot;&gt;
&lt;h2&gt;Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;toclevel-1&quot;&gt;&lt;a href=&quot;#Overview&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Overview&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1&quot;&gt;&lt;a href=&quot;#Getting_Help&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Getting Help&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1&quot;&gt;&lt;a href=&quot;#Preparing_the_Environment&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Preparing the Environment&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;
&lt;li class=&quot;toclevel-2&quot;&gt;&lt;a href=&quot;#Preparing_CUBRID&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Preparing CUBRID&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-2&quot;&gt;&lt;a href=&quot;#Preparing_Ruby&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Preparing Ruby&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#On_Windows&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.2.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;On Windows&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;
&lt;li class=&quot;toclevel-4&quot;&gt;&lt;a href=&quot;#Install_Ruby&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.2.1.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Install Ruby&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-4&quot;&gt;&lt;a href=&quot;#Install_Ruby_Driver_for_CUBRID&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.2.1.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Install Ruby Driver for CUBRID&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#On_Linux&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.2.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;On Linux&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;
&lt;li class=&quot;toclevel-4&quot;&gt;&lt;a href=&quot;#Install_Ruby_2&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.2.2.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Install Ruby&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-4&quot;&gt;&lt;a href=&quot;#Install_Ruby_Driver_for_CUBRID_2&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.2.2.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Install Ruby Driver for CUBRID&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;
&lt;li class=&quot;toclevel-5&quot;&gt;&lt;a href=&quot;#Install_Ruby_Gem&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.2.2.2.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Install Ruby Gem&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-5&quot;&gt;&lt;a href=&quot;#Manually_Build_the_Library&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.2.2.2.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Manually Build the Library&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-5&quot;&gt;&lt;a href=&quot;#Example&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.2.2.2.3&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Example&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;toclevel-1&quot;&gt;&lt;a href=&quot;#Ruby_API&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Ruby API&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;
&lt;li class=&quot;toclevel-2&quot; style=&quot;margin-bottom: 0.1em;&quot;&gt;&lt;a href=&quot;#Connection_Class&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Connection Class&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#Data_Constants&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Data Constants&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#auto_commit.3D&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;auto_commit=&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#auto_commit.3F&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.3&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;auto_commit?&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#connect&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.4&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;connect&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#close&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.5&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;close&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#commit&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.6&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;commit&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#rollback&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.7&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;rollback&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#glo_new&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.8&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;glo_new&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#query&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.9&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;query&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#prepare&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.10&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;prepare&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#to_s&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.11&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;to_s&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#server_version&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.1.12&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;server_version&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;toclevel-2&quot;&gt;&lt;a href=&quot;#Statement_Class&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Statement Class&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#Data_Types&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Data Types&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#affected_rows&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;affected_rows&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#bind&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.3&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;bind&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#close_2&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.4&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;close&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#column_info&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.5&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;column_info&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#each&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.6&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;each&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#each_hash&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.7&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;each_hash&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#execute&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.8&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;execute&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#fetch&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.9&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;fetch&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#fetch_hash&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.10&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;fetch_hash&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#get_oid&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.2.11&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;get_oid&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;toclevel-2&quot;&gt;&lt;a href=&quot;#Oid_Class&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Oid Class&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#.5B.5D.28col_name.29&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;[!](col_name)&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#.5B.5D.3D.28col_name.2C_obj.29&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;[!]=(col_name, obj)&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#drop&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3.3&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;drop&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#each_2&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3.4&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;each&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#lock&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3.5&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;lock&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#refresh&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3.6&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;refresh&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#save&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3.7&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;save&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#table&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3.8&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;table&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#to_hash&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3.9&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;to_hash&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a href=&quot;#to_s_2&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4.3.10&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;to_s&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;toclevel-1&quot;&gt;&lt;a href=&quot;#See_also&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;5&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;See also&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&quot;Overview&quot; id=&quot;Overview&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 style=&quot;padding-left: 60px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Overview&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;This tutorial will explain all steps that you need to perform in order to connect to CUBRID Database and run SQL statements through Ruby programming language.&lt;/p&gt;
&lt;p&gt;At any time if you feel lost somewhere, you can always visit the main page for&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;/cubrid_ruby_programming&quot; title=&quot;cubrid_ruby_programming&quot; class=&quot;external text&quot;&gt;Ruby Programming&lt;/a&gt;&amp;nbsp;to start from the beginning.&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Getting_Help&quot; id=&quot;Getting_Help&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 style=&quot;padding-left: 60px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Getting Help&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;If you have any troubles connecting to CUBRID through Ruby, post your questions to&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;/forum/category/195536&quot; title=&quot;CUBRID Ruby Forum&quot; class=&quot;external text&quot;&gt;Ruby Forum&lt;/a&gt;&amp;nbsp;at&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;/forum&quot; title=&quot;CUBRID Forum&quot; class=&quot;external free&quot;&gt;http://www.cubrid.org/forum&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Preparing_the_Environment&quot; id=&quot;Preparing_the_Environment&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 style=&quot;padding-left: 60px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Preparing the Environment&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a name=&quot;Preparing_CUBRID&quot; id=&quot;Preparing_CUBRID&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Preparing CUBRID&lt;/span&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;First thing you have to do is to make sure you have installed CUBRID Database according to all the steps explained in&amp;nbsp;&lt;a href=&quot;/installation_guide&quot; title=&quot;Install CUBRID&quot;&gt;Install CUBRID&lt;/a&gt;. If you have not installed CUBRID yet,&amp;nbsp;&lt;a href=&quot;/?mid=downloads&amp;amp;item=cubrid&amp;amp;os=detect&amp;amp;cubrid=9.1.0&quot; title=&quot;Download CUBRID&quot;&gt;Download CUBRID&lt;/a&gt;&amp;nbsp;and follow the&amp;nbsp;&lt;a href=&quot;/installation_guide&quot; title=&quot;Install CUBRID&quot;&gt;Installation Instructions&lt;/a&gt;. In this tutorial I will be using the latest stable release CUBRID 9.1.0. On my machine it is installed in&amp;nbsp;&lt;b&gt;C:CUBRID&lt;/b&gt;. However, you do not have to worry much about it, as the CUBRID Installer automatically adds its location path to the Windows environment.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;NOTE For Windows users&lt;/i&gt;: Make sure you have installed&amp;nbsp;&lt;b&gt;Java Development Kit (JDK)&lt;/b&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;Microsoft C++ 2008 Redistributable Package&lt;/b&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a name=&quot;Preparing_Ruby&quot; id=&quot;Preparing_Ruby&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Preparing Ruby&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/194379/654/252/Gem_install_cubrid_web.png&quot; alt=&quot;Gem_install_cubrid_web.png&quot; title=&quot;Gem_install_cubrid_web.png&quot; class=&quot;iePngFix&quot; width=&quot;699&quot; height=&quot;123&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;On_Windows&quot; id=&quot;On_Windows&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 60px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;On Windows&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a name=&quot;Install_Ruby&quot; id=&quot;Install_Ruby&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Install Ruby&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;You can download Ruby Installer from various places. I prefer to Download&amp;nbsp;&lt;b&gt;Ruby Installer&lt;/b&gt;&amp;nbsp;from&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://rubyinstaller.org/&quot; title=&quot;http://rubyinstaller.org&quot; class=&quot;external free&quot;&gt;http://rubyinstaller.org&lt;/a&gt;. At this point you will see me using pure Ruby 1.8.7-p299. Currently Ruby 1.9.1 is not supported, as the Ruby Driver for CUBRID has been compiled in the 1.8.7 environment. But we have already started building for 1.9.1, so it will be available soon.&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Install_Ruby_Driver_for_CUBRID&quot; id=&quot;Install_Ruby_Driver_for_CUBRID&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Install Ruby Driver for CUBRID&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;If you have installed the above mentioned Ruby 1.8.7-p299, you should already have RubyGem installed. RubyGem is required to install additional external packages such as CUBRID Database driver, ActiveRecord, and other similar extensions. In order to install the Ruby Driver for CUBRID, in the command line type&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9;&quot;&gt;gem install cubrid&lt;/code&gt;&amp;nbsp;as shown below.&lt;/p&gt;
&lt;pre class=&quot;bash&quot;&gt;&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;C:&amp;#92;Ruby&amp;gt; gem install cubrid
Successfully installed cubrid-0.65-x86-mingw32
1 gem installed
Installing ri documentation for cubrid-0.65-x86-mingw32...
Installing RDoc documentation for cubrid-0.65-x86-mingw32...&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;At this point you should see the message about the successful installation of&amp;nbsp;&lt;i&gt;cubrid-0.65-x86-mingw32&lt;/i&gt;&amp;nbsp;driver. The Ruby Driver provides the same functions as the original CUBRID CCI (C Interface) Library does. Below you will see sample tests which illustrate how to communicate with the CUBRID Database.&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;On_Linux&quot; id=&quot;On_Linux&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 60px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;On Linux&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a name=&quot;Install_Ruby_2&quot; id=&quot;Install_Ruby_2&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Install Ruby&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;In order to install Ruby, we will use the generic Linux command. In this tutorial we will work under Ubuntu 10.4, and install Ruby 1.8.7. Type the following command to get Ruby and other necessary packages installed together.&lt;/p&gt;
&lt;pre class=&quot;bash&quot;&gt;&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get -y install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8 libreadline-ruby1.8 libruby1.8 libopenssl-ruby rubygems1.8
sudo ln -s /usr/bin/ruby1.8 /usr/bin/ruby
sudo ln -s /usr/bin/rdoc1.8 /usr/bin/rdoc
sudo ln -s /usr/bin/irb1.8 /usr/bin/irb
sudo ln -s /usr/bin/ri1.8 /usr/bin/ri&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The first line indicates which packages should be installed. Notice that I am installing Ruby 1.8 version. At this moment Ruby 1.9.1 is not supported. But we have already started building for 1.9.1, so it will be available soon. The rest four lines create symbol links so that you are able to run the commands link &quot;ruby&quot;, &quot;rdoc&quot;, &quot;irb&quot;, and &quot;ri&quot;. Actually, you will need only the first one.&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Install_Ruby_Driver_for_CUBRID_2&quot; id=&quot;Install_Ruby_Driver_for_CUBRID_2&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Install Ruby Driver for CUBRID&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;On Linux there are two ways to get Ruby Driver for CUBRID installed.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install Ruby Gem.&lt;/li&gt;
&lt;li&gt;Manually compile the code and install the library.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a name=&quot;Install_Ruby_Gem&quot; id=&quot;Install_Ruby_Gem&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Install Ruby Gem&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID gem has been successfully pushed to RubyGems.org. So, now on Linux users can get CUBRID connector through&amp;nbsp;&lt;b&gt;gem&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Add the&amp;nbsp;&lt;b&gt;-E&lt;/b&gt;&amp;nbsp;flag when installing the gem with&amp;nbsp;&lt;b&gt;sudo&lt;/b&gt;&amp;nbsp;like &quot;&lt;b&gt;sudo -E gem install cubrid&lt;/b&gt;&quot;. The -E flag is necessary to make sure sudo does not reset the user path where CUBRID Database has been installed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;Manually_Build_the_Library&quot; id=&quot;Manually_Build_the_Library&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Manually Build the Library&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-Drivers/Ruby_Driver/8.3.0/cubrid-ruby-driver-src.zip/download&quot; title=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-Drivers/Ruby_Driver/8.3.0/cubrid-ruby-driver-src.zip/download&quot; class=&quot;external text&quot;&gt;Download source code&lt;/a&gt;&amp;nbsp;of Ruby Driver for CUBRID.&lt;/li&gt;
&lt;li&gt;Extract, then run the following command in the terminal, which means that you are running the Ruby code within extconf.rb file. It will create a&amp;nbsp;&lt;i&gt;Makefile&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;bash&quot;&gt;&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;ruby extconf.rb&lt;/pre&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;After the&amp;nbsp;&lt;i&gt;Makefile&lt;/i&gt;&amp;nbsp;has been successfully created, type the following command to install the driver in your system.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;bash&quot;&gt;&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;make install&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;That&apos;s all! To see if everything has successfully been installed, print out the CUBRID Database version. Remember that in order to connect to a certain database, you have to first start that database. Otherwise, you will receive an error.&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Example&quot; id=&quot;Example&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Example&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Create a file called &quot;testcubrid.rb&quot; and paste the following Ruby code.&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;require &apos;rubygems&apos;
require &apos;cubrid&apos;
db = &apos;demodb&apos;
con = Cubrid.connect(db)
if con
	puts &quot;connection established&quot;
	puts &quot;CUBRID Database version is: #{con.server_version}&quot;
	con.close()
else
	puts &quot;Connection could not be established&quot;
end&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;Then type the following commands in the terminal.&lt;/p&gt;
&lt;pre class=&quot;bash&quot;&gt;&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;cubrid service start
cubrid server start demodb
ruby --rubygems testcubrid.rb&lt;/pre&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;The first line will start CUBRID services.&lt;/li&gt;
&lt;li&gt;The second line will start the database called &quot;demodb&quot;.&lt;/li&gt;
&lt;li&gt;The third line will run the Ruby code inside &quot;testcurbid.rb&quot; file.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You should see the following output.&lt;/p&gt;
&lt;pre class=&quot;bash&quot;&gt;connection established
CUBRID Database version is: 8.2.2.0261&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;Ruby_API&quot; id=&quot;Ruby_API&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 style=&quot;padding-left: 90px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Ruby API&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a name=&quot;Connection_Class&quot; id=&quot;Connection_Class&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 style=&quot;padding-left: 60px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Connection Class&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a name=&quot;Data_Constants&quot; id=&quot;Data_Constants&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Data Constants&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;The following Data Types represent the&amp;nbsp;&lt;b&gt;Cubrid&lt;/b&gt;&amp;nbsp;class data type constants declared in the Ruby API.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;span style=&quot;color: #6666ff; font-weight: bold;&quot;&gt;Cubrid::DATE&lt;/span&gt;&lt;/pre&gt;
&lt;table border=&quot;1&quot; style=&quot;line-height: 19px; font-family: sans-serif; border-collapse: collapse; background-color: #ffffaa;&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;text-align: center; font-weight: bold;&quot;&gt;
&lt;td style=&quot;width: 200px;&quot;&gt;Support Data Type Constants&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CHAR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VARCHAR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;STRING&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NCHAR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VARNCHAR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BIT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VARBIT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NUMERIC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;INT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHORT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MONETARY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FLOAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DOUBLE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TIME&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TIMESTAMP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MULTISET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SEQUENCE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OBJECT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;INCLUDE_OID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;READ_LOCK&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WRITE_LOCK&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&quot;auto_commit.3D&quot; id=&quot;auto_commit.3D&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;auto_commit=&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to set the&amp;nbsp;&lt;b&gt;auto_commit&lt;/b&gt;&amp;nbsp;mode of the current connection. If&amp;nbsp;&lt;b&gt;auto_commit&lt;/b&gt;&amp;nbsp;is set to&amp;nbsp;&lt;i&gt;true&lt;/i&gt;, after every&amp;nbsp;&lt;i&gt;Statement.execute&lt;/i&gt;&amp;nbsp;call the transaction will be immediately committed.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;auto_commit= &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;true&lt;/span&gt; &lt;span style=&quot;color: #9966cc; font-weight: bold;&quot;&gt;or&lt;/span&gt; &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;false&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;nil&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;auto_commit.3F&quot; id=&quot;auto_commit.3F&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;auto_commit?&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to determine whether&amp;nbsp;&lt;b&gt;auto_commit&lt;/b&gt;&amp;nbsp;mode of the current connection is set to true or false.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;auto_commit? ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;true&lt;/span&gt; &lt;span style=&quot;color: #9966cc; font-weight: bold;&quot;&gt;or&lt;/span&gt; &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;false&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;true&lt;/i&gt;: auto_commit is set to true&lt;/li&gt;
&lt;li&gt;&lt;i&gt;false&lt;/i&gt;: auto_commit is set to false&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;connect&quot; id=&quot;connect&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;connect&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to establish the connection with the database server by using the given information such as the database name, server address, port number, username and password. If the username and password are not set,&amp;nbsp;&lt;b&gt;public&lt;/b&gt;&amp;nbsp;is used as default the default username and &quot;&quot; (&lt;i&gt;empty password&lt;/i&gt;) is used as a password.&lt;/p&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;span style=&quot;color: #0066ff; font-weight: bold;&quot;&gt;@con&lt;/span&gt; = Cubrid.&lt;span style=&quot;color: #9900cc;&quot;&gt;connect&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #996600;&quot;&gt;&apos;db_name&apos;&lt;/span&gt;, &lt;span style=&quot;color: #996600;&quot;&gt;&apos;host&apos;&lt;/span&gt;, port, &lt;span style=&quot;color: #996600;&quot;&gt;&apos;db_user&apos;&lt;/span&gt;, &lt;span style=&quot;color: #996600;&quot;&gt;&apos;db_password&apos;&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #008000; font-style: italic;&quot;&gt;#OR&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0066ff; font-weight: bold;&quot;&gt;@con&lt;/span&gt; = Cubrid.&lt;span style=&quot;color: #9900cc;&quot;&gt;connect&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #996600;&quot;&gt;&apos;db_name&apos;&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;db_name&lt;/i&gt;&amp;nbsp;: a string representing the database name&lt;/li&gt;
&lt;li&gt;&lt;i&gt;host&lt;/i&gt;&amp;nbsp;: a string representing the host name of the server (by default it is&amp;nbsp;&lt;b&gt;localhost&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;&lt;i&gt;port&lt;/i&gt;&amp;nbsp;: an integer representing the server port (by default it is&amp;nbsp;&lt;b&gt;30000&lt;/b&gt;&amp;nbsp;- thirty thousand)&lt;/li&gt;
&lt;li&gt;&lt;i&gt;db_user&lt;/i&gt;&amp;nbsp;: a string representing the database user name (by default it is&amp;nbsp;&lt;b&gt;public&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;&lt;i&gt;db_passwd&lt;/i&gt;&amp;nbsp;: a string representing the database user password (by default it is &quot;&quot; -&amp;nbsp;&lt;i&gt;empty password&lt;/i&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Return Value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;@con&lt;/i&gt;: The connection has successfully been established!&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;nil&lt;/i&gt;: Filed to establish the connection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;close&quot; id=&quot;close&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;close&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to terminate the connection with the server. All pending Statements will also be closed.&lt;/p&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;span style=&quot;color: #0066ff; font-weight: bold;&quot;&gt;@con&lt;/span&gt;.&lt;span style=&quot;color: #9900cc;&quot;&gt;close&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;commit&quot; id=&quot;commit&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;commit&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to commit the transactions being performed currently in the connection.&lt;/p&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;span style=&quot;color: #0066ff; font-weight: bold;&quot;&gt;@con&lt;/span&gt;.&lt;span style=&quot;color: #9900cc;&quot;&gt;commit&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;nil&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;rollback&quot; id=&quot;rollback&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;rollback&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to rollback the last performed transactions. If the transaction is terminated, all Statement objects will also be closed.&lt;/p&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;span style=&quot;color: #0066ff; font-weight: bold;&quot;&gt;@con&lt;/span&gt;.&lt;span style=&quot;color: #9900cc;&quot;&gt;rollback&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;nil&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;glo_new&quot; id=&quot;glo_new&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;glo_new&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to create a new GLO object. The&amp;nbsp;&lt;i&gt;glo_new&lt;/i&gt;&amp;nbsp;method will return the OID of the newly created object. When&amp;nbsp;&lt;i&gt;glo_new&lt;/i&gt;&amp;nbsp;is called CUBRID provides GLO which will store the binary data. Later GLO object can be directly accessed by OID.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;glo_new&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;classname &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;, filename&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? OID &lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;OID&lt;/i&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;p&gt;The below example illustrates how to use&amp;nbsp;&lt;i&gt;glo_new&lt;/i&gt;&amp;nbsp;method. When called, the data inside the file, whose filename has been passed as a parameter, will be stored in the database. If the filename is not indicated, the method will create an empty GLO object.&lt;/p&gt;
&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;subway&apos;)
con.query(&apos;create table attachfile under glo (name string)&apos;)
con.commit
 
glo = con.glo_new(&apos;attachfile&apos;, &apos;pic.jpg&apos;)
glo.glo_size  #=&amp;gt; 1234
 
glo = con.glo_new(&apos;attachfile&apos;, &apos;&apos;)
glo.glo_size  #=&amp;gt; 0
glo.glo_save(&apos;pic.jpg&apos;)
glo.glo_size  #=&amp;gt; 1234&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;query&quot; id=&quot;query&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;query&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method directly executes the SQL statement, which has been passed as a parameter, without a need to perform the&amp;nbsp;&lt;i&gt;execute&lt;/i&gt;&amp;nbsp;method.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;query&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;sql &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;[!&lt;/span&gt;, option&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? Statement
&amp;nbsp;
&lt;span style=&quot;color: #9966cc; font-weight: bold;&quot;&gt;OR&lt;/span&gt;
&amp;nbsp;
query&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;sql &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;[!&lt;/span&gt;, option&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;{&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;|&lt;/span&gt;row&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;|&lt;/span&gt;
  ...
&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;}&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;Parameters&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;sql&lt;/i&gt;&amp;nbsp;: a string representing the SQL statement&lt;/li&gt;
&lt;li&gt;&lt;i&gt;option&lt;/i&gt;:&amp;nbsp;&lt;i&gt;[!Optional]&lt;/i&gt;&amp;nbsp;If&amp;nbsp;&lt;b&gt;Cubrid::INCLUDE_OID&lt;/b&gt;&amp;nbsp;is passed as an option, the&amp;nbsp;&lt;i&gt;query&lt;/i&gt;&amp;nbsp;method will behave like the&amp;nbsp;&lt;i&gt;prepare&lt;/i&gt;&amp;nbsp;method.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;stmt&lt;/i&gt;: The request handler&lt;/li&gt;
&lt;li&gt;&lt;i&gt;nil&lt;/i&gt;: The query has not been executed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Examples&lt;/p&gt;
&lt;p&gt;&lt;b&gt;A.&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;sql = &quot;INSERT INTO table1 (id, name) VALUES (1, &apos;Ruby&apos;)&quot;
stmt = @con.query(sql)
@con.commit&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;B.&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
stmt = con.query(&apos;SELECT * FROM db_user&apos;)
 
while row = stmt.fetch
   print row
end

stmt.close
stmt = con.query(&apos;SELECT * FROM db_user&apos;) { |row|
   print row
}

con.close&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;prepare&quot; id=&quot;prepare&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;prepare&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to&amp;nbsp;&lt;i&gt;prepare&lt;/i&gt;&amp;nbsp;an SQL statement.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;prepare&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;sql &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;, option&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? Statement
&amp;nbsp;
&lt;span style=&quot;color: #008000; font-style: italic;&quot;&gt;#OR&lt;/span&gt;
&amp;nbsp;
prepare&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;sql &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;, option&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;{&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;|&lt;/span&gt;stmt&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;|&lt;/span&gt;
  ...
&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;}&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;Parameters&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;sql&lt;/i&gt;&amp;nbsp;: a string representing the SQL statement&lt;/li&gt;
&lt;li&gt;&lt;i&gt;option&lt;/i&gt;&amp;nbsp;:&amp;nbsp;&lt;i&gt;[!Optional]&lt;/i&gt;&amp;nbsp;If&amp;nbsp;&lt;b&gt;Cubrid::INCLUDE_OID&lt;/b&gt;&amp;nbsp;is passed as an option, the returned results will include OID, which can be later retrieved by calling&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9;&quot;&gt;stmt.get_oid&lt;/code&gt;&amp;nbsp;method.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Return Value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;stmt&lt;/i&gt;: The request handle&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;nil&lt;/i&gt;: Filed to prepare the SQL statement.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;sql = &quot;INSERT INTO table1 (id, name) VALUES (?, ?)&quot;
stmt = @con.prepare(sql)
con = Cubrid.connect(&apos;demodb&apos;)
stmt = con.prepare(&apos;SELECT * FROM db_user&apos;)
stmt.execute
r = stmt.fetch

stmt.close
con.close
con.prepare(&apos;SELECT * FROM db_user&apos;) { |stmt|
   stmt.execute
   r = stmt.fetch
}
con.close&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;to_s&quot; id=&quot;to_s&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;to_s&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to get the current connection information.&lt;/p&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;span style=&quot;color: #008000; font-style: italic;&quot;&gt;# same as&lt;/span&gt;
&lt;span style=&quot;color: #008000; font-style: italic;&quot;&gt;# puts @con&lt;/span&gt;
connection_info = &lt;span style=&quot;color: #0066ff; font-weight: bold;&quot;&gt;@con&lt;/span&gt;.&lt;span style=&quot;color: #9900cc;&quot;&gt;to_s&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return values&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;connection_info&lt;/i&gt;&amp;nbsp;: a string representing the connection information.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;server_version&quot; id=&quot;server_version&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;server_version&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to get the version of the database server.&lt;/p&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;version = &lt;span style=&quot;color: #0066ff; font-weight: bold;&quot;&gt;@con&lt;/span&gt;.&lt;span style=&quot;color: #9900cc;&quot;&gt;server_version&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return values&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;version&lt;/i&gt;&amp;nbsp;: a string representing the version of the database server.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;Statement_Class&quot; id=&quot;Statement_Class&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 style=&quot;padding-left: 60px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Statement Class&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a name=&quot;Data_Types&quot; id=&quot;Data_Types&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Data Types&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;The table below shows the data type conversion between CUBRID native data types and Ruby representation.&lt;/p&gt;
&lt;table border=&quot;1&quot; style=&quot;line-height: 19px; font-family: sans-serif; border-collapse: collapse; background-color: #ffffaa;&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;text-align: center; font-weight: bold;&quot;&gt;
&lt;td style=&quot;width: 200px;&quot;&gt;CUBRID Data Types&lt;/td&gt;
&lt;td style=&quot;width: 300px;&quot;&gt;Ruby Data Type Representation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;int, short&lt;/td&gt;
&lt;td&gt;fixnum, bignum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;float, double, numeric, monetary&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;char, varchar, ncahr, varnchar&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bit, varbit&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;date, time, timestamp&lt;/td&gt;
&lt;td&gt;Time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;object&lt;/td&gt;
&lt;td&gt;OID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;collection&lt;/td&gt;
&lt;td&gt;array&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&quot;affected_rows&quot; id=&quot;affected_rows&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;affected_rows&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to get the number of rows which have been affected by the SQL statements (INSERT, DELETE, UPDATE).&lt;/p&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;stmt = &lt;span style=&quot;color: #0066ff; font-weight: bold;&quot;&gt;@con&lt;/span&gt;.&lt;span style=&quot;color: #9900cc;&quot;&gt;query&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #996600;&quot;&gt;&quot;UPDATE cities SET name = &apos;Paris&apos; WHERE id = 4&quot;&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt;
&lt;span style=&quot;color: #0066ff; font-weight: bold;&quot;&gt;@con&lt;/span&gt;.&lt;span style=&quot;color: #9900cc;&quot;&gt;commit&lt;/span&gt;
num = stmt.&lt;span style=&quot;color: #9900cc;&quot;&gt;affected_rows&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return values&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;num&lt;/i&gt;&amp;nbsp;: an integer representing the number of rows affected by the last SQL statement.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;bind&quot; id=&quot;bind&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;bind&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to substitute the values instead of the variables indicated in the SQL queries as question marks&amp;nbsp;&lt;b&gt;(?)&lt;/b&gt;&amp;nbsp;in the&amp;nbsp;&lt;b&gt;prepare&lt;/b&gt;&amp;nbsp;method.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;bind&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;index, data &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;[!&lt;/span&gt;, db_type, set_type&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;Parameters&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;index&lt;/i&gt;&amp;nbsp;: an integer representing the order of the variable to be replaced - first, second, ...&lt;/li&gt;
&lt;li&gt;&lt;i&gt;data&lt;/i&gt;&amp;nbsp;: a value representing the data to be replaced for the variable at the order&amp;nbsp;&lt;i&gt;index&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;db_type&lt;/i&gt;&amp;nbsp;:&amp;nbsp;&lt;i&gt;[!Optional]&lt;/i&gt;&amp;nbsp;&lt;i&gt;db_type&lt;/i&gt;&amp;nbsp;is a type of the value to be bound. It can be omitted by default. If it is omitted, the type is automatically cast to an appropriate one.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;set_type&lt;/i&gt;&amp;nbsp;:&amp;nbsp;&lt;i&gt;[!Optional]&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;nil&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;index = 1
value = &quot;Ruby&quot;

stmt.bind(index, value)
con = Cubrid.connect(&apos;demodb&apos;)
con.auto_commit = true
con.query(&apos;create table a (a int, b double, c string, d date)&apos;)
 
con.prepare(&apos;insert into a values (?, ?, ?, ?)&apos;) { |stmt|
   stmt.bind(1, 10)
   stmt.bind(2, 3.141592)
   stmt.bind(3, &apos;hello&apos;)
   stmt.bind(4, Time.local(2007, 12, 25, 10, 10, 10), Cubrid::DATE)
   stmt.execute
}
con.close&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;close&quot; id=&quot;close&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;close&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to close the Statement.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;close&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;nil&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;stmt.&lt;span style=&quot;color: #9900cc;&quot;&gt;close&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;column_info&quot; id=&quot;column_info&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;column_info&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Returns the&amp;nbsp;&lt;i&gt;column information&lt;/i&gt;&amp;nbsp;of the&amp;nbsp;&lt;i&gt;fetched rows&lt;/i&gt;. Because of the&amp;nbsp;&lt;i&gt;column information&lt;/i&gt;&amp;nbsp;is represented as a hash, it is returned in the form of&amp;nbsp;&lt;i&gt;array&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;column_info&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #cc0066; font-weight: bold;&quot;&gt;array&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;array&lt;/b&gt;: an array representing the hash of the key name, type_name, precision, scale, nullable, which refer to the column&apos;s name, the column&apos;s data type, precision, scale, null-ability, respectively.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
con.prepare(&apos;SELECT * FROM db_user&apos;) { |stmt|
   stmt.execute
   stmt.column_info.each { |col|
   print col[!&apos;name&apos;]
   print col[!&apos;type_name&apos;]
   print col[!&apos;precision&apos;]
   print col[!&apos;scale&apos;]
  print col[!&apos;nullable&apos;]
   }
}
con.close&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;each&quot; id=&quot;each&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;each&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Returns the&amp;nbsp;&lt;i&gt;fetched rows&lt;/i&gt;&amp;nbsp;one by one in a cycle to the inside block. The row is represented as an array.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;each&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;{&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;|&lt;/span&gt;row&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;|&lt;/span&gt; block &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;}&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;nil&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
con.prepare(&apos;SELECT * FROM db_user&apos;) { |stmt|
   stmt.execute
   stmt.each { |r|
   print r[!0]
   }
}
con.close&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;each_hash&quot; id=&quot;each_hash&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;each_hash&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Returns the&amp;nbsp;&lt;i&gt;fetched rows&lt;/i&gt;&amp;nbsp;one by one in a cycle to the inside block similar to the&amp;nbsp;&lt;i&gt;each()&lt;/i&gt;&amp;nbsp;method. The difference is that&amp;nbsp;&lt;i&gt;each_hash&lt;/i&gt;&amp;nbsp;returns a row which is represented as a hash.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;each_hash&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;{&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;|&lt;/span&gt;hash&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;|&lt;/span&gt; block &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;}&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;nil&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
con.prepare(&apos;SELECT * FROM db_user&apos;) { |stmt|
   stmt.execute
   stmt.each_hash { |r|
   print r[!&apos;name&apos;]
   }
}
con.close&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;execute&quot; id=&quot;execute&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;execute&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;This method is used to execute a given SQL statement. It can receive zero or more parameters depending on whether the&amp;nbsp;&lt;i&gt;bind&lt;/i&gt;&amp;nbsp;method has been used before or not. If the statement&amp;nbsp;&lt;i&gt;stmt&lt;/i&gt;&amp;nbsp;has been already&amp;nbsp;&lt;i&gt;binded&apos; to the values, the&amp;nbsp;&lt;/i&gt;execute&lt;i&gt;&amp;nbsp;method does not need any parameter. If the statement&lt;/i&gt;stmt&lt;i&gt;&amp;nbsp;has not been&amp;nbsp;&lt;/i&gt;binded&apos; to any values yet, the&amp;nbsp;&lt;i&gt;execute&lt;/i&gt;&amp;nbsp;method will instantly bind the receive parameters and execute the SQL statement. If&amp;nbsp;&lt;b&gt;auto_commit&lt;/b&gt;&amp;nbsp;is set to&amp;nbsp;&lt;i&gt;true&lt;/i&gt;, the&amp;nbsp;&lt;i&gt;execute&lt;/i&gt;&amp;nbsp;method will automatically commit the transaction.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;execute&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? int
execute&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;...&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? int&lt;/pre&gt;
&lt;p&gt;Parameters&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;values&lt;/i&gt;&amp;nbsp;:&amp;nbsp;&lt;i&gt;[!Optional]&lt;/i&gt;&amp;nbsp;a value representing the data to be binded to each variable in the SQL statement.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;int&lt;/i&gt;: Returns 1, if successful; 0 in case of failure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
con.prepare(&apos;insert into a values (?, ?, ?, ?)&apos;) { |stmt|
   stmt.execute (10, 3.141592, &apos;hello&apos;, Time.local(2007, 12, 25))
}
con.close
sql = &quot;INSERT INTO table1 (id, name) VALUES (?, ?)&quot;
stmt = @con.prepare(sql)
value1 = 1
value2 = &quot;Ruby&quot;
stmt.bind(1, value1)
stmt.bind(2, value2)
stmt.execute&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;sql = &quot;INSERT INTO table1 (id, name) VALUES (?, ?)&quot;
stmt = @con.prepare(sql)
stmt.execute(value1, value2)&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;fetch&quot; id=&quot;fetch&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;fetch&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Returns the&amp;nbsp;&lt;i&gt;row&lt;/i&gt;&amp;nbsp;under the cursor as an array of column data. Once fetched the cursor is incremented by one, that is pointed to the next&amp;nbsp;&lt;i&gt;row&lt;/i&gt;. The&amp;nbsp;&lt;i&gt;row&lt;/i&gt;&amp;nbsp;is represented as an array.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;fetch&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #cc0066; font-weight: bold;&quot;&gt;array&lt;/span&gt; &lt;span style=&quot;color: #9966cc; font-weight: bold;&quot;&gt;or&lt;/span&gt; &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;array&amp;nbsp;&lt;/i&gt;: an array representing the&amp;nbsp;&lt;i&gt;row&lt;/i&gt;&amp;nbsp;with columns.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;nil&lt;/i&gt;: if there is no&amp;nbsp;&lt;i&gt;row&lt;/i&gt;&amp;nbsp;to be fetched, the method returns&amp;nbsp;&lt;i&gt;nil&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below is a table which illustrates how&lt;/p&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
con.prepare(&apos;SELECT * FROM db_user&apos;) { |stmt|
   stmt.execute
   r = stmt.fetch
   print r[!0]
}
con.close&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;fetch_hash&quot; id=&quot;fetch_hash&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;fetch_hash&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Returns the&amp;nbsp;&lt;i&gt;row&lt;/i&gt;&amp;nbsp;under the cursor as a hash of column data. Once fetched the cursor is incremented by one, that is pointed to the next&amp;nbsp;&lt;i&gt;row&lt;/i&gt;. The&amp;nbsp;&lt;i&gt;row&lt;/i&gt;&amp;nbsp;is represented as an array.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;fetch_hash&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? hash &lt;span style=&quot;color: #9966cc; font-weight: bold;&quot;&gt;or&lt;/span&gt; &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;hash&amp;nbsp;&lt;/i&gt;: a hash representing the&amp;nbsp;&lt;i&gt;row&lt;/i&gt;&amp;nbsp;with columns.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;nil&lt;/i&gt;: if there is no&amp;nbsp;&lt;i&gt;row&lt;/i&gt;&amp;nbsp;to be fetched, the method returns&amp;nbsp;&lt;i&gt;nil&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
con.prepare(&apos;SELECT * FROM db_user&apos;) { |stmt|
   stmt.execute
   r = stmt.fetch_hash
   print r[!&apos;name&apos;]
}
con.close&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;get_oid&quot; id=&quot;get_oid&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;get_oid&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;In case a&amp;nbsp;&lt;i&gt;statement&lt;/i&gt;&amp;nbsp;has been&amp;nbsp;&lt;i&gt;prepared&lt;/i&gt;&amp;nbsp;with&amp;nbsp;&lt;b&gt;Cubrid::INCLUDE_OID&lt;/b&gt;&amp;nbsp;option, the&amp;nbsp;&lt;i&gt;get_oid&lt;/i&gt;&amp;nbsp;method will return the Oid of the created GLO object.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;get_oid&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? Oid &lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;Oid&lt;/i&gt;: the OID of the newly created GLO object.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
con.prepare(&apos;SELECT * FROM db_user&apos;, Cubrid::INCLUDE_OID) { |stmt|
   stmt.execute
   stmt.fetch
   oid = stmt.get_oid
   print oid.table
}
con.close&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;Oid_Class&quot; id=&quot;Oid_Class&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 style=&quot;padding-left: 60px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Oid Class&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a name=&quot;.5B.5D.28col_name.29&quot; id=&quot;.5B.5D.28col_name.29&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;[!](col_name)&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Returns the column data of the OID.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;[!&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;col_name&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? obj &lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;obj&lt;/i&gt;: the column data of the OID.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
stmt = con.prepare(&apos;SELECT * FROM db_user&apos;, Cubrid::INCLUDE_OID)
stmt.execute
stmt.fetch
oid = stmt.get_oid
print oid[!&apos;name&apos;]
print oid.name
stmt.close
con.close&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;Another way to access the data in the column is to call the&amp;nbsp;&lt;i&gt;name&lt;/i&gt;&amp;nbsp;as a method.&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;oid = stmt.get_oid
print oid.name&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;.5B.5D.3D.28col_name.2C_obj.29&quot; id=&quot;.5B.5D.3D.28col_name.2C_obj.29&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;[!]=(col_name, obj)&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Stores the data to the OID column. In order to reflect the saved data in the database server&amp;nbsp;&lt;b&gt;save&lt;/b&gt;&amp;nbsp;method should be called afterwards.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;[!&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;]&lt;/span&gt;=&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;col_name, obj&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;obj&lt;/i&gt;: the column data of the OID.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
stmt = con.prepare(&apos;SELECT * FROM db_user&apos;, Cubrid::INCLUDE_OID)
stmt.execute
stmt.fetch
oid = stmt.get_oid
oid[!&apos;name&apos;] = &apos;foo&apos;
oid.save
stmt.close
con.close&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;It is also possible to store and save the data using the corresponding&amp;nbsp;&lt;i&gt;name&lt;/i&gt;&amp;nbsp;and&amp;nbsp;&lt;i&gt;save&lt;/i&gt;&amp;nbsp;methods for the column.&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;oid = stmt.get_oid
oid.name = &apos;foo&apos;
oid.save&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;drop&quot; id=&quot;drop&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;drop&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Removes the OID from the database server.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;drop&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;self&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;self&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;each&quot; id=&quot;each&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;each&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Passes the column name and its data to the following block.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;each&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;{&lt;/span&gt; &lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;|&lt;/span&gt;name, val&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;|&lt;/span&gt;
  ...
&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;}&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;nil&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;nil&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
stmt = con.prepare(&apos;SELECT * FROM db_user&apos;, Cubrid::INCLUDE_OID)
stmt.execute
stmt.fetch
oid = stmt.get_oid
oid.each { |name, val|
   print name
   print val
}&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;lock&quot; id=&quot;lock&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;lock&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Sets the Cubrid::READ_LOCK or Cubrid::WRITE_LOCK to the OID.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;lock&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;lockmode&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;self&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Parameter&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;lockmode&lt;/i&gt;&amp;nbsp;: the mode of the lock. Can be either&amp;nbsp;&lt;b&gt;Cubrid::READ_LOCK&lt;/b&gt;&amp;nbsp;or&amp;nbsp;&lt;b&gt;Cubrid::WRITE_LOCK&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;self&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;refresh&quot; id=&quot;refresh&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;refresh&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Reads the OID data from the database server. The column data of the OID is not automatically synchronized with the database server. In case much time has been elapsed since the Oid object has been created, the&amp;nbsp;&lt;i&gt;refresh&lt;/i&gt;&amp;nbsp;method has to be called to read the data from the database server.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;refresh&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;self&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;self&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;pre class=&quot;brush:ruby&quot;  title=&quot;&quot;&gt;con = Cubrid.connect(&apos;demodb&apos;)
stmt = con.prepare(&apos;SELECT * FROM db_user&apos;, Cubrid::INCLUDE_OID)
stmt.execute
stmt.fetch
oid = stmt.get_oid
print oid[!&apos;name&apos;]

#after some time
oid.refresh
print oid[!&apos;name&apos;]
stmt.close
con.close&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a name=&quot;save&quot; id=&quot;save&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;save&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Saves the data of OID to the database server.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;save&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #0000ff; font-weight: bold;&quot;&gt;self&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;self&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;table&quot; id=&quot;table&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 style=&quot;padding-left: 30px;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;table&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Returns the&amp;nbsp;&lt;i&gt;table&lt;/i&gt;&amp;nbsp;name of the OID.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;table&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #cc0066; font-weight: bold;&quot;&gt;string&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;string&lt;/i&gt;&amp;nbsp;: the&amp;nbsp;&lt;i&gt;table&lt;/i&gt;&amp;nbsp;name of the OID&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;to_hash&quot; id=&quot;to_hash&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;span class=&quot;mw-headline&quot;&gt;to_hash&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Returns the OID data in a hash.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;to_hash&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #cc00ff; font-weight: bold;&quot;&gt;Hash&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;Hash&lt;/i&gt;&amp;nbsp;: The OID data. The key will indicate on its name, and the value - its data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;to_s&quot; id=&quot;to_s&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;span class=&quot;mw-headline&quot;&gt;to_s&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Description&lt;/p&gt;
&lt;p&gt;Returns the OID string.&lt;/p&gt;
&lt;p&gt;Syntax&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;to_s&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #006600; font-weight: bold;&quot;&gt;)&lt;/span&gt; ? &lt;span style=&quot;color: #cc0066; font-weight: bold;&quot;&gt;string&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Return value&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;string&lt;/i&gt;&amp;nbsp;: the OID string.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;See_also&quot; id=&quot;See_also&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span class=&quot;mw-headline&quot;&gt;See also&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;/cubrid_ruby_programming&quot; title=&quot;cubrid_ruby_programming&quot; class=&quot;external text&quot;&gt;Ruby Programming with CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/manual/840&quot; title=&quot;cubrid 2008 R4.0 manual&quot;&gt;CUBRID API References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="ruby"/>
            <category term="documentation"/>
            <category term="api"/>
            
   </entry>
   <entry>
      <title>CUBRID Ruby Driver Installation Instructions</title>
      <id>http://www.cubrid.org/251019</id>
      <published>2012-01-03T17:58:59-08:00</published>
      <updated>2013-04-05T02:48:47-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/251019"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/251019#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/49/454/001/gem_install_cubrid_web.png&quot; alt=&quot;Install CUBRID gem&quot; title=&quot;Install CUBRID gem&quot; class=&quot;iePngFix&quot; width=&quot;699&quot; height=&quot;123&quot; style=&quot;border: 0px; background-color: #ffffff; margin: 0px; padding: 0px;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;On Windows&lt;/h3&gt;
&lt;p&gt;We have pushed the CUBRID Connector to&amp;nbsp;Gemcutter. Use the above command (&lt;i&gt;gem install cubrid&lt;/i&gt;) in the command line to install the latest version of Ruby Driver for CUBRID on Windows.&lt;/p&gt;
&lt;h3&gt;On Linux&lt;/h3&gt;
&lt;p&gt;Linux users can also install the CUBRID Connector through &lt;b&gt;gem&lt;/b&gt;. Remember to add &lt;b&gt;&lt;i&gt;-E&lt;/i&gt;&lt;/b&gt;&amp;nbsp;flag when installing the gem with &lt;b&gt;sudo&lt;/b&gt;&amp;nbsp;like &quot;&lt;b&gt;&lt;i&gt;sudo -E gem install cubrid&lt;/i&gt;&lt;/b&gt;&quot;. The &lt;b&gt;&lt;i&gt;-E&lt;/i&gt;&lt;/b&gt; flag is necessary to make sure sudo does not reset the user path where CUBRID Database has been installed.&lt;/p&gt;
&lt;h2&gt;What if I don&apos;t have Gem Installer?&lt;/h2&gt;
&lt;h3&gt;On Windows&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Install Ruby 1.8.7&lt;/b&gt;. You can download it from RubyInstaller site at &lt;a href=&quot;http://rubyinstaller.org/downloads/&quot; target=&quot;_blank&quot;&gt;http://rubyinstaller.org/downloads/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Install DevKit&lt;/b&gt;. Most Ruby gems out there require the &lt;b&gt;mingw&lt;/b&gt; compiler to build gems written in C. CUBRID gem has C codes as well, so DevKit is required to install the latest CUBRID gem. You can download the DevKit from the same RubyInstaller site at &lt;a href=&quot;http://rubyinstaller.org/downloads/&quot; target=&quot;_blank&quot;&gt;http://rubyinstaller.org/downloads/&lt;/a&gt;.    
&lt;ul&gt;
&lt;li&gt;In the command line navigate to the location where you installed the DevKit and &lt;b&gt;initialize DevKit&lt;/b&gt; by typing the following command. This will generate the &lt;i&gt;config.yml&lt;/i&gt; file to be used later in this Step. Your installed Rubies will be listed there (only those installed by a RubyInstaller package are detected at present).&lt;/li&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;ruby dk.rb init&lt;/pre&gt;
&lt;li&gt;If necessary, &lt;b&gt;edit &lt;i&gt;config.yml&lt;/i&gt;&lt;/b&gt; file to include installed Rubies not automagically discovered or remove Rubies you do not want to use the DevKit with. This step is not required if you have installed Ruby from &lt;a href=&quot;http://rubyinstaller.org/downloads/&quot; target=&quot;_blank&quot;&gt;http://rubyinstaller.org/downloads/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Install DevKit&lt;/b&gt; by typing the following command in the command line. This step installs (or updates) an operating_system.rb file into the relevant directory needed to implement a RubyGems pre_install hook and a devkit.rb helper library file into &lt;i&gt;&amp;lt;RUBY_INSTALL_DIR&amp;gt;lib ubysite_ruby&lt;/i&gt;.&lt;/li&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;ruby dk.rb install&lt;/pre&gt;
&lt;li&gt;For more information on DevKit, refer to &lt;a href=&quot;https://github.com/oneclick/rubyinstaller/wiki/Development-Kit&quot; target=&quot;_blank&quot;&gt;http://github.com/oneclick/rubyinstaller/wiki/Development-Kit&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Before trying to install cubrid, make sure that the &quot;&lt;b&gt;make&lt;/b&gt;&quot; and &quot;&lt;b&gt;gcc&lt;/b&gt;&quot; commands are available in your command line. If not, add&amp;nbsp;&lt;b&gt;C:&amp;#92;DevKit&amp;#92;bin&amp;#92;&lt;/b&gt; and&amp;nbsp;&lt;b&gt;C:&amp;#92;DevKit&amp;#92;mingw&amp;#92;bin&amp;#92;&lt;/b&gt; to your PATH environment variable (we assumed DevKit is in C:&amp;#92;DevKit).&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Install CUBRID gem&lt;/b&gt; by typing the following command.&lt;/li&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;gem install cubrid&lt;/pre&gt;
&lt;/ul&gt;
&lt;h3&gt;On Linux&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Install Ruby 1.8.7&lt;/b&gt; by typing the following command.&lt;/li&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get -y install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8 libreadline-ruby1.8 libruby1.8 libopenssl-ruby rubygems1.8&lt;/pre&gt;
&lt;li&gt;You can see that &lt;b&gt;ruby1.8-dev&lt;/b&gt; package has also been installed. It is necessary to compile the C code of the gem. If you do not have ruby1.8-dev package already in your system, install it by typing the following command.&lt;/li&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get install ruby1.8-dev&lt;/pre&gt;
&lt;li&gt;&lt;b&gt;Create a symbolic link&lt;/b&gt; for ruby to be able to run ruby command from the terminal.&lt;/li&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo ln -s /usr/bin/ruby1.8 /usr/bin/ruby&lt;/pre&gt;
&lt;li&gt;&lt;b&gt;Install CUBRID gem&lt;/b&gt; by typing the following command. Do not forget to add &lt;b&gt;&lt;i&gt;-E&lt;/i&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;flag after &lt;i&gt;sudo&lt;/i&gt;&amp;nbsp;to include the path to CUBRID.&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo -E gem install cubrid&lt;/pre&gt;
&lt;/ul&gt;
&lt;p&gt;Here is a &lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=628538&amp;amp;sid=06ad37c3e61b048934485ed551915073&quot;&gt;test_cubrid.rb&lt;/a&gt;&amp;nbsp;file&amp;nbsp;to see if CUBRID driver is correctly installed. Run the following command to execute the code:&lt;/p&gt;
&lt;p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;ruby -rubygems test_cubrid.rb&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;Note: If you don&apos;t want to use &quot;-rubygems&quot; attribute, then you must copy the cubrid.so file from C:&amp;#92;Ruby187&amp;#92;lib&amp;#92;ruby&amp;#92;gems&amp;#92;1.8&amp;#92;gems&amp;#92;cubrid-0.65&amp;#92;ext to&amp;nbsp;C:&amp;#92;Ruby187&amp;#92;lib&amp;#92;ruby&amp;#92;site_ruby&amp;#92;1.8&amp;#92;i386-msvcrt (the paths may vary according to your ruby installation).&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="ruby"/>
            <category term="installation instructions"/>
            
   </entry>
   <entry>
      <title>CUBRID Node.js 2.0 Tutorial – What’s new? (Part II)</title>
      <id>http://www.cubrid.org/617729</id>
      <published>2013-03-21T02:03:11-07:00</published>
      <updated>2013-04-01T04:02:12-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/617729"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/617729#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;The &lt;a href=&quot;/wiki_apis/entry/cubrid-node-js-2-0-tutorial-what&amp;amp;rsquo;s-new-part-1&quot;&gt;1st part&lt;/a&gt; of this tutorial was focused on the new queries queuing feature. In this 2nd part of the tutorial we will show you some other new features implemented in the 2.0 release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for database parameters&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Binary_large_object&quot;&gt;LOB&lt;/a&gt; objects handling support&lt;/li&gt;
&lt;li&gt;Extended database schema support&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And others&amp;hellip;&lt;/p&gt;
&lt;h2&gt;Database parameters&lt;/h2&gt;
&lt;p&gt;After connecting to a database, a user can specify some &amp;ldquo;global&amp;rdquo; session parameters that will control the behavior of SQL statements transactions&amp;rsquo; isolation level execution, the auto-commit behavior and others.&lt;/p&gt;
&lt;p&gt;The complete list of these CUBRID database parameters is defined in the Constants.js file:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;exports.CCIDbParam = {
  CCI_PARAM_ISOLATION_LEVEL   : 1,
  CCI_PARAM_LOCK_TIMEOUT      : 2,
  CCI_PARAM_MAX_STRING_LENGTH : 3,
  CCI_PARAM_AUTO_COMMIT       : 4
};&lt;/pre&gt;
&lt;p&gt;For each parameter, the CUBRID communication protocol implements a dedicated support for GET and SET operations. Therefore, in order to manipulate them, also a dedicate functionality was needed in the Node.js driver and this is what we did in the 2.0 release.&lt;/p&gt;
&lt;p&gt;Please note one exception - the &lt;span style=&quot;color: #008080;&quot;&gt;&lt;em&gt;MAX_STRING_LENGTH&lt;/em&gt;&lt;/span&gt; parameter cannot be set programmatically from code; it&amp;rsquo;s a broker parameter and the client can only query its current value.&lt;/p&gt;
&lt;p&gt;We have provided support for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Getting a parameter value, using the &lt;em&gt;&lt;span style=&quot;color: #008080;&quot;&gt;getDatabaseParameter (&amp;hellip;)&lt;/span&gt;&lt;/em&gt; method&lt;/li&gt;
&lt;li&gt;Setting a parameter value, using the &lt;span style=&quot;color: #008080;&quot;&gt;&lt;em&gt;setDatabaseParameter (&amp;hellip;)&lt;/em&gt;&lt;/span&gt; method&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s see some examples. First, let set the value of the &lt;a href=&quot;/manual/90/en/cci_set_isolation_level&quot;&gt;ISOLATION_LEVEL&lt;/a&gt; parameter:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;CUBRIDClient.connect(function (err) {
    CUBRIDClient.setDatabaseParameter(CAS.CCIDbParam.CCI_PARAM_ISOLATION_LEVEL,
      CAS.CUBRIDIsolationLevel.TRAN_REP_CLASS_COMMIT_INSTANCE, function (err) {
          CUBRIDClient.close(function (err) {
&amp;hellip;&lt;/pre&gt;
&lt;p&gt;And let&amp;rsquo;s see how we can retrieve the value of the &lt;a href=&quot;/manual/831/en/Transaction Timeout&quot;&gt;LOCK_TIMEOUT&lt;/a&gt; parameter for the current session:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;CUBRIDClient.connect(function (err) {
  CUBRIDClient.getDatabaseParameter(CAS.CCIDbParam.CCI_PARAM_LOCK_TIMEOUT, function (err, value) {
    Helpers.logInfo(&apos;LOCK_TIMEOUT is: &apos; + value);
    CUBRIDClient.close(function (err) {
    });
  });
});&lt;/pre&gt;
&lt;p&gt;The output result is:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;LOCK_TIMEOUT is: -1&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: The same value can be obtained also from CUBRID Manager Client:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/729/617/manager.png&quot; alt=&quot;manager.png&quot; width=&quot;590&quot; height=&quot;340&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you need to change the default values for these parameters, it is highly recommended to do it immediately after connect (). One consequence is that you must use an explicit connect () statement in your application, and not the &amp;ldquo;implicit connect&amp;rdquo; driver feature (the &amp;ldquo;implicit connect&amp;rdquo; feature means that the driver can auto-connect when a query is first executed, without the need to issues an explicit connect() command).&lt;/p&gt;
&lt;h2&gt;LOB objects handling&lt;/h2&gt;
&lt;p&gt;In the previous driver version, the support for &lt;a href=&quot;/wiki_tutorials/entry/working-with-cubrid-blob-clob-data-types&quot;&gt;LOB&lt;/a&gt; (CLOB/BLOB) objects was limited to query only. Now, we have implemented the completed protocol required to update such data type columns. Please note that, as in the other CUBRID drivers, we have implemented dedicated driver query functions for handling LOB objects, as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lobNew(&amp;hellip;)&lt;/li&gt;
&lt;li&gt;lobRead(&amp;hellip;)&lt;/li&gt;
&lt;li&gt;lobWrite(&amp;hellip;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s see a simple example of inserting a LOB value (the code below is an &amp;ldquo;extract&amp;rdquo; from an ActionQueue series of method calls):&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;&amp;hellip;
    function (cb) {
      CUBRIDClient.lobNew(CUBRIDClient.LOB_TYPE_BLOB, cb);
    },

    function (lobObject, cb) {
      Helpers.logInfo(&apos;Number of bytes to write: &apos; + 2 * CUBRIDClient._LOB_MAX_IO_LENGTH);
      var data = new Buffer(2 * CUBRIDClient._LOB_MAX_IO_LENGTH);
      for (var i = 0; i &amp;lt; 2 * CUBRIDClient._LOB_MAX_IO_LENGTH; i++) {
        data[i] = i;
      }
      CUBRIDClient.lobWrite(lobObject, 1, data, cb);
    },

    function (lobObject, written_length, cb) {
      CUBRIDClient.executeWithTypedParams(&apos;insert into test_blob values(1, ?)&apos;, [lobObject], [&apos;blob&apos;], cb);
    },
&amp;hellip;&lt;/pre&gt;
&lt;p&gt;And this is how we retrieve a LOB value:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;&amp;hellip;
    function (cb) {
      CUBRIDClient.query(&apos;select * from test_lob&apos;, cb);
    },

    function (result, queryHandle, cb) {
      var arr = Result2Array.RowsArray(result);
      var lobObject = arr[0][0];
      CUBRIDClient.lobRead(lobObject, 1, lobObject.lobLength, cb);
    },

    function (str, read_length, cb) {
&amp;hellip;&lt;/pre&gt;
&lt;p&gt;(the str variable will contain the LOB data)&lt;/p&gt;
&lt;p&gt;As you can see, it&amp;rsquo;s pretty simple to deal with LOB data types!&lt;/p&gt;
&lt;h2&gt;Database schema&lt;/h2&gt;
&lt;p&gt;If you remember, in the previous driver versions, we provided integrated support for querying two database schemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TABLEs&lt;/li&gt;
&lt;li&gt;VIEWs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But CUBRID provides many more and some of the information cannot be obtained by querying the system objects &amp;ndash; see, for example, the foreign keys.&lt;/p&gt;
&lt;p&gt;Therefore, one of the things we did in this release was to improve the support for database schema, and so we add support for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ATTRIBUTEs (Table columns)&lt;/li&gt;
&lt;li&gt;CONSTRAINTs&lt;/li&gt;
&lt;li&gt;PRIMARY KEYs&lt;/li&gt;
&lt;li&gt;IMPORTED KEYs (Foreign keys)&lt;/li&gt;
&lt;li&gt;EXPORTED KEYs&lt;/li&gt;
&lt;li&gt;TABLE PRIVILEGEs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The method which must be used to retrieve a database schema is:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #008080;&quot;&gt;&lt;i&gt;CUBRIDClient.getSchema(&amp;hellip;)&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Depending on schema, some method parameters might be mandatory!&lt;/p&gt;
&lt;p&gt;For example, if you query the CONSTRAINTS schema, you need to provide the table name.&lt;/p&gt;
&lt;p&gt;See the &lt;a href=&quot;https://github.com/CUBRID/node-cubrid/blob/master/documentation/index.html&quot;&gt;driver documentation&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s see an example for retrieving the list of foreign keys for a table (we will use the game table in the &lt;a href=&quot;/wiki_tutorials/entry/getting-started-with-demodb-cubrid-demo-database&quot;&gt;demodb&lt;/a&gt; database):&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/729/617/athlete.png&quot; alt=&quot;athlete.png&quot; width=&quot;603&quot; height=&quot;285&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The code is pretty simple:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;ActionQueue.enqueue(
  [!
    function (callback) {
      CUBRIDClient.connect(callback);
    },

    function (callback) {
      Helpers.logInfo(&apos;Getting foreign keys for the game table...&apos;);
      CUBRIDClient.getSchema(CUBRIDClient.SCHEMA_IMPORTED_KEYS, &apos;game&apos;, callback);
    },

    function (result, callback) {
      for (var i = 0; i &amp;lt; result.length; i++) {
        Helpers.logInfo(result[!i]);
      }
      }
      CUBRIDClient.close(callback);
    }
  ],
&amp;hellip;&lt;/pre&gt;
&lt;p&gt;And the output is:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;{ FkName: &apos;fk_game_event_code&apos;,
  PkName: &apos;pk_event_code&apos;,
  FkTableName: &apos;game&apos;,
  PkTableName: &apos;event&apos;,
  FkColumnName: &apos;event_code&apos;,
  PkColumnName: &apos;code&apos;,
  UpdateAction: 1,
  DeleteAction: 1 }
{ FkName: &apos;fk_game_athlete_code&apos;,
  PkName: &apos;pk_athlete_code&apos;,
  FkTableName: &apos;game&apos;,
  PkTableName: &apos;athlete&apos;,
  FkColumnName: &apos;athlete_code&apos;,
  PkColumnName: &apos;code&apos;,
  UpdateAction: 1,
  DeleteAction: 1 }&lt;/pre&gt;
&lt;p&gt;Please note that some of the database schemas can be obtained very easily by querying the appropriate system table &amp;ndash; you don&amp;rsquo;t need the getSchema(&amp;hellip;) method. For such schemas, we will not provide a dedicated functionality in the driver.&lt;/p&gt;
&lt;p&gt;One simple example is the USERs schema, which can be obtained like this:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;ActionQueue.enqueue(
  [!
    function (callback) {
      CUBRIDClient.connect(callback);
    },

    function (callback) {
      CUBRIDClient.query(&apos;select [name] from db_user&apos;, callback);
    },

    function (result, queryHandle, callback) {
      Helpers.logInfo(Result2Array.ColumnNamesArray(result).toString());
      var arr = Result2Array.RowsArray(result);
      for (var i = 0; i &amp;lt; arr.length; i++) {
        Helpers.logInfo(arr[!i].toString());
      }

      callback();
    },
&amp;hellip;&lt;/pre&gt;
&lt;p&gt;When running this script on the &lt;b&gt;demodb &lt;/b&gt;database, we will get the list of users defined in the &lt;b&gt;demodb&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;name
DBA
PUBLIC&lt;/pre&gt;
&lt;h2&gt;Other features&lt;/h2&gt;
&lt;h3&gt;Connection timeout&lt;/h3&gt;
&lt;p&gt;One of the requests we got for the 2.0 driver release was to implement a connection timeout feature. Simply said - wait for the connection to the database to complete within the specified number of seconds and eventually throw an error if the timeout occurs.&lt;/p&gt;
&lt;p&gt;Obviously, the key thing here was to set the connection timeout at the Node.js socket connection layer level (and not on the consumer level):&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;self._socket = Net.createConnection(self.initialBrokerPort, self.brokerServer);
self._socket.setNoDelay(true);
self._socket.setTimeout(this._CONNECTION_TIMEOUT);&lt;/pre&gt;
&lt;p&gt;Now let&amp;rsquo;s see this in action:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;var client = new CUBRIDConnection(&apos;10.255.255.1&apos;, 33000, &apos;public&apos;, &apos;&apos;, &apos;demodb&apos;);

Helpers.logInfo(module.filename.toString() + &apos; started...&apos;);

client.setConnectionTimeout(2000);
client.connect(function (err) {
  if (err) {
    assert(err.message === ErrorMessages.ERROR_CONNECTION_TIMEOUT);
    Helpers.logInfo(&apos;Connection timeout&apos;);
&amp;hellip;&lt;/pre&gt;
&lt;p&gt;As you see, the timeout specified is 2.000, which is 2 sec.&lt;/p&gt;
&lt;p&gt;After the 2 seconds, the script will timeout:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;Connection timeout
Process finished with exit code 0&lt;/pre&gt;
&lt;h3&gt;Extended events information&lt;/h3&gt;
&lt;p&gt;Another thing we have enhanced in the 2.0 release is the events information provided to the user.&lt;/p&gt;
&lt;p&gt;This is actually one of the key things we are constantly looking into improving in our driver &amp;ndash; the events model &amp;ndash; because we believe it provides many advantages over the &amp;ldquo;classical&amp;rdquo; callbacks programming model.&lt;/p&gt;
&lt;p&gt;For example, the query() events now returns also the source SQL statement:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;CUBRIDClient.connect();

CUBRIDClient.on(CUBRIDClient.EVENT_CONNECTED, function () {
  CUBRIDClient.addQuery(SQL_A, null);
});

CUBRIDClient.on(CUBRIDClient.EVENT_QUERY_DATA_AVAILABLE, function (result, queryHandle, sql) {&lt;/pre&gt;
&lt;p&gt;For more details about the events model, please take a look at the &lt;a href=&quot;/manual/api/node.js/1.1/index.html&quot;&gt;driver documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Objects array&lt;/h3&gt;
&lt;p&gt;Remember that in the version 1.0, when you we were retrieving the data returned by a query, we were accessing the data using an array notation:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;Helpers.logInfo(arr[!j][!0] + &quot;,&quot; + arr[!j][!1] + &quot;,&quot; + arr[!j][!2] + &quot;,&quot; + arr[!j][!2]);&lt;/pre&gt;
&lt;p&gt;Now, you can also do this - use an object notation:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;Helpers.logInfo(arr[!j].code + &quot;,&quot; + arr[!j].name + &quot;,&quot; + arr[!j].continent + &quot;,&quot; + arr[!j].capital);&lt;/pre&gt;
&lt;p&gt;Even if it looks easier to understand, we do not recommend using the object-type notation, unless you have good reasons. This is because of one reason &amp;ndash; the syntax errors cannot be detected at development time, but only at runtime!&lt;/p&gt;
&lt;p&gt;What we usually recommend instead is to use named-indexes in the array notation, for example:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;if (self._queriesQueue[!idx][!self._QUERY_INFO.CALLBACK] &amp;amp;&amp;amp;
    typeof(self._queriesQueue[!idx][!self._QUERY_INFO.CALLBACK]) === &apos;function&apos;) {&lt;/pre&gt;
&lt;h2&gt;Under the hood&amp;hellip;&lt;/h2&gt;
&lt;p&gt;In this section, we will look at some internal driver implementation details.&lt;/p&gt;
&lt;h3&gt;The queue processor&lt;/h3&gt;
&lt;p&gt;In order to have an &amp;ldquo;automatic&amp;rdquo; queue processor, which takes care of executing the statements the users added to the queue, we needed a way to implement a routine which could (auto-)execute in a recursive manner, but without blocking the events queue. And this without using a &amp;ldquo;timer&amp;rdquo;, because this is not available in Node.js.&lt;/p&gt;
&lt;p&gt;Note: Just to clarify, when we say that the &amp;ldquo;standard timer&amp;rdquo; feature is not available in Node.js, we are referring to the Windows timer functionality, where you don&amp;rsquo;t need to auto-call the recurrent function by yourself again and again, but you simply setup the timer function handler only once and the system takes care automatically of running it without any other actions required from the application.&lt;/p&gt;
&lt;p&gt;Here is the logical structure of this routine we have developed:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript&quot;  title=&quot;&quot;&gt;// Check if some query is still in execution - if YES, exit and retry
for (i = 0; i &amp;lt; self._queriesQueue.length; i++) {
  if (self._queriesQueue[!i][!self._QUERY_INFO.STATUS] === self._QUERY_STATUS.IN_EXECUTION) {
    // retry queue processing after a while
    setTimeout(function () {
      self._enableQueriesBackgroundProcessor();
    }, self._QUERIES_QUEUE_CHECK_INTERVAL);
    return;
  }
}

// Find the first query not started and execute it
for (i = 0; i &amp;lt; self._queriesQueue.length; i++) {
  if (self._queriesQueue[!i][!self._QUERY_INFO.STATUS] === self._QUERY_STATUS.NOT_STARTED) {
    ...
    break;
  }
}

// Re-start queries processor
setTimeout(function () {
  self._enableQueriesBackgroundProcessor();
}, self._QUERIES_QUEUE_CHECK_INTERVAL);&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;Tip&lt;/b&gt;: As you can see there is an internal parameter - &lt;span style=&quot;color: #008080;&quot;&gt;&lt;em&gt;_QUERIES_QUEUE_CHECK_INTERVAL&lt;/em&gt;&lt;/span&gt; - which controls after which interval the routine restart itself. The default value is 1.000 msec. If for some reason, you need a &amp;ldquo;faster&amp;rdquo; queue, you can lower down the values of this parameter, for example:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style=&quot;color: #008080;&quot;&gt;&amp;lt;your_CUBRIDConnection_client_instance_name&amp;gt;._QUERIES_QUEUE_CHECK_INTERVAL = 500;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Some backward compatibility notes&lt;/h3&gt;
&lt;p&gt;Maybe you have asked if the &amp;ldquo;old&amp;rdquo; query(&amp;hellip;) statement is still available&amp;hellip;&lt;/p&gt;
&lt;p&gt;The short answer is: Yes, it is still there in the driver and not only as an empty &amp;ldquo;shell&amp;rdquo;, but complete - nothing was changed in its implementation.&lt;/p&gt;
&lt;p&gt;We made this choice for a couple of reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Not everybody will actually need the queries queue functionality&lt;/li&gt;
&lt;li&gt;Executing a query using the &amp;rdquo;old&amp;rdquo; query(&amp;hellip;) function is slighter faster and uses lesser resources. The reason is obvious &amp;ndash; you will be bypassing entirely the queue processor.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tip: Before you start coding, think about if you need the queue processor and make the best decision for your applications. Remember, there are 3 main ways to use the driver:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Through the queries queue&lt;/li&gt;
&lt;li&gt;Through the ActionQueue (or any similar implementation, &amp;nbsp;see Async for example)&lt;/li&gt;
&lt;li&gt;Using simple &amp;ldquo;callback-chained&amp;ldquo; queries&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;References and links&lt;/h2&gt;
&lt;table class=&quot;MsoNormalTable&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; mso-table-layout-alt: fixed; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 160; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;163&quot; valign=&quot;top&quot; style=&quot;width: 1.7in; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;CUBRID Node.js driver home page&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;453&quot; valign=&quot;top&quot; style=&quot;width: 339.75pt; border: solid windowtext 1.0pt; border-left: none; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;https://github.com/CUBRID/node-cubrid&quot;&gt;https://github.com/CUBRID/node-cubrid&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;https://github.com/organizations/CUBRID&quot;&gt;https://github.com/organizations/CUBRID&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;163&quot; valign=&quot;top&quot; style=&quot;width: 1.7in; border: solid windowtext 1.0pt; border-top: none; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Online driver documentation&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;453&quot; valign=&quot;top&quot; style=&quot;width: 339.75pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;https://github.com/CUBRID/node-cubrid/tree/master/documentation&quot;&gt;https://github.com/CUBRID/node-cubrid/tree/master/documentation&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;163&quot; valign=&quot;top&quot; style=&quot;width: 1.7in; border: solid windowtext 1.0pt; border-top: none; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Online Wiki&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;453&quot; valign=&quot;top&quot; style=&quot;width: 339.75pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-node-js-driver&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-node-js-driver&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;163&quot; valign=&quot;top&quot; style=&quot;width: 1.7in; border: solid windowtext 1.0pt; border-top: none; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Driver tutorials and examples&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;453&quot; valign=&quot;top&quot; style=&quot;width: 339.75pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-node-js-tutorials&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-node-js-tutorials&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;We hope you enjoyed this tutorial!&lt;/p&gt;
&lt;p&gt;Please let us know your feedback and suggestions, so we can improve! And do not forget, tryout the CUBRID Node.js 2.0 driver!&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="node.js"/>
            <category term="node.js 2.0"/>
            <category term="tutorial"/>
            
   </entry>
   <entry>
      <title>CUBRID ADO.NET Driver</title>
      <id>http://www.cubrid.org/244122</id>
      <published>2011-12-06T17:24:55-08:00</published>
      <updated>2013-03-31T18:06:53-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/244122"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/244122#comment"/>
      <author>
         <name>newpcraft</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;CUBRID ADO.NET driver is now available for &lt;a target=&quot;_self&quot; href=&quot;/?mid=downloads&amp;amp;item=ado_dot_net_driver&amp;amp;os=windows&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;grid col2&quot;&gt;&lt;span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/?mid=downloads&amp;amp;item=ado_dot_net_driver&amp;amp;os=windows&quot;&gt;Download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[cubrid-ado-net-driver-installation-guide|Installation Instructions]&lt;/li&gt;
&lt;li&gt;[cubrid-ado-net-tutorials|Latest News, Guides and Tutorials]&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/questions&quot;&gt;Questions&amp;nbsp;and Answers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt; &lt;span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;ftp://ftp.cubrid.org/CUBRID_Docs/Drivers/ADO.NET/9.1.0/annotated.html&quot;&gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[cubrid-ado-net-release-notes|Release Notes]&lt;/li&gt;
&lt;li&gt;[ADO.NET-driver-development-notes|Development Notes]&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://jira.cubrid.org/browse/APIS/component/10404&quot;&gt;JIRA Issue Tracker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/adodotnet/branches/RB-9.1.0/&quot;&gt;SVN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;ADO.NET driver source code is&amp;nbsp;distributed under the terms of&amp;nbsp;&lt;a target=&quot;_self&quot; href=&quot;/bsd_license&quot;&gt;BSD open source license&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="ado.net"/>
            <category term="driver"/>
            
   </entry>
   <entry>
      <title>cubrid-python-driver-8-4-3-release-note</title>
      <id>http://www.cubrid.org/498113</id>
      <published>2012-11-16T00:08:27-08:00</published>
      <updated>2013-03-29T02:41:21-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/498113"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/498113#comment"/>
      <author>
         <name>beagem</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;div class=&quot;vimiumReset vimiumHUD&quot; style=&quot;right: 150px; opacity: 0; display: none;&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;vimiumReset vimiumHUD&quot; style=&quot;right: 150px; opacity: 0; display: none;&quot;&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;background: #cccccc;&quot; cellspacing=&quot;2&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;8.4.3.0004&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Fixed bugs:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-522&quot; target=&quot;_self&quot;&gt;APIS-522&lt;/a&gt;: Fix the date_format error in django_cubrid.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-523&quot; target=&quot;_self&quot;&gt;APIS-523&lt;/a&gt;: Fix the &apos;LIMIT&apos; format error in django_cubrid.&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;8.4.3.0003&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Fixed bugs:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-428&quot; target=&quot;_self&quot;&gt;APIS-428&lt;/a&gt;: Change the setup.py to fix the pip installation failure..&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-433&quot; target=&quot;_self&quot;&gt;APIS-426&lt;/a&gt;: Remove free() in insert_id function for Windows platform: merge from trunk&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-444&quot; target=&quot;_self&quot;&gt;APIS-419&lt;/a&gt;: Fix Py_ssize_t undefined problem in Python-2.4. This bug causes 8.4.3.0002 fail to build in Python 2.4.&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;8.4.3.0002&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Django backend Features:&lt;/h3&gt;
&lt;p&gt;In this version, the django support is developed. Django_cubrid is the django backend for CUBRID Database.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Overview&lt;/li&gt;
Django_cubrid is the official Django backend for CUBRID Database. When using Django web framework with CUBRID database, the django_cubrid backend should be used.
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;p&gt;&lt;b&gt;* Python&lt;/b&gt;&lt;/p&gt;
Being a Python Web framework, Django requires Python. It works with any Python version from 2.5 to 2.7 (due to backwards incompatibilities in Python 3.0,  Django does not currently work with Python 3.0).&lt;br /&gt; So, when using django_cubrid, the Python version should be from 2.5 to 2.7.
&lt;p&gt;&lt;b&gt;* Django&lt;/b&gt;&lt;/p&gt;
Now only supports Django-1.4.  It&apos;s tested in Django-1.4.2.
&lt;li&gt;Known issues&lt;/li&gt;
&lt;p&gt;* The Django sqlflush command maybe failed because of the foreign constraints between database tables.&lt;br /&gt;&lt;br /&gt; * After using the Django loaddata command, the insert SQL manipulation in the application maybe failed, becuse of the auto_increment field.&lt;br /&gt;&lt;br /&gt; * Perhaps you may encounter the below warning: &lt;br /&gt; &lt;i&gt;RuntimeWarning: DateTimeField received a naive datetime (2013-01-15 06:38:37.463000) while time zone support is active. &lt;/i&gt; &lt;br /&gt; The reason is that CUBRID dosen&apos;t support timezone. You can set &quot;USE_TZ&quot; to False in settings.py to avoid this warning.&lt;/p&gt;
&lt;li&gt;Refer to &lt;a href=&quot;/wiki_apis/entry/how-to-use-django-with-cubrid&quot;&gt;&lt;i&gt;How to use Django with CUBRID&lt;/i&gt;&lt;/a&gt; for more infomation.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Changed and Enhanced Features:&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;support designated charset in the key-value arguments of connect()&lt;/li&gt;
&lt;li&gt;add the mult-byte character support for the data in CUBRID&lt;/li&gt;
&lt;li&gt;support bind NULL value to sql statement&lt;/li&gt;
&lt;li&gt;support bind unicode string to sql statement&lt;/li&gt;
&lt;li&gt;support bind integer to sql statement&lt;/li&gt;
&lt;li&gt;add the iteration feature for cursor object.&lt;/li&gt;
&lt;li&gt;update the samples&lt;/li&gt;
&lt;li&gt;update the README file&lt;/li&gt;
&lt;li&gt;move the unit test cases into tests/&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Fixed bugs:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-423&quot; target=&quot;_self&quot;&gt;APIS-423&lt;/a&gt;: Access the major version and minor version from sys.version_info by indexing.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-426&quot; target=&quot;_self&quot;&gt;APIS-426&lt;/a&gt;: The unicode keyword isn&apos;t supported in cursor() when using Python-3.x&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-419&quot; target=&quot;_self&quot;&gt;APIS-419&lt;/a&gt;: Add break in the switch in the _cubrid_ConnectionObject_schema_to_pyvalue().&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;8.4.3.0001&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Fixed bugs:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-181&quot; target=&quot;_self&quot;&gt;APIS-181&lt;/a&gt;: A lot of error messages will appear when sql statements is &quot;select * from db_user&quot;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-232&quot; target=&quot;_self&quot;&gt;APIS-232&lt;/a&gt;: added escape_string() to python driver.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-348&quot; target=&quot;_self&quot;&gt;APIS-348&lt;/a&gt;:add set_autocommit() and get_autocommit() in CUBRIDdb.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-368&quot; target=&quot;_self&quot;&gt;APIS-368&lt;/a&gt;: Add the DatabaseError and InterfaceError exception.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-369&quot; target=&quot;_self&quot;&gt;APIS-369&lt;/a&gt;:deal with None object when binding None.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-373&quot; target=&quot;_self&quot;&gt;APIS-373&lt;/a&gt;: Convert NUMERIC type in CUBRID to decimal.Decimal in Python.&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</content>
                  <category term="python"/>
            <category term="release note"/>
            <category term="driver"/>
            
   </entry>
   <entry>
      <title>CUBRID Python Driver 9.1.0 release note</title>
      <id>http://www.cubrid.org/613115</id>
      <published>2013-03-15T02:34:36-07:00</published>
      <updated>2013-03-29T02:39:25-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/613115"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/613115#comment"/>
      <author>
         <name>beagem</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;div class=&quot;vimiumReset vimiumHUD&quot; style=&quot;right: 150px; opacity: 0; display: none;&quot;&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;background: #cccccc;&quot; cellspacing=&quot;2&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;9.1.0.0002&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Fixed bugs:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-522&quot; target=&quot;_self&quot;&gt;APIS-522&lt;/a&gt;: Fix the date_format error in django_cubrid.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-523&quot; target=&quot;_self&quot;&gt;APIS-523&lt;/a&gt;: Fix the &apos;LIMIT&apos; format error in django_cubrid.&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;9.1.0.0001&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Django backend Features:&lt;/h3&gt;
&lt;p&gt;In this version, the django support is developed. Django_cubrid is the django backend for CUBRID Database.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Overview&lt;/li&gt;
Django_cubrid is the official Django backend for CUBRID Database. When using Django web framework with CUBRID database, the django_cubrid backend should be used.
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;p&gt;&lt;b&gt;* Python&lt;/b&gt;&lt;/p&gt;
Being a Python Web framework, Django requires Python. It works with any Python version from 2.5 to 2.7 (due to backwards incompatibilities in Python 3.0,  Django does not currently work with Python 3.0).&lt;br /&gt; So, when using django_cubrid, the Python version should be from 2.5 to 2.7.
&lt;p&gt;&lt;b&gt;* Django&lt;/b&gt;&lt;/p&gt;
Now supports Django-1.4 and Django-1.5, not support Django-1.3.
&lt;li&gt;Known issues&lt;/li&gt;
&lt;p&gt;* The Django sqlflush command maybe failed because of the foreign constraints between database tables.&lt;br /&gt;&lt;br /&gt; * After using the Django loaddata command, the insert SQL manipulation in the application maybe failed, becuse of the auto_increment field.&lt;br /&gt;&lt;br /&gt; * Perhaps you may encounter the below warning: &lt;br /&gt; &lt;i&gt;RuntimeWarning: DateTimeField received a naive datetime (2013-01-15 06:38:37.463000) while time zone support is active. &lt;/i&gt; &lt;br /&gt; The reason is that CUBRID dosen&apos;t support timezone. You can set &quot;USE_TZ&quot; to False in settings.py to avoid this warning.&lt;/p&gt;
&lt;li&gt;Refer to &lt;a href=&quot;/wiki_apis/entry/how-to-use-django-with-cubrid&quot;&gt;&lt;i&gt;How to use Django with CUBRID&lt;/i&gt;&lt;/a&gt; for more infomation.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Changed and Enhanced Features:&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Support designated charset in the key-value arguments of connect()&lt;/li&gt;
&lt;li&gt;Add the mult-byte character support for the data in CUBRID&lt;/li&gt;
&lt;li&gt;Support bind NULL value to sql statement&lt;/li&gt;
&lt;li&gt;Support bind unicode string to sql statement&lt;/li&gt;
&lt;li&gt;Support bind integer to sql statement&lt;/li&gt;
&lt;li&gt;Add the iteration feature for cursor object.&lt;/li&gt;
&lt;li&gt;Update the samples&lt;/li&gt;
&lt;li&gt;Update the README file&lt;/li&gt;
&lt;li&gt;Move the unit test cases into tests/&lt;/li&gt;
&lt;li&gt;Enable cci_connect_with_url_ex(), cci_escape_string() in Windows platfrom&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Fixed bugs:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-423&quot; target=&quot;_self&quot;&gt;APIS-423&lt;/a&gt;: Access the major version and minor version from sys.version_info by indexing.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-426&quot; target=&quot;_self&quot;&gt;APIS-426&lt;/a&gt;: The unicode keyword isn&apos;t supported in cursor() when using Python-3.x&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-419&quot; target=&quot;_self&quot;&gt;APIS-419&lt;/a&gt;: Add break in the switch in the _cubrid_ConnectionObject_schema_to_pyvalue().&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-428&quot; target=&quot;_self&quot;&gt;APIS-428&lt;/a&gt;: Change the setup.py to fix the pip installation failure..&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-433&quot; target=&quot;_self&quot;&gt;APIS-433&lt;/a&gt;: Fix the memory leak when using insert_id function in Windows platform&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-444&quot; target=&quot;_self&quot;&gt;APIS-444&lt;/a&gt;: Fix Py_ssize_t undefined problem in Python-2.4. This bug causes 8.4.3.0002 fail to build in Python 2.4.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-403&quot; target=&quot;_self&quot;&gt;APIS-403&lt;/a&gt;: Improve the invoking of cci_disconnect().&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-419&quot; target=&quot;_self&quot;&gt;APIS-419&lt;/a&gt;: Add break in the switch in the _cubrid_ConnectionObject_schema_to_pyvalue().&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-471&quot; target=&quot;_self&quot;&gt;APIS-471&lt;/a&gt;: Check the parameter of set_autocommit() is or not a bool.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-473&quot; target=&quot;_self&quot;&gt;APIS-473&lt;/a&gt;: Remove as_sql() and create_test_db() in django_cubrid to support Django-1.5.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS-482&quot; target=&quot;_self&quot;&gt;APIS-482&lt;/a&gt;: Fix the bug when reuse a closed connection to create a cursor.&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</content>
                  <category term="release note"/>
            <category term="python"/>
            <category term="cubrid"/>
            
   </entry>
</feed> 
