<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title type="text">CUBRID - Open Source Database Management System Optimized for Web</title>
      <updated>2013-06-18T01:00:49-07:00</updated>
   <id>http://www.cubrid.org/?module=rss&amp;act=atom</id>
   <link rel="alternate" type="text/html" hreflang="en" href="http://www.cubrid.org/"/>
   <link rel="self" type="application/atom+xml" href="http://www.cubrid.org/?module=rss&amp;act=atom"/>
   <generator uri="http://www.xpressengine.com/" version="1.4.4.1">XpressEngine</generator>
   <entry>
      <title>Using CUBRID and NHibernate</title>
      <id>http://www.cubrid.org/672000</id>
      <published>2013-06-05T05:11:19-07:00</published>
      <updated>2013-06-17T23:58:21-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/672000"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/672000#comment"/>
      <author>
         <name>ovidiuguta</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;div style=&quot;mso-element: para-border-div; border: none; border-bottom: solid #5B9BD5 1.0pt; mso-border-bottom-themecolor: accent1; padding: 0in 0in 4.0pt 0in;&quot;&gt;
&lt;h2 class=&quot;MsoTitle&quot;&gt;An introduction web tutorial&lt;i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;p class=&quot;MsoSubtitle&quot;&gt;June 5, 2013&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Hi,&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;In this tutorial we will show you how to use &lt;a href=&quot;http://nhforge.org/&quot;&gt;NHibernate&lt;/a&gt; with &lt;a href=&quot;/&quot;&gt;CUBRID&lt;/a&gt; in a simple demo web application that performs all the standard &lt;a href=&quot;http://en.wikipedia.org/wiki/Create,_read,_update_and_delete&quot;&gt;CRUD operations&lt;/a&gt;.&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;638&quot; valign=&quot;top&quot; style=&quot;width: 6.65in; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;This tutorial was inspired by the following article,   published on &lt;a href=&quot;http://www.codeproject.com/&quot;&gt;&lt;span style=&quot;font-size: 12.0pt; mso-bidi-font-size: 11.0pt;&quot;&gt;www.codeproject.com&lt;/span&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;http://www.codeproject.com/Articles/26123/NHibernate-and-MySQL-A-simple-example&quot;&gt;&lt;span style=&quot;font-size: 12.0pt; mso-bidi-font-size: 11.0pt;&quot;&gt;NHibernate and MySQL - A   simple example&lt;/span&gt;&lt;/a&gt; (credits goes to &lt;a href=&quot;http://www.codeproject.com/script/Membership/View.aspx?mid=1493453&quot;&gt;Johan   Lundqvist&lt;/a&gt;, for publishing this article)&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;What we intend to show here is   that using CUBRID you can achieve with no effort the same results as in using   MySQL with NHibernate!&lt;/span&gt;&lt;/b&gt;So we followed the same steps as in the   original article, but using CUBRID as the RDBMS backend.&lt;b&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;h1&gt;Prerequisites&lt;/h1&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;h2&gt;Required software/setup:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://nhforge.org/&quot;&gt;NHibernate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/nHibernate/ADO.NET%20Driver.zip/download&quot;&gt;CUBRID ADO.NET driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Microsoft Visual Studio 2010 / 2012 (Freeware&amp;nbsp;&lt;a href=&quot;http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products&quot;&gt;Express&lt;/a&gt; edition or Professional/Ultimate)&lt;/li&gt;
&lt;li&gt;CUBRID NHibernate &lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/nHibernate/NHibernateCUBRID.zip&quot;&gt;Demo Project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Setting up the project&lt;/h1&gt;
&lt;p&gt;In this tutorial you will learn how to create a simple web project that works with &lt;b&gt;CUBRID&lt;/b&gt; and &lt;b&gt;NHibernate&lt;/b&gt; to access a database table.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Let&apos;s start by creating the project folder structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open MS Visual Studio and create a blank ASP.NET website&lt;/li&gt;
&lt;li&gt;Create a new Webform called &lt;b&gt;Default.aspx&lt;/b&gt; and set it as the &lt;b&gt;Start Page&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Next, add to your project a reference to &lt;b&gt;NHibernate.dll&lt;/b&gt; and to &lt;b&gt;CUBRIDData.dll&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;After you have performed these operations your project tree should look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/000/672/Tree.png&quot; width=&quot;247&quot; height=&quot;473&quot; alt=&quot;Tree&quot; style=&quot;vertical-align: middle; display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The last thing we will need is a table in our available database (let&amp;rsquo;s use &lt;i&gt;demodb). &lt;/i&gt;To keep things simple, we will create a table named &lt;b&gt;site&lt;/b&gt; with just two columns:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An &lt;b&gt;id&lt;/b&gt; column that will serve as &lt;i&gt;primary key&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;A &lt;b&gt;name&lt;/b&gt; column. The SQL is:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE &quot;site&quot;(
&quot;id&quot; integer AUTO_INCREMENT(1,1) NOT NULL,
&quot;name&quot; character varying(100) NOT NULL,
CONSTRAINT pk_site_id PRIMARY KEY(&quot;id&quot;)
);&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Configuring NHibernate&lt;/h1&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;According to the documentation, you can configure NHibernate in three ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;through the&amp;nbsp;&lt;i&gt;web.config&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;through code&lt;/li&gt;
&lt;li&gt;using a separate configuration file just for NHibernate called&amp;nbsp;&lt;i&gt;hibernate.cfg.xml&lt;/i&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;In this tutorial we will use the last approach as it seemed nice to have this separated from the other configuration stuff, so let&apos;s get going and take a look at the configuration file.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;In your project, create a new xml file called &lt;i&gt;hibernate.cfg.&lt;/i&gt;xml. To tell NHibernate that this is its configuration file, set the &lt;b&gt;Build Action &lt;/b&gt;property to &lt;i&gt;Embedded Resource &lt;/i&gt;and the &lt;b&gt;Copy to Output Directory&lt;/b&gt; property to &lt;i&gt;Copy always. &lt;/i&gt;The&lt;i&gt;hibernate.cfg.xml&lt;/i&gt;&amp;nbsp;file consists of a few data that is quite simple to understand. The file with looks like this:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-configuration xmlns=&quot;urn:nhibernate-configuration-2.2&quot;&amp;gt;
&amp;lt;!-- an ISessionFactory instance --&amp;gt;
&amp;lt;session-factory&amp;gt;
&amp;lt;!-- properties --&amp;gt;
&amp;lt;property name=&quot;connection.provider&quot;&amp;gt;
NHibernate.Connection.DriverConnectionProvider
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;connection.driver_class&quot;&amp;gt;
NHibernate.Driver.CUBRIDDriver
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;connection.connection_string&quot;&amp;gt;
server=localhost;database=demodb;port=33000;user=public;password=
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;dialect&quot;&amp;gt;
NHibernate.Dialect.CUBRIDDialect
&amp;lt;/property&amp;gt;
&amp;lt;!-- mapping files --&amp;gt;
&amp;lt;mapping resource=&quot;NHibernateCUBRID.Site.hbm.xml&quot; assembly=&quot;NHibernateCUBRID&quot; /&amp;gt;
&amp;lt;/session-factory&amp;gt;
&amp;lt;/hibernate-configuration&amp;gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;connection.provider sets which connection provider should be used by NHibernate to connect to the CUBRID database.&lt;/li&gt;
&lt;li&gt;connection.driver_class sets which driver should be used and in this case, when using CUBRID, &lt;b&gt;CUBRIDDriver&lt;/b&gt; is our choice &lt;/li&gt;
&lt;li&gt;connection.connection_string is the connection string to the CUBRID database. &lt;/li&gt;
&lt;li&gt;dialect states the NHibernate class name that enables certain platform dependent features, and in this case, since we are using CUBRID, the choice is &lt;i&gt;CUBRIDDialect&lt;/i&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;background-position: initial initial; background-repeat: initial initial;&quot;&gt;The mapping part of the configuration file tells NHibernate which mapping files to use for the&amp;nbsp;&lt;/span&gt;object/relational mapping, and we will describe that later in this tutorial.&lt;/p&gt;
&lt;h1&gt;The Persistent Class&lt;/h1&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;NHibernate can use ordinary classes when persisting objects in a relational database, and uses a mapping technique to connect the persistent class properties to the columns in the relational database tables.&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;For our simple tutorial, we will create a simple C# class called&amp;nbsp;&lt;b&gt;Site&lt;/b&gt;, and the code for that class is as follows:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace NHibernateCUBRID
{
public class Site
{
    private int id;
    public virtual int Id
    {
        get { return id; }
        set { id = value; }
    }
    private string name;
    public virtual string Name
    {
        get { return name; }
        set { name = value; }
    }
    public Site()
    {
    }
  }
}&lt;/pre&gt;
&lt;p&gt;&lt;i&gt;Site.cs&lt;/i&gt;&amp;nbsp;contains two properties that correspond to the columns in a database table. NHibernate isn&apos;t really restricted to use only property types, all .NET types and primitives can be mapped, but in this simple example, we will only use&amp;nbsp;&lt;b&gt;int&lt;/b&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;string&lt;/b&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The&amp;nbsp;&lt;b&gt;ID&lt;/b&gt;&amp;nbsp;property is quite important since it will correlate to the primary key in the table; even if it is not mandatory to use this for NHibernate (which can handle identifiers internally), it is a normal architectural approach.&amp;nbsp;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; 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;As you can see from above, all the class public   properties are declared&amp;nbsp;virtual&amp;nbsp;and this is because NHibernate   utilizes this for some runtime enhancements which otherwise won&apos;t work   according to the documentation, and it is also recommended that you provide a   default constructor for the class.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;h1&gt;The Mapping&lt;/h1&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;To be able to use the&amp;nbsp;&lt;b&gt;Site&lt;/b&gt;&amp;nbsp;class, it is necessary to create an NHibernate mapping file that contains the metadata that NHibernate uses for the object/relational mapping, i.e., connecting the class declaration, the properties to columns, and keys in the database tables.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;So, we will create a new xml file called Site.hbm.xml and set its &lt;b&gt;Build Action&lt;/b&gt; property to &lt;i&gt;Embedded Resource&lt;/i&gt;.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The content of the file is:&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot;&amp;gt;
&amp;lt;class name=&quot;NHibernateCUBRID.Site, NHibernateCUBRID&quot; table=&quot;site&quot;&amp;gt;
&amp;lt;id name=&quot;Id&quot; column=&quot;ID&quot; type=&quot;int&quot;&amp;gt;
&amp;lt;generator class=&quot;native&quot;&amp;gt;&amp;lt;/generator&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;Name&quot; column=&quot;name&quot; type=&quot;String&quot;&amp;gt;&amp;lt;/property&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;The code&lt;/h1&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Now that we are finished with configuring NHibernate and implementing our object/relational model, we are ready to implement a simple webpage that performs all the CRUD operations on our database table by using object/relational mapping.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;First thing we need to do is add a &lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;i&gt;ISessionFactory &lt;/i&gt;member to our Default class which will compile our mappings and create the NHibernate configuration that we need. &lt;i&gt;ISessionFactory&lt;/i&gt;&amp;nbsp;is, according to the NHibernate documentation, a thread safe cache of compiled mappings for a single database, and in the case when we have set the mapping files to be Embedded Resources, this is the only code that is needed to obtain such a factory:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;private ISessionFactory factory =
new NHibernate.Cfg.Configuration().Configure().BuildSessionFactory();&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2&gt;SELECT&lt;/h2&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;In this section we will see how can we retrieve the sites from our database table and dynamically populate an HTML table. So we will add an empty asp table to the webpage. Because we need to refresh this table every time an operation is performed, we will create a private method in our class that performs the query on the database and populates the table:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;private void RefreshSitesTabe()
{
    SitesTable.Controls.Clear();
    using (ISession session = factory.OpenSession())
    {
        ICriteriasc = session.CreateCriteria(typeof(Site));
        siteList = sc.List();
        session.Close();
    }
    factory.Close();
    for (int i = 0; i &amp;lt;siteList.Count; i++)
    {
        TableRow row = new TableRow();
        TableCell selectCell = new TableCell();
        Button siteSelectButton = new Button();
        siteSelectButton.Text = &quot;Select&quot;;
        siteSelectButton.ID = (i+1).ToString();
        siteSelectButton.Click += SelectButton_Clik;
        selectCell.Controls.Add(siteSelectButton);
        row.Cells.Add(selectCell);
        TableCell idCell = new TableCell();
        idCell.Text = ((Site)siteList[i]).Id.ToString();
        row.Cells.Add(idCell);
        TableCell nameCell = new TableCell();
        nameCell.Text = ((Site)siteList[i]).Name;
        row.Cells.Add(nameCell);
        SitesTable.Rows.Add(row);
    }
}&lt;/pre&gt;
&lt;p&gt;The code uses an&amp;nbsp;&lt;b&gt;ISession&lt;/b&gt;&amp;nbsp;instance which is described as a short lived object representing a conversation between the application and the persistent store, i.e., the database, and really wraps an ADO.NET connection. To get an instance of an&amp;nbsp;ISession, you ask the&amp;nbsp;ISessionFactory&amp;nbsp;instance to open and return such an object through the function&amp;nbsp;OpenSession().&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;i&gt;One more thing: For each site we create one more column in the asp table that contains a button called &lt;b&gt;Select. &lt;/b&gt;We will use this button to update and delete sites from the database.&lt;/i&gt;&lt;span style=&quot;font-size: 1.5em;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; align=&quot;center&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;/files/attach/images/194379/000/672/Demo.png&quot; alt=&quot;Demo.png&quot; width=&quot;490&quot; height=&quot;442&quot; /&gt; &lt;br /&gt;&lt;!--[endif]--&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;h2&gt;INSERT&lt;/h2&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;To insert a new site in the table, we need just a &lt;i&gt;TextBox&amp;nbsp;&lt;/i&gt;control and a Save button, so let&amp;rsquo;s add them to the&amp;nbsp;&lt;i&gt;default.aspx&lt;/i&gt; webpage. The important piece of code is in the save button click event handler:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;protected void SaveButton_Click(object sender, EventArgs e)
{
    Site s = newSite();
    using (ISession session = factory.OpenSession())
    {
        s.Name = NewSiteTextBox.Text;
        session.Save(s);
        session.Flush();
        session.Close();
    }
    factory.Close();
    RefreshSitesTabe();
}&lt;/pre&gt;
&lt;p&gt;Again, we will use an instance of &lt;b&gt;ISession&amp;nbsp;&lt;/b&gt;which we obtain by calling the OpenSession() method form our &lt;b&gt;ISessionFactory&lt;/b&gt;. After that, all we have to do is create a new Site object, set its &lt;b&gt;Name&lt;/b&gt; property using the &lt;b&gt;TextBox&lt;/b&gt; as input, use our &lt;i&gt;session&lt;/i&gt; object to save our Site in the database, and refresh the HTML table to include the newly created site:&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; align=&quot;center&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;/files/attach/images/194379/000/672/NHibernate.png&quot; alt=&quot;NHibernate.png&quot; width=&quot;454&quot; height=&quot;191&quot; /&gt; &lt;br /&gt;&lt;!--[endif]--&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;UPDATE&lt;/h2&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;To update a site in the database, we will use a &lt;b&gt;TextBox&lt;/b&gt; control that is populated when the user clicks a select button from the sites table, and an Update button. The user then modifies the content of this textbox and clicks the update button. The update button event handler code is as follows:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;protected void UpdateButton_Click(object sender, EventArgs e)
{
    using (ISession session = factory.OpenSession())
    {
        Site s = (Site)session.Load(typeof(Site), int.Parse(SelectedSiteTextBox.ToolTip));
        s.Name = SelectedSiteTextBox.Text;
        session.SaveOrUpdate(s);
        session.Flush();
        session.Close();
    }
    factory.Close();
    RefreshSitesTabe();
}&lt;/pre&gt;
&lt;p&gt;Without going into too much implementation details, we issue the&amp;nbsp;&lt;i&gt;SaveOrUpdate&amp;nbsp;&lt;/i&gt;command which instructs NHibernate that the info has been updated. To persist the changes to the database, it is essential to use the&amp;nbsp;&lt;i&gt;Flush&lt;/i&gt;&amp;nbsp;command, otherwise the changes won&apos;t be propagated back to the database. After the update has been performed, we call the &lt;i&gt;RefreshSitesTable&lt;/i&gt;() method to view the updated information.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;DELETE&lt;/h2&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;This operation is done in the same way as the UPDATE operation. The Delete button click event handler code is:&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;protected void DeleteButton_Click(object sender, EventArgs e)
{
    using (ISession session = factory.OpenSession())
    {
        Site s = (Site)session.Load(typeof(Site), int.Parse(SelectedSiteTextBox.ToolTip));
        session.Delete(s);
        session.Flush();
        session.Close();
    }
    factory.Close();
    RefreshSitesTabe();
}&lt;/pre&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;margin-left: .5in;&quot;&gt;&lt;i&gt;&lt;a name=&quot;_GoBack&quot;&gt;&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; 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;Note that a client confirmation dialog is displayed &amp;ndash;   we implemented this in the &lt;i&gt;Page_Load&lt;/i&gt; event:&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; background-position: initial initial; background-repeat: initial initial;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Consolas;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10.0pt; font-family: Consolas; mso-fareast-font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; color: blue;&quot;&gt;if&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Consolas;&quot;&gt;&amp;nbsp;(!Page.IsPostBack)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; background-position: initial initial; background-repeat: initial initial;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Consolas;&quot;&gt;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; background-position: initial initial; background-repeat: initial initial;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Consolas;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10.0pt; font-family: Consolas; mso-fareast-font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; color: blue;&quot;&gt;this&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Consolas;&quot;&gt;.Button2.Attributes.Add(&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10.0pt; font-family: Consolas; mso-fareast-font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; color: #a31515;&quot;&gt;&quot;onclick&quot;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Consolas;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10.0pt; font-family: Consolas; mso-fareast-font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; color: #a31515;&quot;&gt;&quot;return&amp;nbsp;confirm(&apos;Are&amp;nbsp;you&amp;nbsp;sure&amp;nbsp;you&amp;nbsp;want&amp;nbsp;to&amp;nbsp;delete&amp;nbsp;this&amp;nbsp;site?&apos;);&quot;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Consolas;&quot;&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; background-position: initial initial; background-repeat: initial initial;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Consolas;&quot;&gt;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; align=&quot;center&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;/files/attach/images/194379/000/672/Delete.png&quot; alt=&quot;Delete.png&quot; width=&quot;605&quot; height=&quot;330&quot; /&gt; &lt;br /&gt;&lt;!--[endif]--&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;And this covers the things we wanted to show you in   this tutorial!&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;For more detailed information, please take a look at   the &lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/nHibernate/NHibernateCUBRID.zip&quot;&gt;project   code&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;&lt;/h1&gt;
&lt;h1&gt;See also&amp;hellip;&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;
&lt;table class=&quot;MsoTableLightShadingAccent5&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; style=&quot;border-collapse: collapse; mso-table-layout-alt: fixed; border: none; mso-border-top-alt: solid #4472C4 1.0pt; mso-border-top-themecolor: accent5; mso-border-bottom-alt: solid #4472C4 1.0pt; mso-border-bottom-themecolor: accent5; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;42%&quot; valign=&quot;top&quot; style=&quot;width: 42.1%; border-top: solid #4472C4 1.0pt; mso-border-top-themecolor: accent5; border-left: none; border-bottom: solid #4472C4 1.0pt; mso-border-bottom-themecolor: accent5; border-right: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;Resource&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;57%&quot; valign=&quot;top&quot; style=&quot;width: 57.9%; border-top: solid #4472C4 1.0pt; mso-border-top-themecolor: accent5; border-left: none; border-bottom: solid #4472C4 1.0pt; mso-border-bottom-themecolor: accent5; border-right: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;Address&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;42%&quot; valign=&quot;top&quot; style=&quot;width: 42.1%; border: none; background: #D0DBF0; mso-background-themecolor: accent5; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;CUBRID ADO.NET Driver Wiki Page&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;57%&quot; valign=&quot;top&quot; style=&quot;width: 57.9%; border: none; background: #D0DBF0; mso-background-themecolor: accent5; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;&lt;a 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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;42%&quot; valign=&quot;top&quot; style=&quot;width: 42.1%; border: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;CUBRID ADO.NET Driver download   from cubrid.org&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;57%&quot; valign=&quot;top&quot; style=&quot;width: 57.9%; border: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;&lt;a href=&quot;/?mid=downloads&amp;amp;item=ado_dot_net_driver&amp;amp;os=windows&amp;amp;cubrid=9.1.0&quot;&gt;http://www.cubrid.org/?mid=downloads&amp;amp;item=ado_dot_net_driver&amp;amp;os=windows&amp;amp;cubrid=9.1.0&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&gt;
&lt;td width=&quot;42%&quot; valign=&quot;top&quot; style=&quot;width: 42.1%; border: none; background: #D0DBF0; mso-background-themecolor: accent5; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;CUBRID NHibernate source code&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;57%&quot; valign=&quot;top&quot; style=&quot;width: 57.9%; border: none; background: #D0DBF0; mso-background-themecolor: accent5; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/NHibernate&quot;&gt;http://svn.cubrid.org/cubridapis/NHibernate&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&gt;
&lt;td width=&quot;42%&quot; valign=&quot;top&quot; style=&quot;width: 42.1%; border: none; border-bottom: solid #4472C4 1.0pt; mso-border-bottom-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;CUBRID NHibernate Wiki page&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;57%&quot; valign=&quot;top&quot; style=&quot;width: 57.9%; border: none; border-bottom: solid #4472C4 1.0pt; mso-border-bottom-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-nhibernate-support&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-nhibernate-support&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;We hope you enjoyed this first &lt;b&gt;CUBRID NHibernate tutorial&lt;/b&gt;!&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Please let us know your feedback and suggestions, so we can improve!&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Thank you!&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The CUBRID API team&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="nhibernate"/>
            
   </entry>
   <entry>
      <title>CMS Online Manual</title>
      <id>http://www.cubrid.org/679409</id>
      <published>2013-06-17T00:36:30-07:00</published>
      <updated>2013-06-17T18:22:27-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/679409"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/679409#comment"/>
      <author>
         <name>andrewliu</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h2&gt;How to build and install CMS&lt;/h2&gt;
&lt;p&gt;Please refer to &lt;a href=&quot;/wiki_tools/entry/cms-build-and-install&quot;&gt;How to build and install CMS&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Known Issue&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;h3&gt;CUBRID_CHARSET and CUBRID_MSG_CHARSET&lt;/h3&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;About CUBRID_CHARSET and CUBRID_MSG_CHARSET, please refer to &lt;a href=&quot;/manual/91/en/env.html&quot;&gt;http://www.cubrid.org/manual/91/en/env.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There is a Known Issue about CUBRID_CHARSET, &lt;a title=&quot;http://jira.cubrid.org/browse/TOOLS-3185&quot; href=&quot;http://jira.cubrid.org/browse/TOOLS-3185&quot;&gt;http://jira.cubrid.org/browse/TOOLS-3185&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Currently, &lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;If you do not use &quot;CUBRID_CHARSET=en_US&quot;, you need set CUBRID_MSG_LANG=en_US in order to use cubrid manager.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="CMS"/>
            
   </entry>
   <entry>
      <title>CUBRID Node.js Driver</title>
      <id>http://www.cubrid.org/411762</id>
      <published>2012-08-19T17:29:29-07:00</published>
      <updated>2013-06-17T02:53:20-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/411762"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/411762#comment"/>
      <author>
         <name>ovidiuguta</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;CUBRRID Node.js driver is developed in 100% pure JavaScript, and does not require specific platform compilation.&lt;/p&gt;
&lt;div class=&quot;grid col2&quot;&gt;&lt;span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/CUBRID/node-cubrid&quot; target=&quot;_self&quot;&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/?mid=downloads&amp;amp;item=nodejs_driver&amp;amp;os=any&quot; target=&quot;_self&quot;&gt;Download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/?mid=questions&amp;amp;tag=node.js&quot; target=&quot;_self&quot;&gt;Node.js specific Questions&amp;nbsp;and Answers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[CUBRID Node.js Driver Release Notes|Release Notes]&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt; &lt;span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/manual/api/node.js/1.1/index.html&quot; target=&quot;_self&quot;&gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[CUBRID Node.js API Overview|Node.js API Overview]&lt;/li&gt;
&lt;li&gt;[CUBRID Node.js Tutorials|Latest News, Guides and Tutorials]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS/component/10806&quot;&gt;JIRA Issue Tracker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Watch the following video demo.&lt;/p&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;lt;iframe src=&quot;http://player.vimeo.com/video/48722475&quot; width=&quot;500&quot; height=&quot;375&quot; frameborder=&quot;0&quot;&gt;&amp;lt;/iframe&gt;;&lt;/div&gt;
&lt;p&gt;More CUBRID video tutorials on &lt;a href=&quot;http://vimeo.com/cubrid&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="node.js"/>
            <category term="driver"/>
            
   </entry>
   <entry>
      <title>CUBRID Node.js Driver Release Notes</title>
      <id>http://www.cubrid.org/516752</id>
      <published>2012-12-04T23:43:30-08:00</published>
      <updated>2013-06-17T02:37:51-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/516752"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/516752#comment"/>
      <author>
         <name>ovidiuguta</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&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;strong&gt;2.0.2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Stable Release&lt;/h3&gt;
&lt;p&gt;Apr 15, 2013: Key highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bug fixes for the commit and rollback functions.&lt;/li&gt;
&lt;li&gt;Updated test cases suite to provide fixes coverage.&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background: #FFFFFF;&quot;&gt;
&lt;td&gt;&lt;strong&gt;2.0.1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Stable Release&lt;/h3&gt;
&lt;p&gt;Apr 10, 2013: Key highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactored Autocommit mode implementation.&lt;/li&gt;
&lt;li&gt;Bug fixes for the query queue execute error with CUBRID SHARD.&lt;/li&gt;
&lt;li&gt;Improved Result2Array functions for queries that do not return any records.&lt;/li&gt;
&lt;li&gt;Updated test cases suite to provide fixes coverage.&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;2.0&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Stable Release&lt;/h3&gt;
&lt;p&gt;Mar 11, 2013: Key highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added compatibility with CUBRID 9.1 release.&lt;/li&gt;
&lt;li&gt;Support or queries queueing.&lt;/li&gt;
&lt;li&gt;Support for LOB objects.&lt;/li&gt;
&lt;li&gt;Support for database parameters.&lt;/li&gt;
&lt;li&gt;Support for more database schema.&lt;/li&gt;
&lt;li&gt;Support for separate Prepare and Execute protocol (for improved backward compatibility).&lt;/li&gt;
&lt;li&gt;Code quality improvements.&lt;/li&gt;
&lt;li&gt;Issues fixing.&lt;/li&gt;
&lt;li&gt;New test cases.&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;1.1.1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Stable Release&lt;/h3&gt;
&lt;p&gt;Jan 15, 2013: Key highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added ActionQueue direct export from the node-cubrid module.&lt;/li&gt;
&lt;li&gt;Added createDefaultCUBRIDDemodbConnection function wrapper.&lt;/li&gt;
&lt;li&gt;Added the ObjectsArray function witch returns an array of objects where column names from the query result are keys.&lt;/li&gt;
&lt;li&gt;Bug fixes for datetime type parsing and _sqlFormat function.&lt;/li&gt;
&lt;li&gt;Updated test cases suite to provide fixes coverage.&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;1.1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Stable Release&lt;/h3&gt;
&lt;p&gt;Dec 24, 2012: &lt;a href=&quot;/blog/cubrid-appstools/cubrid-nodejs-driver-1-1-is-now-available-at-npm/&quot; target=&quot;_self&quot;&gt;oficial blog announcement&lt;/a&gt;.&amp;nbsp;Key highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We now follow &quot;One driver to rule them all&quot; concept. In other words, you can use node-cubrid with any version of CUBRID Database including 8.4.1, 8.4.3, and 9.0.0 (beta).&lt;/li&gt;
&lt;li&gt;Updated NPM installer.&lt;/li&gt;
&lt;li&gt;The new driver comes with many code fixes, bugs fixes, and design changes.&lt;/li&gt;
&lt;li&gt;Rich database support: Connect, Query, Fetch, Execute, Commit, Rollback, DB Schema etc.&lt;/li&gt;
&lt;li&gt;Out of the box driver events model.&lt;/li&gt;
&lt;li&gt;10.000+ LOC, including the driver test code and demos&lt;/li&gt;
&lt;li&gt;New test cases added. Now 50+.&lt;/li&gt;
&lt;li&gt;We have significantly refactored the code using JSHint/JSLint code analysis.&lt;/li&gt;
&lt;li&gt;New documentation.&lt;/li&gt;
&lt;li&gt;Created new tutorials that we will publish later.&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;1.0&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Milestone 4: Stable Release&lt;/h3&gt;
&lt;p&gt;Oct 29, 2012: &lt;a href=&quot;/blog/cubrid-appstools/cubrid-nodejs-driver-stable-is-now-available-at-npm/&quot; target=&quot;_self&quot;&gt;oficial blog announcement&lt;/a&gt;.&amp;nbsp;Key highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Oficial NPM installer.&lt;/li&gt;
&lt;li&gt;Rich database support: Connect, Query, Fetch, Execute, Commit, Rollback, DB Schema, etc.&lt;/li&gt;
&lt;li&gt;Out of the box driver events model&lt;/li&gt;
&lt;li&gt;10,000+ LOC, including the driver test code and demos&lt;/li&gt;
&lt;li&gt;50+ test cases&lt;/li&gt;
&lt;li&gt;HTML documentation&lt;/li&gt;
&lt;li&gt;User demos: E2E scenarios, web sites&lt;/li&gt;
&lt;li&gt;User tutorial ...and many more!&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;1.0 &lt;i&gt;beta&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Milestone 3: Beta Release&lt;/h3&gt;
&lt;p&gt;Oct 3, 2012: &lt;a href=&quot;/blog/cubrid-appstools/cubrid-nodejs-driver-1-0-beta-has-been-released/&quot; target=&quot;_self&quot;&gt;oficial blog announcement&lt;/a&gt;.&amp;nbsp;Key highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connect, Query, Fetch, Execute, Commit, Rollback, DB Schema, etc. - all have been implemented!&lt;/li&gt;
&lt;li&gt;Events model&lt;/li&gt;
&lt;li&gt;9,000+ LOC, including the test code&lt;/li&gt;
&lt;li&gt;50+ test cases&lt;/li&gt;
&lt;li&gt;nodeunit support&lt;/li&gt;
&lt;li&gt;Documentation is now available.&lt;/li&gt;
&lt;li&gt;E2E scenarios&lt;/li&gt;
&lt;li&gt;5 demos websites&lt;/li&gt;
&lt;li&gt;... and many more additions and improvements!&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;0.9.9&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Milestone 2&lt;/h3&gt;
&lt;p&gt;Sep 17, 2012: &lt;a href=&quot;/blog/cubrid-appstools/cubrid-nodejs-driver-m2-is-completed/&quot; target=&quot;_self&quot;&gt;oficial blog announcement&lt;/a&gt;.&amp;nbsp;Key highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/CUBRID/node-cubrid&quot; target=&quot;_self&quot;&gt;https://github.com/CUBRID/node-cubrid&lt;/a&gt; project now contains 3,000+ LOC.&lt;/li&gt;
&lt;li&gt;Connect/Close connection, Query/Close query, Fetch, Batch Execute, Set auto-commit, Commit, Rollback, Implicit Connect etc. are fully implemented.&lt;/li&gt;
&lt;li&gt;More data types support implemented.&lt;/li&gt;
&lt;li&gt;Complete driver events model implemented&lt;/li&gt;
&lt;li&gt;30+ functional test cases&lt;/li&gt;
&lt;li&gt;30+ unit tests&lt;/li&gt;
&lt;li&gt;3 E2E demos&lt;/li&gt;
&lt;li&gt;4 Web site full demos&lt;/li&gt;
&lt;li&gt;Video demo&lt;/li&gt;
&lt;li&gt;... and many more additions and improvements&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;0.9.0&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;h3&gt;Milestone 1&lt;/h3&gt;
&lt;p&gt;Aug 23, 2012: &lt;a href=&quot;/blog/cubrid-appstools/nodejs-driver-for-cubrid-database-is-now-available/&quot; target=&quot;_self&quot;&gt;oficial blog announcement&lt;/a&gt;.&amp;nbsp;Key highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Basic driver interfaces:&amp;nbsp;Connect/Close, Query, Execute, Fetch, Close request etc. completed&lt;/li&gt;
&lt;li&gt;2.000+ LOC&lt;/li&gt;
&lt;li&gt;15+ functional test cases&lt;/li&gt;
&lt;li&gt;15+ unit tests&lt;/li&gt;
&lt;li&gt;E2E demos&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;/div&gt;</content>
                  <category term="node.js"/>
            <category term="driver"/>
            <category term="release note"/>
            
   </entry>
   <entry>
      <title>CUBRID Manager Server</title>
      <id>http://www.cubrid.org/658959</id>
      <published>2013-05-16T18:27:01-07:00</published>
      <updated>2013-06-17T00:55:47-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/658959"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/658959#comment"/>
      <author>
         <name>andrewliu</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p style=&quot;line-height: 2;&quot;&gt;CUBRID Manager Server (CMS) is a server-side component which communicates with [CUBRID Manager] Client Tool, the most powerful tool to manage the CUBRID Databases. CUBRID Mananger server(CMS) is a sub-system of CUBRID engine package and works independently from CUBRID engine and Broker processes. It provides both HTTP and socket interface to manage and monitor CUBRID Engine for almost all needs which can be thought of.&lt;/p&gt;
&lt;div class=&quot;grid col2&quot;&gt;&lt;span&gt; 
&lt;ul&gt;
&lt;li&gt;[CMS Key features | Key features]&lt;/li&gt;
&lt;li&gt;[CMS build and install | How to build and install CMS]&lt;/li&gt;
&lt;li&gt;[CMS Socket Interface | CMS Socket Interface]&lt;/li&gt;
&lt;li&gt;[CMS HTTP Interface | CMS HTTP Interface]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/questions&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;span&gt;Release process ([Process of CUBRID tools development and release_kr|한글])&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Release Notes ([cms-release-notes|English])&lt;/li&gt;
&lt;li&gt;Online Manual([cms-online-manual|English])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS/component/10108&quot;&gt;CMS JIRA Issue Tracker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridtools/cm-server/&quot;&gt;CMS Dev Repository&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="CMS"/>
            <category term="CM Server"/>
            <category term="CM"/>
            
   </entry>
   <entry>
      <title>sql_log 관련</title>
      <id>http://www.cubrid.org/679323</id>
      <published>2013-06-16T23:34:43-07:00</published>
      <updated>2013-06-16T23:34:43-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/679323"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/679323#comment"/>
      <author>
         <name>iunus0</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;큐브리드의 SQL 질의 로그는 sql_log 폴더의 broker*.sql.log, broker*.slow.log, query_editor*.sql.log, query_editor*.slow.log에&lt;br /&gt;저장되는 걸로 알고 있습니다. 최대 100M까지 저장되고 만약 사이즈가 넘어가면 이전 로그가 지워지면서 최근 내용이 기록되는 형태로요.&lt;/p&gt;
&lt;p&gt;그런데 저희가 사용하는 테이블 중에서 특정 데이터만 삭제되는 현상이 발생했습니다.&lt;br /&gt;물론 이 특정 데이터는 delete from temp where pid = 0 과 같은 특정 질의를 통해서만 가능합니다.&lt;br /&gt;그래서 위 sql_log 폴더를 확인해봤지만 특정 데이터만을 삭제하는 질의를 찾을 수가 없었습니다.&lt;/p&gt;
&lt;p&gt;이처럼 sql_log 폴더의 로그에 남지않고 큐브리드 데이터 삭제가 가능한지 알고 싶습니다.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="SQL"/>
            
   </entry>
   <entry>
      <title>CUBRID Web Manager Release Notes</title>
      <id>http://www.cubrid.org/374815</id>
      <published>2012-06-11T21:20:04-07:00</published>
      <updated>2013-06-16T23:18:22-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/374815"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/374815#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h2&gt;CUBRID Web Manager 9.1.0 Build 0001 (2013-04-24)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;CUBRID 9.1.0&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Sub-task&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2858&quot;&gt;TOOLS-2858&lt;/a&gt;] -         If not &quot;admin&quot;, disable DB operation/Variables/Automations view before service support to config these auth &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Bug&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2337&quot;&gt;TOOLS-2337&lt;/a&gt;] -         (CWM-UI) The UI error for longer table name is as the images of attachment. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2339&quot;&gt;TOOLS-2339&lt;/a&gt;] - (CWM-Favorites) Opening the link haven&apos;t any response with invalid URL &quot;http://$%&amp;amp;*&quot; or &quot;$%&amp;amp;*&quot;. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2342&quot;&gt;TOOLS-2342&lt;/a&gt;] -         (CWM-database) The database name &quot;mmm&quot; of head frame is incorrect style. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2348&quot;&gt;TOOLS-2348&lt;/a&gt;] -         The pie of disk space can be changed after clicking items in the right side. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2368&quot;&gt;TOOLS-2368&lt;/a&gt;] -         The displaying of long table name is wrong. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2374&quot;&gt;TOOLS-2374&lt;/a&gt;] -         (CWM-CMS) The primary key of long table and long column can&apos;t be edited and droped. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2396&quot;&gt;TOOLS-2396&lt;/a&gt;] -         (CWM-change password) The event has no release with changing password and selecting username so that other buttons can&apos;t be clicked. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2398&quot;&gt;TOOLS-2398&lt;/a&gt;] -         (CWM-CMS-AdminUser) The brokers, monitors and users information of head-panel can&apos;t be shown after connecting to CUBRID with CMT-JDBC. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2469&quot;&gt;TOOLS-2469&lt;/a&gt;] -         &quot;Manager Server Version&quot; shows 9.0.0.0016 while CUBRID is 8.4.1.7007 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2613&quot;&gt;TOOLS-2613&lt;/a&gt;] - (CWM- Variables) Check the duplicate variables &quot;SESSION_TIMEOUT&quot;. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2713&quot;&gt;TOOLS-2713&lt;/a&gt;] -         When clicking on &quot;Add Job&quot; button in Automation tab, a Warning message appear &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2743&quot;&gt;TOOLS-2743&lt;/a&gt;] -         Why does CWM output user and database password to browser console? &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2906&quot;&gt;TOOLS-2906&lt;/a&gt;] -         Query having for orderby_num() returns syntax error in CWM because of internal-forcing LIMIT clause &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2929&quot;&gt;TOOLS-2929&lt;/a&gt;] - (CWM) If step by step to stop every broker , there is no way to start all brokers. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2954&quot;&gt;TOOLS-2954&lt;/a&gt;] -         CLONE - (CWM-CMS) The primary key of long table and long column can&apos;t be edited and droped. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Improvement&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1769&quot;&gt;TOOLS-1769&lt;/a&gt;] - (BUG BASH) 다중 호스트 지원 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2338&quot;&gt;TOOLS-2338&lt;/a&gt;] - (CWM-Favorites) The URL string didn&apos;t judge the only space &quot;                   &quot;. Judging valid URL with regex may be better. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2343&quot;&gt;TOOLS-2343&lt;/a&gt;] - (CWM-Users) Clicking the blank space cause of combox values dropdown event as image. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2347&quot;&gt;TOOLS-2347&lt;/a&gt;] - (CWM-sendmail) Please show message &quot;current sender account...&quot; or similar to user about &quot;Auto Log Report Management&quot; list. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2358&quot;&gt;TOOLS-2358&lt;/a&gt;] - (CWM) The send-mail time should be able to be set by user. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2487&quot;&gt;TOOLS-2487&lt;/a&gt;] -         Improvement for CWM 8.4.3.201301 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2493&quot;&gt;TOOLS-2493&lt;/a&gt;] -         DATETIME field is not put within quotes when inserting data into table &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2622&quot;&gt;TOOLS-2622&lt;/a&gt;] -         When CWM asks to change the password, it should set focus on the password field automatically &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2632&quot;&gt;TOOLS-2632&lt;/a&gt;] -         Update code to be compatible with CMS after CMS changed save/read sharing logs interface &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2655&quot;&gt;TOOLS-2655&lt;/a&gt;] -         Replace the default spinner to this CUBRID spinner &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2712&quot;&gt;TOOLS-2712&lt;/a&gt;] -         When &quot;Add&quot; button is clicked to create a new CM user, focus should be automatically placed to username field &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2726&quot;&gt;TOOLS-2726&lt;/a&gt;] -         Update CWM to check username and password &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2737&quot;&gt;TOOLS-2737&lt;/a&gt;] -         Add a Refresh button to Users tab in CWM &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2747&quot;&gt;TOOLS-2747&lt;/a&gt;] -         The Variables parameters name should be consistent format, for example all to UpperCase() or CamelCase. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Task&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2352&quot;&gt;TOOLS-2352&lt;/a&gt;] -         Log query and report improve &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;CUBRID Web Manager 8.4.3 Build 0009 and 9.0.0 Build 0004 (2012-12-17)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.4.x&lt;/li&gt;
&lt;li&gt;CUBRID 9.0.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Bug&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2226&quot;&gt;TOOLS-2226&lt;/a&gt;] - (CWM-USER) Create the existed user successfully.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2232&quot;&gt;TOOLS-2232&lt;/a&gt;] - (CWM-Broker) The item value of clicking droplist box can&apos;t be input after clicking the &quot;Clear History&quot; button.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2240&quot;&gt;TOOLS-2240&lt;/a&gt;] - (CWM-Query) The pop-up message box should show &quot;... 10 criteria rows!&quot; with rows maxmum. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2291&quot;&gt;TOOLS-2291&lt;/a&gt;] - Databases tab doesn&apos;t refresh in CWM when Refresh button is clicked&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2363&quot;&gt;TOOLS-2363&lt;/a&gt;] - (CWM-Monitors) The databases status can&apos;t be shown in first page when one database is running n standalone mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Improvement&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1458&quot;&gt;TOOLS-1458&lt;/a&gt;] - (BUG BASH) Shall we make the PK column highlighted?&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1639&quot;&gt;TOOLS-1639&lt;/a&gt;] - (BUG BASH) First run default password not clear&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1802&quot;&gt;TOOLS-1802&lt;/a&gt;] - (BUG BASH) Localizations for CWM&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1867&quot;&gt;TOOLS-1867&lt;/a&gt;] - (BUG BASH) Auto-scroll to the last element when adding a new column - create table window&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2188&quot;&gt;TOOLS-2188&lt;/a&gt;] - Insert improve: if no column in table, give out tip message instead of insert operation panel&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2197&quot;&gt;TOOLS-2197&lt;/a&gt;] - TableStructure improve: if table name has single quotes, there should show tablestructure correctly&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2199&quot;&gt;TOOLS-2199&lt;/a&gt;] - Auto Backup Plan improve: default path should be &apos;prefix/dbname/backup&apos;&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2201&quot;&gt;TOOLS-2201&lt;/a&gt;] - Improve: make CWM better use&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2210&quot;&gt;TOOLS-2210&lt;/a&gt;] - Improve: use CCI/sql interface instead of CMAPI to complete DB login and user group authorize jobs.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2239&quot;&gt;TOOLS-2239&lt;/a&gt;] - (CWM-SQL) The Hide-button tips is the same to the Show-button tips.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2286&quot;&gt;TOOLS-2286&lt;/a&gt;] - Ctab improve: make the width auto ajust to its content&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2301&quot;&gt;TOOLS-2301&lt;/a&gt;] - DB query UI improve&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2333&quot;&gt;TOOLS-2333&lt;/a&gt;] - (CWM-importdb) Please add the importing csv&apos;s message: success number and fail content.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2334&quot;&gt;TOOLS-2334&lt;/a&gt;] - After refresh DB list/CM user auth, refresh reference page&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2346&quot;&gt;TOOLS-2346&lt;/a&gt;] - Broker Improve: show the CAS info correctly&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2349&quot;&gt;TOOLS-2349&lt;/a&gt;] - &quot;Share with URL&quot; had better be web link and can be clicked to open.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;New Feature&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2053&quot;&gt;TOOLS-2053&lt;/a&gt;] - I18N properties file.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2246&quot;&gt;TOOLS-2246&lt;/a&gt;] - Log report and query&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2268&quot;&gt;TOOLS-2268&lt;/a&gt;] - CWM support multi language select&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2321&quot;&gt;TOOLS-2321&lt;/a&gt;] - User can see status per DB in Monitor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;CUBRID Web Manager 8.4.1 Build 0006 and 9.0.0 Build 0003 (2012-10-31)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.4.x&lt;/li&gt;
&lt;li&gt;CUBRID 9.0.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Improvement&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2068&quot;&gt;TOOLS-2068&lt;/a&gt;] - Monitor improve: if a CMS user has no authority on a DB, should never see the space info about that DB in Monitor&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2078&quot;&gt;TOOLS-2078&lt;/a&gt;] - CM user management improve: action column should not be sorted&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2148&quot;&gt;TOOLS-2148&lt;/a&gt;] - Table structure improve: use less ajax request to reduce the wait time&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2160&quot;&gt;TOOLS-2160&lt;/a&gt;] - Index improvement: fix the problem that rename index/unique index/primary key failure and no message alert&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2166&quot;&gt;TOOLS-2166&lt;/a&gt;] - Refresh current table after import into table operation&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2167&quot;&gt;TOOLS-2167&lt;/a&gt;] - Change the export path after Web manager file path changed&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;New Feature&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2115&quot;&gt;TOOLS-2115&lt;/a&gt;] - Favorites web links user-definable.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2116&quot;&gt;TOOLS-2116&lt;/a&gt;] - Add automation feature into CWM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;CUBRID Web Manager 9.0.0 Build 0001 (2012-09-28)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.4.0 +&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Bug&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1431&quot;&gt;TOOLS-1431&lt;/a&gt;] - If length is over range, it won&apos;t report an error when we create a table&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1835&quot;&gt;TOOLS-1835&lt;/a&gt;] -&amp;nbsp;Selecting x instead of Ok doesn&apos;t refresh the indexes&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1913&quot;&gt;TOOLS-1913&lt;/a&gt;] - XSS in &quot;Login Database&quot; operation&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1914&quot;&gt;TOOLS-1914&lt;/a&gt;] - XSS in &quot;default value of column&quot; from create table dialog&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1915&quot;&gt;TOOLS-1915&lt;/a&gt;] - XSS in &quot;Rename Index&quot; operation&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1916&quot;&gt;TOOLS-1916&lt;/a&gt;] - Stored XSS in &quot;Add Backup&quot; operation&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1917&quot;&gt;TOOLS-1917&lt;/a&gt;] - missing protection against ClickJacking&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Improvement&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1405&quot;&gt;TOOLS-1405&lt;/a&gt;] - Improve UI of &quot;Table Name&quot; field in &quot;Create table&quot; window&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1409&quot;&gt;TOOLS-1409&lt;/a&gt;] - In &quot;Edit Column&quot; window after selecting a column in &quot;Position&quot; combo box, the &quot;After&quot; option should be auto selected&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1410&quot;&gt;TOOLS-1410&lt;/a&gt;] - For numeric data types, the &quot;Length/Values&quot; field should be disabled&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1443&quot;&gt;TOOLS-1443&lt;/a&gt;] - When create table, can not set the auto increment feature&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1449&quot;&gt;TOOLS-1449&lt;/a&gt;] - When create table column, the sequence type can not set the sub type&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1451&quot;&gt;TOOLS-1451&lt;/a&gt;] - When create table column and set default value, do not validate the default value according to type&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1476&quot;&gt;TOOLS-1476&lt;/a&gt;] - When add default values isn&apos;t belong to the data type, it hasn&apos;t any warning and it hasn&apos;t save  the value&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1494&quot;&gt;TOOLS-1494&lt;/a&gt;] - The cms user login CWM, the databases display error, and the authority isn&apos;t right.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1706&quot;&gt;TOOLS-1706&lt;/a&gt;] - Last auto-backup date and status&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1762&quot;&gt;TOOLS-1762&lt;/a&gt;] - DB login improve: if DB user auto login failure due to incorrect password or stopped DB, should clean the remembered login status and return home view&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1811&quot;&gt;TOOLS-1811&lt;/a&gt;] - Confirmation for admin logout&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1897&quot;&gt;TOOLS-1897&lt;/a&gt;] - Logout user when cubrid is down or browser data deleted&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1899&quot;&gt;TOOLS-1899&lt;/a&gt;] - Alphabetically sort databases in the disk space usage window&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2004&quot;&gt;TOOLS-2004&lt;/a&gt;] - DB management improve: only &apos;admin&apos; user can stop/delete DB&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2006&quot;&gt;TOOLS-2006&lt;/a&gt;] - CWM monitoring dashboard: No need to duplicate the title of graphs&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2007&quot;&gt;TOOLS-2007&lt;/a&gt;] - Broker improve: when auto refresh brokers status, if server is busy, there should be no error in console and no error alert window&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2008&quot;&gt;TOOLS-2008&lt;/a&gt;] - Change combo box to a checkbox in a Brokers tab&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2009&quot;&gt;TOOLS-2009&lt;/a&gt;] - Add tooltips/popover for broker information&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2010&quot;&gt;TOOLS-2010&lt;/a&gt;] - CWM login improve: remember last time login successful CMS user&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2041&quot;&gt;TOOLS-2041&lt;/a&gt;] - Add copyright comments into source code.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-2045&quot;&gt;TOOLS-2045&lt;/a&gt;] - Auto focusing on the password input box, when show the admin user login main page.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;New Feature&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1407&quot;&gt;TOOLS-1407&lt;/a&gt;] - Add &quot;AUTO_INCREMENT&quot; field to &quot;Edit Column&quot; window&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1957&quot;&gt;TOOLS-1957&lt;/a&gt;] - Support db login via remote broker user-defined&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;CUBRID Web Manager 8.4.1 Build 0004 (2012-08-29)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.4.0 +&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Bug&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1052&quot;&gt;TOOLS-1052&lt;/a&gt;] -         The right head-frame has no auto-refresh function&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1055&quot;&gt;TOOLS-1055&lt;/a&gt;] -          When creating or editing user page was closed, the privileges page didn&apos;t refresh automatically and update user list view.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1122&quot;&gt;TOOLS-1122&lt;/a&gt;] -         The longin-page can&apos;t be opened&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1141&quot;&gt;TOOLS-1141&lt;/a&gt;] -         The change-admin-password function need to increase a logic of judging whether the new password contains  space and &quot;admin&quot;. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1143&quot;&gt;TOOLS-1143&lt;/a&gt;] -         The create-database function need to increase a logic of judging  the new database name&apos;s format &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1184&quot;&gt;TOOLS-1184&lt;/a&gt;] -         The create-database function can&apos;t create the database of  starting with &quot;_&quot; successfully &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1193&quot;&gt;TOOLS-1193&lt;/a&gt;] -         The table-insert function fail to insert correct data. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1195&quot;&gt;TOOLS-1195&lt;/a&gt;] -         The navigator panel link status didn&apos;t update when logout from database. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1196&quot;&gt;TOOLS-1196&lt;/a&gt;] -         The &quot;export/import table and database&quot; function&apos;s affects. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1270&quot;&gt;TOOLS-1270&lt;/a&gt;] -         The Disk-Space-Detail-UI&apos;s scrollbar can&apos;t adapt to the screen automatically. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1297&quot;&gt;TOOLS-1297&lt;/a&gt;] -         The Auto-backup-plan function needs to limit the thread number and backup file number. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1329&quot;&gt;TOOLS-1329&lt;/a&gt;] -         cub_cmserver start 명령 수행 시에 에러 발생. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1330&quot;&gt;TOOLS-1330&lt;/a&gt;] -         Input a existed database name with &quot;create database&quot; function, having no error message. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1334&quot;&gt;TOOLS-1334&lt;/a&gt;] -         Check Privileges Button does not work &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1335&quot;&gt;TOOLS-1335&lt;/a&gt;] -         Deleting the last database does not refresh list &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1336&quot;&gt;TOOLS-1336&lt;/a&gt;] -         All the button titles longer than 1 word are only partially within their background &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1337&quot;&gt;TOOLS-1337&lt;/a&gt;] -         The database name on left frame can&apos;t be refreshed out when create only a database. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1341&quot;&gt;TOOLS-1341&lt;/a&gt;] -         Cubrid Manager Variables are incorrectly displayed &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1342&quot;&gt;TOOLS-1342&lt;/a&gt;] -         Rename table to a name that already exists returns &quot;successful&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1343&quot;&gt;TOOLS-1343&lt;/a&gt;] -         Typo - No fields choosed &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1344&quot;&gt;TOOLS-1344&lt;/a&gt;] -         Incorrect message - Table was droped successfully &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1345&quot;&gt;TOOLS-1345&lt;/a&gt;] -         &quot;Select All Tables&quot; checkbox doesn&apos;t work after dropping all tables &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1346&quot;&gt;TOOLS-1346&lt;/a&gt;] -         When tables are referenced and can&apos;t be dropped directly no error message &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1347&quot;&gt;TOOLS-1347&lt;/a&gt;] -         Cannot create table if not all columns are filled. No error is displayed. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1350&quot;&gt;TOOLS-1350&lt;/a&gt;] -         When creating a table and clicking on a &quot;Save&quot; button, it gives &quot;Syntax: syntax error, unexpected &apos;)&apos;&quot; error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1353&quot;&gt;TOOLS-1353&lt;/a&gt;] -         &quot;Refresh&quot; button doesn&apos;t always refresh the list of table in dropdown box &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1354&quot;&gt;TOOLS-1354&lt;/a&gt;] -         No &quot;Cancel&quot; button when editing a column &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1356&quot;&gt;TOOLS-1356&lt;/a&gt;] -         Typo - Passwords do not match &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1358&quot;&gt;TOOLS-1358&lt;/a&gt;] -         IMPORT시에 종료되지 않음. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1362&quot;&gt;TOOLS-1362&lt;/a&gt;] -         After tables are dropped, the dropdown box with list of tables is not updated &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1364&quot;&gt;TOOLS-1364&lt;/a&gt;] -         Various Typos &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1365&quot;&gt;TOOLS-1365&lt;/a&gt;] -         Regular User shouldn&apos;t be able to check/uncheck privileges &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1366&quot;&gt;TOOLS-1366&lt;/a&gt;] -         Cannot give/remove select access to new users &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1371&quot;&gt;TOOLS-1371&lt;/a&gt;] -         The process bar didn&apos;t close with inputing incorrect password when modify database user&apos;s password. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1373&quot;&gt;TOOLS-1373&lt;/a&gt;] -         The pop-up information boxe&apos;s style of dropping database is inconsistent. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1375&quot;&gt;TOOLS-1375&lt;/a&gt;] -         The login page didn&apos;t  judge whether the user name and password is empty. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1377&quot;&gt;TOOLS-1377&lt;/a&gt;] -         Database-Query function&apos;s affects. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1378&quot;&gt;TOOLS-1378&lt;/a&gt;] -         Create table successfully without inputing a column name and only data type. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1380&quot;&gt;TOOLS-1380&lt;/a&gt;] -         when log-in to online DB, it pops up &quot;server error!Please try later&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1392&quot;&gt;TOOLS-1392&lt;/a&gt;] -         Incorrect path displayed when importing files (C:&amp;#92;fakepath&amp;#92;) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1393&quot;&gt;TOOLS-1393&lt;/a&gt;] -         Cannot import csv file that does not have double quotes around each column &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1394&quot;&gt;TOOLS-1394&lt;/a&gt;] -         Fatal error after dropping column in table with 1 column &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1395&quot;&gt;TOOLS-1395&lt;/a&gt;] -         Various Typos in Backup screen &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1398&quot;&gt;TOOLS-1398&lt;/a&gt;] -         Grant Execute field is still clickable &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1399&quot;&gt;TOOLS-1399&lt;/a&gt;] -         syntax error, unexpected &apos;)&apos;, expecting &apos;(&apos; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1400&quot;&gt;TOOLS-1400&lt;/a&gt;] -         Message cannot be viewed properly &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1403&quot;&gt;TOOLS-1403&lt;/a&gt;] -         Typo in &quot;Change login password for administrator&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1408&quot;&gt;TOOLS-1408&lt;/a&gt;] -         In &quot;Edit Column&quot; window the same column name should not be in &quot;Position&quot; combo box &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1413&quot;&gt;TOOLS-1413&lt;/a&gt;] -         In &quot;Add column&quot; window cannot remove value of the optional field. Also marked in red as if required or incorrect. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1415&quot;&gt;TOOLS-1415&lt;/a&gt;] -         cub_cmserver start reports error, but we can also use it normally on Linux &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1425&quot;&gt;TOOLS-1425&lt;/a&gt;] -         Information about broker appear abnormally on chrome &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1435&quot;&gt;TOOLS-1435&lt;/a&gt;] -         Should be fixed a message on the import when you choose the loaddb of the format field &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1436&quot;&gt;TOOLS-1436&lt;/a&gt;] -         When start the CUBRID, the error &apos;&apos; reported &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1438&quot;&gt;TOOLS-1438&lt;/a&gt;] -         Should be fixed an error message on the SQL tab if your table don&apos;t have any columns. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1447&quot;&gt;TOOLS-1447&lt;/a&gt;] -         Cannot login database 8.4.1.2032 by CWM &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1448&quot;&gt;TOOLS-1448&lt;/a&gt;] -         The infomation on Disk Space Detail is wrong &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1453&quot;&gt;TOOLS-1453&lt;/a&gt;] -         The change-password function&apos;s error: The pld password is incorrect! &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1459&quot;&gt;TOOLS-1459&lt;/a&gt;] -         The drop-column&apos;s UI-display is inconsistent. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1460&quot;&gt;TOOLS-1460&lt;/a&gt;] -         The database-query&apos;s UI-display has error for IE9 at sometimes . &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1463&quot;&gt;TOOLS-1463&lt;/a&gt;] -         The import csv data function has error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1464&quot;&gt;TOOLS-1464&lt;/a&gt;] -         statement  &apos;Create&apos; &apos;Insert&apos; Select can excute successfully but &apos;Drop&apos; fail to excute if the table name has chinese character &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1467&quot;&gt;TOOLS-1467&lt;/a&gt;] -         The UI should support Utf8 character for table name &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1468&quot;&gt;TOOLS-1468&lt;/a&gt;] -         There should be a delete button when add new columns &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1471&quot;&gt;TOOLS-1471&lt;/a&gt;] -         The export-sql and import-sql function has error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1472&quot;&gt;TOOLS-1472&lt;/a&gt;] -         user can update other user&apos;s table &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1473&quot;&gt;TOOLS-1473&lt;/a&gt;] -         The start-database&apos;s UI-display is inconsistent. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1475&quot;&gt;TOOLS-1475&lt;/a&gt;] -         Add a new user fail. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1477&quot;&gt;TOOLS-1477&lt;/a&gt;] -         A SQL query LIKE condition issue for Chinese and Korean contents &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1478&quot;&gt;TOOLS-1478&lt;/a&gt;] -         Add column can&apos;t report error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1485&quot;&gt;TOOLS-1485&lt;/a&gt;] -         The UI should support Utf8 character for user name &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1489&quot;&gt;TOOLS-1489&lt;/a&gt;] -         CWM can&apos;t start or stop cubrid broker &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1493&quot;&gt;TOOLS-1493&lt;/a&gt;] -         Columns can&apos;t be added in query page &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1498&quot;&gt;TOOLS-1498&lt;/a&gt;] -         Two button are overlap &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1500&quot;&gt;TOOLS-1500&lt;/a&gt;] -         Cannot close the &apos;Add a new user&apos; dialog. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1502&quot;&gt;TOOLS-1502&lt;/a&gt;] -         Column can&apos;t display completely on query page &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1504&quot;&gt;TOOLS-1504&lt;/a&gt;] -         When type of a column is float, it can&apos;t input a value &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1506&quot;&gt;TOOLS-1506&lt;/a&gt;] -         A position error in the column edit page &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1507&quot;&gt;TOOLS-1507&lt;/a&gt;] -         About database tree &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1508&quot;&gt;TOOLS-1508&lt;/a&gt;] -         Create table without column should create successfully &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1509&quot;&gt;TOOLS-1509&lt;/a&gt;] -         &quot;Create Table&quot; page need to click twice to show edit box &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1510&quot;&gt;TOOLS-1510&lt;/a&gt;] -         Using search many times, Server always return &amp;ldquo;server error! Please try later!&amp;rdquo; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1513&quot;&gt;TOOLS-1513&lt;/a&gt;] -         The error info cannot display  completely &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1515&quot;&gt;TOOLS-1515&lt;/a&gt;] -         &quot;Create Table&quot; page was edit as bugbash_4.jpg, save, IE8 error happend as bugbash_5.jpg &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1516&quot;&gt;TOOLS-1516&lt;/a&gt;] -         Why don&apos;t we input the old password when changing the DBA user password? &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1517&quot;&gt;TOOLS-1517&lt;/a&gt;] -         Format should be choosed before File. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1518&quot;&gt;TOOLS-1518&lt;/a&gt;] -         Create table fail if the table name is &apos;test&apos; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1519&quot;&gt;TOOLS-1519&lt;/a&gt;] -         when create table columns, can not delete column &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1521&quot;&gt;TOOLS-1521&lt;/a&gt;] -         &amp;ldquo;Insert&amp;rdquo; a record to a table, found the same record was inserted twice. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1525&quot;&gt;TOOLS-1525&lt;/a&gt;] -         Cannot insert bit data type . &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1528&quot;&gt;TOOLS-1528&lt;/a&gt;] -         When column type is sequence(numeric(15,3)), then edit the column,the showed information is not right &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1529&quot;&gt;TOOLS-1529&lt;/a&gt;] -         The record number limit field cannot display completely in win XP &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1530&quot;&gt;TOOLS-1530&lt;/a&gt;] -         There should be some message when user search in tables  but forget to select any table &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1531&quot;&gt;TOOLS-1531&lt;/a&gt;] -         when create table column, can not create the type NUMERIC(10,3) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1535&quot;&gt;TOOLS-1535&lt;/a&gt;] -         &amp;ldquo;Insert&amp;rdquo; a record to table2(id,name), found only &quot;id&amp;ldquo; was inserted &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1536&quot;&gt;TOOLS-1536&lt;/a&gt;] -         CWM UI issue: the constant (no stretching) menu navigation has some constraints &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1545&quot;&gt;TOOLS-1545&lt;/a&gt;] -         impode the CSV file fail &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1550&quot;&gt;TOOLS-1550&lt;/a&gt;] -         The search result is wrong &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1553&quot;&gt;TOOLS-1553&lt;/a&gt;] -         Default value has bug &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1554&quot;&gt;TOOLS-1554&lt;/a&gt;] -         &apos;System error timeout&apos;  occurs when selecting large size of data. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1555&quot;&gt;TOOLS-1555&lt;/a&gt;] -         when this table is range partition table, set the column is primary key, it&apos;s index information is not right &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1558&quot;&gt;TOOLS-1558&lt;/a&gt;] -         Excute rename table to &quot;test&quot; should successfully &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1574&quot;&gt;TOOLS-1574&lt;/a&gt;] -         The result of query isn&apos;t right. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1582&quot;&gt;TOOLS-1582&lt;/a&gt;] -         There isn&apos;t error when update data by user which hasn&apos;t update authority. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1590&quot;&gt;TOOLS-1590&lt;/a&gt;] -         Add nothing and click the save button in the add column page, no error returns. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1591&quot;&gt;TOOLS-1591&lt;/a&gt;] -         typo, wrong word is using &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1593&quot;&gt;TOOLS-1593&lt;/a&gt;] -         Not Null constraint and null default value are not checked when creating table. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1594&quot;&gt;TOOLS-1594&lt;/a&gt;] -         After adding a column, not null constraint and null default value can exist together in a column. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1597&quot;&gt;TOOLS-1597&lt;/a&gt;] -         Entering negative length displays &quot;false&quot; error message &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1602&quot;&gt;TOOLS-1602&lt;/a&gt;] -         Errors when fields are empty are incorrectly displayed &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1635&quot;&gt;TOOLS-1635&lt;/a&gt;] -         Search in database &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1637&quot;&gt;TOOLS-1637&lt;/a&gt;] -         Problem stricted check column&apos;s data type mapping on the object mapping wizard &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1648&quot;&gt;TOOLS-1648&lt;/a&gt;] -         password in add user dialog cannot contain a single quotation mark (&apos;) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1659&quot;&gt;TOOLS-1659&lt;/a&gt;] -         Add New Table 띄운 상태에서 홈으로 이동 됨 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1667&quot;&gt;TOOLS-1667&lt;/a&gt;] -         Foreign Key를 가진 테이블의 truncate 결과 불일치 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1668&quot;&gt;TOOLS-1668&lt;/a&gt;] -         Foreign Key를 가진 테이블의 drop 결과 불일치 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1673&quot;&gt;TOOLS-1673&lt;/a&gt;] -         Incorrect text in monitors graphic explanation box &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1674&quot;&gt;TOOLS-1674&lt;/a&gt;] -         Grammar errors in delete database confirmation dialog &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1677&quot;&gt;TOOLS-1677&lt;/a&gt;] -         Brokers are not starting &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1686&quot;&gt;TOOLS-1686&lt;/a&gt;] -         Old password asked when trying to enter a new password with empty fields &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1687&quot;&gt;TOOLS-1687&lt;/a&gt;] -         Privileges tab is not selected &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1688&quot;&gt;TOOLS-1688&lt;/a&gt;] -         Incorrect text for creating database tables &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1689&quot;&gt;TOOLS-1689&lt;/a&gt;] -         Structure tab is not selected by default when user logs into a database &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1691&quot;&gt;TOOLS-1691&lt;/a&gt;] -         Unaligned text fields in the create table section &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1699&quot;&gt;TOOLS-1699&lt;/a&gt;] -         Can&apos;t enter the database if using a longer password &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1707&quot;&gt;TOOLS-1707&lt;/a&gt;] -         Offline auto-backup not working &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1708&quot;&gt;TOOLS-1708&lt;/a&gt;] -         Add columns after an unexisting one works &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1710&quot;&gt;TOOLS-1710&lt;/a&gt;] -         Confusing search results text &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1720&quot;&gt;TOOLS-1720&lt;/a&gt;] -         Started database shown as stopped &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1721&quot;&gt;TOOLS-1721&lt;/a&gt;] -         Drop down opens outside window &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1726&quot;&gt;TOOLS-1726&lt;/a&gt;] -         Browse 테이블 그리드에서 데이터 수정 시, 데이터 내의 개행문자 사라짐 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1743&quot;&gt;TOOLS-1743&lt;/a&gt;] -         Always inactive Cancel button &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1773&quot;&gt;TOOLS-1773&lt;/a&gt;] -         default 값이 HTML 형식의 태그일 경우 structure에서 표시되지 않음 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1785&quot;&gt;TOOLS-1785&lt;/a&gt;] -         Columns number is not checked before trying to add them &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1797&quot;&gt;TOOLS-1797&lt;/a&gt;] -         Search returns no results when exact phrase is selected &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1829&quot;&gt;TOOLS-1829&lt;/a&gt;] -         Don&apos;t allow operations to the table while importing/exporting &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1855&quot;&gt;TOOLS-1855&lt;/a&gt;] -         If record number limit is too big a database can be downloaded &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1862&quot;&gt;TOOLS-1862&lt;/a&gt;] -         Special character appears under a table name with special characters &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1863&quot;&gt;TOOLS-1863&lt;/a&gt;] -         Animation is not working anymore after a longer processing time &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1868&quot;&gt;TOOLS-1868&lt;/a&gt;] -         Incomplete confirmation dialog when adding pk/uk to multiple columns &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1870&quot;&gt;TOOLS-1870&lt;/a&gt;] -         Drop down list appears far from the drop down button &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1873&quot;&gt;TOOLS-1873&lt;/a&gt;] -         Exported table missing data &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Improvement&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1061&quot;&gt;TOOLS-1061&lt;/a&gt;] -         Broker manger improvement &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1075&quot;&gt;TOOLS-1075&lt;/a&gt;] -         Add function to DatabaseListView&apos;s check privileges icon &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1090&quot;&gt;TOOLS-1090&lt;/a&gt;] -         change prompt info for &apos;truncate table&apos; and &apos;drop table&apos;. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1094&quot;&gt;TOOLS-1094&lt;/a&gt;] -         change logic when add primary key &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1096&quot;&gt;TOOLS-1096&lt;/a&gt;] -         Add message box before the operation in table management view &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1202&quot;&gt;TOOLS-1202&lt;/a&gt;] -         remove the magic number when call getComponent function &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1203&quot;&gt;TOOLS-1203&lt;/a&gt;] -         remove the progress dialog when open database, it will block the UI sometimes when run on IE8 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1204&quot;&gt;TOOLS-1204&lt;/a&gt;] -         Bugfix: white page after login success in IE8 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1210&quot;&gt;TOOLS-1210&lt;/a&gt;] -         Monitor improvement &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1224&quot;&gt;TOOLS-1224&lt;/a&gt;] -         Remove the &apos;save password&apos; feature in database login window &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1225&quot;&gt;TOOLS-1225&lt;/a&gt;] -         Monitoring - UI redesign and refactor &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1273&quot;&gt;TOOLS-1273&lt;/a&gt;] -         Improve database authorization: add check/uncheck all function to column &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1274&quot;&gt;TOOLS-1274&lt;/a&gt;] -         Improve database user group: check the groups &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1275&quot;&gt;TOOLS-1275&lt;/a&gt;] -         Improve CookieUtil.js: check unreadable cookie name and optimize &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1310&quot;&gt;TOOLS-1310&lt;/a&gt;] -         Improve change DB user password: check space(&apos; &apos;) in new password when changing password &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1311&quot;&gt;TOOLS-1311&lt;/a&gt;] -         Improve DB user group: Remove &apos;PUBLIC&apos; from user list &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1312&quot;&gt;TOOLS-1312&lt;/a&gt;] -         Improve DB user authorization: remove all the tables whose owner is default user-&apos;PUBLIC&apos; in grid &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1313&quot;&gt;TOOLS-1313&lt;/a&gt;] -         Improve Monitor: use gauge instead area chart in view and &apos;column chart&apos; in detail window &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1314&quot;&gt;TOOLS-1314&lt;/a&gt;] -         Improve create new DB user: check space(&apos; &apos;) in new password, and give out prompt &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1327&quot;&gt;TOOLS-1327&lt;/a&gt;] -         Tooltips in Monitor tab disappear too fast &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1331&quot;&gt;TOOLS-1331&lt;/a&gt;] -         Remove unusable &apos;UserCenter.js&apos; from project &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1338&quot;&gt;TOOLS-1338&lt;/a&gt;] -         Insert into table should catch &quot;Error: -494 - Semantic:&quot; when no elements entered &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1339&quot;&gt;TOOLS-1339&lt;/a&gt;] -         Fields that need to be filled look like plain text and seem uneditable &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1340&quot;&gt;TOOLS-1340&lt;/a&gt;] -         Browse section only works for 100 rows without manually setting limit &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1348&quot;&gt;TOOLS-1348&lt;/a&gt;] -         When creating a table with the same name as the existing table, it should give warning message &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1349&quot;&gt;TOOLS-1349&lt;/a&gt;] -         Add a spinner to a login page &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1351&quot;&gt;TOOLS-1351&lt;/a&gt;] -         In Create table window, when focus is on &quot;type&quot; dropdown box it should listen to keystrokes &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1352&quot;&gt;TOOLS-1352&lt;/a&gt;] -         Allow to Select All indexes in Table view just like select all columns &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1355&quot;&gt;TOOLS-1355&lt;/a&gt;] -         No way in GUI to add Foreign key &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1363&quot;&gt;TOOLS-1363&lt;/a&gt;] -         Improve  DB user list: user can only be removed one by one &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1367&quot;&gt;TOOLS-1367&lt;/a&gt;] -         Table list should be sorted alphabetically &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1372&quot;&gt;TOOLS-1372&lt;/a&gt;] -         Improve DB auth: add missed authorized info when login user is not a dba &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1376&quot;&gt;TOOLS-1376&lt;/a&gt;] -         Please check the consistency of all the tips or labels of uppercase and lowercase letters. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1385&quot;&gt;TOOLS-1385&lt;/a&gt;] -         DB search improvement: modify to make user use it more simply, easily &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1388&quot;&gt;TOOLS-1388&lt;/a&gt;] -         when exporting structure and data into loaddb format, it exports only &quot;obj&quot; file without schema? &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1389&quot;&gt;TOOLS-1389&lt;/a&gt;] -         supporting multi values insert in the Insert menu &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1390&quot;&gt;TOOLS-1390&lt;/a&gt;] -         In the Variables&amp;gt;there is a typo &amp;lt;Borker&amp;gt; and its displaying order should be changed &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1402&quot;&gt;TOOLS-1402&lt;/a&gt;] -         Improve &quot;Change login password for administrator&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1414&quot;&gt;TOOLS-1414&lt;/a&gt;] -         If default value is defined for a column, when trying to insert new record, it should allow if value is empty &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1417&quot;&gt;TOOLS-1417&lt;/a&gt;] -         Start broker button in action is not obvious for users &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1421&quot;&gt;TOOLS-1421&lt;/a&gt;] -         CWM UI issue: the table list isn&apos;t displayed properly &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1422&quot;&gt;TOOLS-1422&lt;/a&gt;] -         when add a column in table, which column is necessary is important for user. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1424&quot;&gt;TOOLS-1424&lt;/a&gt;] -         index column has &quot;---&apos; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1426&quot;&gt;TOOLS-1426&lt;/a&gt;] -         go button should be changed into insert &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1427&quot;&gt;TOOLS-1427&lt;/a&gt;] -         column need to be insert should be highlight &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1431&quot;&gt;TOOLS-1431&lt;/a&gt;] -         If length is over range, it won&apos;t report an error when we create a table &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1441&quot;&gt;TOOLS-1441&lt;/a&gt;] -         Should be reloaded on the left tree when you create/modify/drop some tables &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1452&quot;&gt;TOOLS-1452&lt;/a&gt;] -         add column should not go to a new page &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1466&quot;&gt;TOOLS-1466&lt;/a&gt;] -         There should be a cancel button when we insert new columns &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1470&quot;&gt;TOOLS-1470&lt;/a&gt;] -         Buttons at the bottom of create table page are too crowed &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1483&quot;&gt;TOOLS-1483&lt;/a&gt;] -         System error occurs when executing prepare statement. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1488&quot;&gt;TOOLS-1488&lt;/a&gt;] -         password should be display in a proper value &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1491&quot;&gt;TOOLS-1491&lt;/a&gt;] -         Change go button to OK on privileges page &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1495&quot;&gt;TOOLS-1495&lt;/a&gt;] -         It will turn white when the mouse move on it on browse table page &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1505&quot;&gt;TOOLS-1505&lt;/a&gt;] -         When put the mouse to the column name ,the background became to white. The column name cannot see clearly. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1514&quot;&gt;TOOLS-1514&lt;/a&gt;] -         Error message should be more precise when fail to create table &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1538&quot;&gt;TOOLS-1538&lt;/a&gt;] -         the Enter button is not work! &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1542&quot;&gt;TOOLS-1542&lt;/a&gt;] -         Cannot point  data type for set . &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1543&quot;&gt;TOOLS-1543&lt;/a&gt;] -         When the column inherit from super class, the column related function should be disabled. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1580&quot;&gt;TOOLS-1580&lt;/a&gt;] -         when add backup plan, there is not a cancel button to return the operations page &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1584&quot;&gt;TOOLS-1584&lt;/a&gt;] -         The host title is always localhost, should display the real IP &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1589&quot;&gt;TOOLS-1589&lt;/a&gt;] -         &apos;Cancel&apos; button should be added to add column page. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1595&quot;&gt;TOOLS-1595&lt;/a&gt;] -         Hover over header fields &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1598&quot;&gt;TOOLS-1598&lt;/a&gt;] -         Checkbox is not centered &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1601&quot;&gt;TOOLS-1601&lt;/a&gt;] -         Column size should be limited &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1605&quot;&gt;TOOLS-1605&lt;/a&gt;] -         Broker improve: when all brokers are stopped, should show the states precisely &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1606&quot;&gt;TOOLS-1606&lt;/a&gt;] -         DB query improve: if one table has no column, the DB query should run precisely &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1608&quot;&gt;TOOLS-1608&lt;/a&gt;] -         Improve: if table/column/user name is keyword in CUBRID, the CWM should run correctly &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1609&quot;&gt;TOOLS-1609&lt;/a&gt;] -         DB search improve: if one table has no column, DB search should run precisely &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1622&quot;&gt;TOOLS-1622&lt;/a&gt;] -         DB query/search improve: create UI before load data, Refactor DB query. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1640&quot;&gt;TOOLS-1640&lt;/a&gt;] -         Monitor Improve: system disk info should get all disks&apos; info in windows &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1654&quot;&gt;TOOLS-1654&lt;/a&gt;] -         특정 테이블 &amp;gt; Browse &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1655&quot;&gt;TOOLS-1655&lt;/a&gt;] -         우측 메인 화면 가로 스크롤이 불필요하게 생김 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1660&quot;&gt;TOOLS-1660&lt;/a&gt;] -         character varying 으로는 컬럼 타입 지정 안됨 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1665&quot;&gt;TOOLS-1665&lt;/a&gt;] -         Check for updates 동작하지 않음 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1669&quot;&gt;TOOLS-1669&lt;/a&gt;] -         테이블 명 변경 시, 처리 중 처리 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1675&quot;&gt;TOOLS-1675&lt;/a&gt;] -         The view is not restored when password is typed wrong in the administration authentication dialog &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1678&quot;&gt;TOOLS-1678&lt;/a&gt;] -         The auto refresh value for the brokers is not saved &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1694&quot;&gt;TOOLS-1694&lt;/a&gt;] -         Update table field dialog is too snug by default &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1696&quot;&gt;TOOLS-1696&lt;/a&gt;] -         Don&apos;t open new popup when trying to export database &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1705&quot;&gt;TOOLS-1705&lt;/a&gt;] -         Explain the table dropdown &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1709&quot;&gt;TOOLS-1709&lt;/a&gt;] -         Browse button is not highlighted in the Search section &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1734&quot;&gt;TOOLS-1734&lt;/a&gt;] -         The user around database doesn&apos;t fit if one of them is too long &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1735&quot;&gt;TOOLS-1735&lt;/a&gt;] -         Incorrect text when 1 table is created &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1737&quot;&gt;TOOLS-1737&lt;/a&gt;] -         Interface freezes for about 2 minutes when trying to create a table with 100 columns &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1747&quot;&gt;TOOLS-1747&lt;/a&gt;] -         Open Query drop down in full &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1767&quot;&gt;TOOLS-1767&lt;/a&gt;] -         Small letter for column definition &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1776&quot;&gt;TOOLS-1776&lt;/a&gt;] -         Monitors 메뉴의 용량 표기법 통일 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1778&quot;&gt;TOOLS-1778&lt;/a&gt;] -         Can&apos;t see full error when running big sql query &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1780&quot;&gt;TOOLS-1780&lt;/a&gt;] -         Inconsistency in message box &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1781&quot;&gt;TOOLS-1781&lt;/a&gt;] -         Add option has the Edit icon &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1786&quot;&gt;TOOLS-1786&lt;/a&gt;] -         Import file field gets cleared when Format is selected &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1787&quot;&gt;TOOLS-1787&lt;/a&gt;] -         Owner of a table should be allowed to import to that table &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1799&quot;&gt;TOOLS-1799&lt;/a&gt;] -         Same error message when trying to delete criteria rows in Query section &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1800&quot;&gt;TOOLS-1800&lt;/a&gt;] -         Query tab is unselected after executing a query &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1801&quot;&gt;TOOLS-1801&lt;/a&gt;] -         Incorrect display of empty dropdown &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1827&quot;&gt;TOOLS-1827&lt;/a&gt;] -         Missing trademark from the initialization page &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1848&quot;&gt;TOOLS-1848&lt;/a&gt;] -         Don&apos;t allow exporting of empty data &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1857&quot;&gt;TOOLS-1857&lt;/a&gt;] -         Incorrect text when creating a table &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1864&quot;&gt;TOOLS-1864&lt;/a&gt;] -         Verify if database exist in CWM - manual delete from disk &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1871&quot;&gt;TOOLS-1871&lt;/a&gt;] -         Text issue when dropping columns &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1874&quot;&gt;TOOLS-1874&lt;/a&gt;] -         Round up kernel cpu usage percentage &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1880&quot;&gt;TOOLS-1880&lt;/a&gt;] -         Table list only has 50 tables if the tables in DB are more than 50 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1881&quot;&gt;TOOLS-1881&lt;/a&gt;] -         Insert Improve: if column name is too long to show correctly, give out finite numbers character with &apos;...&apos; following &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1883&quot;&gt;TOOLS-1883&lt;/a&gt;] -         DB query/search improve: if table name is too long, the table list area is overflow the panel on horizontal &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;New Feature&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-937&quot;&gt;TOOLS-937&lt;/a&gt;] -         main page and frame of web manager console &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-938&quot;&gt;TOOLS-938&lt;/a&gt;] -         retrieve and list all existing databases on left panel of console &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-939&quot;&gt;TOOLS-939&lt;/a&gt;] -         retrieve and list all existing databases on &apos;Databases&apos; tab of main console &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-940&quot;&gt;TOOLS-940&lt;/a&gt;] -         start database on &apos;Databases&apos; tab of main console &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-941&quot;&gt;TOOLS-941&lt;/a&gt;] -         stop database on &apos;Databases&apos; tab of main console &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-942&quot;&gt;TOOLS-942&lt;/a&gt;] -         create new database on &apos;Databases&apos; tab of main console &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-943&quot;&gt;TOOLS-943&lt;/a&gt;] -         drop (delete) database on &apos;Databases&apos; tab of main console &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-946&quot;&gt;TOOLS-946&lt;/a&gt;] -         drop (delete) user of a database in &apos;Privilege&apos; tab of database main console &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1054&quot;&gt;TOOLS-1054&lt;/a&gt;] -         Query Editor - row editable &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1059&quot;&gt;TOOLS-1059&lt;/a&gt;] -         Query helper for database &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1060&quot;&gt;TOOLS-1060&lt;/a&gt;] -         Operations of database &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1063&quot;&gt;TOOLS-1063&lt;/a&gt;] -         Query Editor - row delete &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1077&quot;&gt;TOOLS-1077&lt;/a&gt;] -         Keyword Search in a DB&apos;s tables &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1078&quot;&gt;TOOLS-1078&lt;/a&gt;] -         database export and import &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1091&quot;&gt;TOOLS-1091&lt;/a&gt;] -         Show the status detail of each broker &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1100&quot;&gt;TOOLS-1100&lt;/a&gt;] -         Show cubrid setting variables and Server informations &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1123&quot;&gt;TOOLS-1123&lt;/a&gt;] -         Monitor for broker status, DB status, DB performance, Host Performance &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1135&quot;&gt;TOOLS-1135&lt;/a&gt;] -         Query editor - query plan and explain &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1223&quot;&gt;TOOLS-1223&lt;/a&gt;] -         Retrieve and list all server ports in Variables tab. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1255&quot;&gt;TOOLS-1255&lt;/a&gt;] -         New feature - db auto backup plan &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1290&quot;&gt;TOOLS-1290&lt;/a&gt;] -         Export source tables into separate data files if exporting to database unload files. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1357&quot;&gt;TOOLS-1357&lt;/a&gt;] -         User should be able to go back to previous screen &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1396&quot;&gt;TOOLS-1396&lt;/a&gt;] -         Only show file name in file upload in Import View &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1397&quot;&gt;TOOLS-1397&lt;/a&gt;] -         refresh table list and field list when click structure tab &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Task&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1083&quot;&gt;TOOLS-1083&lt;/a&gt;] -         Can&apos;t delete the index if table name like xxx_xxx, and no message before remove the index &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://jira.cubrid.org/browse/TOOLS-1093&quot;&gt;TOOLS-1093&lt;/a&gt;] -         add failed message when insert a row &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;CUBRID Web Manager 8.4.1 Build&amp;nbsp;0003 (2012-07-31)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.4.0 +&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;New features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Provides the web-based GUI and user-friendly widget, panel and navigator.&lt;/li&gt;
&lt;li&gt;Allows CM server administrator to login, logout and to change the password.&lt;/li&gt;
&lt;li&gt;Allows to browse and manage databases.&lt;/li&gt;
&lt;li&gt;Allows to browse and manage database users and privileges.&lt;/li&gt;
&lt;li&gt;Provides a convenient way to browse and manage table schema or structure and it allows to manage indexes and records. &lt;/li&gt;
&lt;li&gt;Provides Data Import and Export functions for various file formats. &lt;/li&gt;
&lt;li&gt;Provides SQL query editor to execute user-defined SQL statements and display query results and it allows user to update or delete records visually.&lt;/li&gt;
&lt;li&gt;Allows to browse and check brokers with their status details.&lt;/li&gt;
&lt;li&gt;Allows to browse and check the variable settings for CUBRID server, manager server and brokers.&lt;/li&gt;
&lt;li&gt;Provides visual tools to graphically monitor the performance and status of host server, databases and brokers&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Known Bugs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a target=&quot;_self&quot; href=&quot;http://jira.cubrid.org/browse/TOOLS-1534&quot;&gt;TOOLS-1534&lt;/a&gt;] - (BUG BASH) When you have partition tables, the shown style is not correct in navigator&lt;/li&gt;
&lt;li&gt;[&lt;a target=&quot;_self&quot; href=&quot;http://jira.cubrid.org/browse/TOOLS-1571&quot;&gt;TOOLS-1571&lt;/a&gt;] - (BUG BASH) The UI should forbid insert date on partitioned table&lt;/li&gt;
&lt;li&gt;[&lt;a target=&quot;_self&quot; href=&quot;http://jira.cubrid.org/browse/TOOLS-1592&quot;&gt;TOOLS-1592&lt;/a&gt;] - (BUG BASH) db can&apos;t be stopped after loading a large data file&lt;/li&gt;
&lt;li&gt;[&lt;a target=&quot;_self&quot; href=&quot;http://jira.cubrid.org/browse/TOOLS-1600&quot;&gt;TOOLS-1600&lt;/a&gt;] - (BUG BASH) The value returned by select statement is inconsistent with data in database&lt;/li&gt;
&lt;li&gt;[&lt;a target=&quot;_self&quot; href=&quot;http://jira.cubrid.org/browse/TOOLS-1537&quot;&gt;TOOLS-1537&lt;/a&gt;] - (BUG BASH) When selected table is sub partition table, the related operations should be disabled.&lt;/li&gt;
&lt;li&gt;[&lt;a target=&quot;_self&quot; href=&quot;http://jira.cubrid.org/browse/TOOLS-1551&quot;&gt;TOOLS-1551&lt;/a&gt;] - (BUG BASH) In table list, if this table is sub partition table, the Drop actions should be disabled.&lt;/li&gt;
&lt;li&gt;[&lt;a target=&quot;_self&quot; href=&quot;http://jira.cubrid.org/browse/TOOLS-1552&quot;&gt;TOOLS-1552&lt;/a&gt;] - (BUG BASH) Error box pops out, but no message has been shown when dropping a partition table.&lt;/li&gt;
&lt;li&gt;[&lt;a target=&quot;_self&quot; href=&quot;http://jira.cubrid.org/browse/TOOLS-1555&quot;&gt;TOOLS-1555&lt;/a&gt;] - (BUG BASH) when this table is a range partition table and you set the column as primary key, its index information is not right&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="release note"/>
            <category term="CWM"/>
            
   </entry>
   <entry>
      <title>CMT Release Note Summary_kr</title>
      <id>http://www.cubrid.org/679228</id>
      <published>2013-06-16T22:21:39-07:00</published>
      <updated>2013-06-16T22:39:20-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/679228"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/679228#comment"/>
      <author>
         <name>newpcraft</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h2&gt;2013년 5월 릴리스&lt;/h2&gt;
&lt;h3&gt;1. 릴리스 버전 : CMT-2013.05&lt;/h3&gt;
&lt;h3&gt;2. 다운로드&lt;/h3&gt;
&lt;p&gt;- FTP 서버: ftp://ftp.cubrid.org/CUBRID_Tools/CUBRID_Migration_Toolkit/2013.05/&lt;/p&gt;
&lt;p&gt;- 영문 커뮤니티: http://www.cubrid.org/?mid=downloads&amp;amp;item=cubrid_migration_toolkit&lt;/p&gt;
&lt;h3&gt;3. 주요 개선 사항&lt;/h3&gt;
&lt;p&gt;- 마이그레이션 마법사를 개선하여 CSV/SQL 또한 하나의 마이그레이션 마법사로 선택할 수 있도록 하였습니다.&lt;/p&gt;
&lt;p&gt;- 마이그레이션후 생성되는 이력을 이용해서 다시 마이그레이션을 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; 또한 실패한 테이블은 수작업으로 선택하지 않고도 자동 선택되어 다시 마이그레이션하도록 옵션으로 지원됩니다.&lt;/p&gt;
&lt;p&gt;- 마이그레이션을 다중으로 예약할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;마이그레이션 마법사 UI 개선&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;기존 SQL/CSV 마이그레이션이 마이그레이션 마법사에 통합되었습니다. 통합된 마이그레이션 마법사로 원본, 대상 유형을 더 쉽게 선택하고 마이그레이션할 수 있게 되었습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_01.png&quot; width=&quot;710&quot; height=&quot;525&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;다중 예약 지원&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;기존 버전에는 1개의 예약만 지원하였으나 이제는 여러개를 동시에 예약해둘 수 있습니다. &amp;nbsp;그러나, 동시에 실행되지 않기 때문에 동일 시간으로 예약될 경우 다른 동일시간에 예약된 작업은 실행되지 않습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예약방법은 두 가지 방법으로 할 수 있는데, 마이그레이션 마법사 5단계에서 &quot;시작하기&quot;를 누르면 나오는 &quot;예약하기&quot; 버튼으로 예약할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;315&quot; width=&quot;661&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_07.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;아래의 창에서 1회 실행 또는 반복 실행 및 고급(Unix/Linux의 CRON에 익숙할 경우)을 사용하여 실행 예약을 할 수 있습니다. 예약할 경우 다른 예약과 시간이 겹치지 않도록 주의가 필요합니다.&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;313&quot; width=&quot;416&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_08.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;두번째 방법은 이미 생성된 스크립트를 선택하고 &quot;스크립트 예약&quot; 버튼을 누르면 위의 화면처럼 예약하는 창이 출력됩니다.&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;203&quot; width=&quot;305&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_09.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;스크립트 선택후 마우스 오른쪽 버튼으로 예약된 스크립트 실행 이력을 보거나 예약 취소를 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;245&quot; width=&quot;331&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_10.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;실패한 테이블만 다시 마이그레이션&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;마이그레이션 완료후 아래 그림처럼 실패한 마이그레이션이 있을 때 기존에는 실패한 테이블을 하나 하나 선택한 후 마이그레이션을 해야 했습니다. 그러나 실패한 테이블만 다시 마이그레이션할 수 있도록 &quot;마이그레이션 재실행&quot; 기능을 마이그레이션 이력에 추가하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_03_1.png&quot; width=&quot;419&quot; height=&quot;346&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&quot;전체 테이블 + 전체 데이터&quot;, &quot;실패한 테이블 + 실패한 테이블의 전체 데이터&quot;, &quot;실패한 데이터의 전체 데이터&quot;를 옵션으로 선택할 수 있습니다. 그러나 실패한 데이터만 별도로 입력하는 기능은 아직 지원되지 않으며 실패한 테이블의 모든 데이터를 다시 마이그레이션을 합니다 (차기 버전에 실패한 데이터만 별도로 입력 기능 지원 예정).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_04_1.png&quot; width=&quot;606&quot; height=&quot;317&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;JDBC 연결 정보에 설정 추가&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;마이그레이션 마법사에서 사용한 접속 정보는 다시 마이그레이션할 때 편리하도록 재활용되기 때문에 접속명에 사용자가 알아볼 수 있도록 설명을 달 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_05.png&quot; width=&quot;710&quot; height=&quot;527&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;2013년 3월 릴리스&lt;/h2&gt;
&lt;h3&gt;1. 릴리스 버전 : CMT-2013.03&lt;/h3&gt;
&lt;h3&gt;&lt;span style=&quot;font-size: 1.17em;&quot;&gt;2. 다운로드&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;- FTP 서버: ftp://ftp.cubrid.org/CUBRID_Tools/CUBRID_Migration_Toolkit/2013.03/&lt;/p&gt;
&lt;p&gt;- 영문 커뮤니티: http://www.cubrid.org/?mid=downloads&amp;amp;item=cubrid_migration_toolkit&lt;/p&gt;
&lt;h3&gt;3. 주요 개선 사항&lt;/h3&gt;
&lt;p&gt;- *.sql, *.csv 마이그레이션 마법사 지원&lt;/p&gt;
&lt;p&gt;- 마이그레이션 마법사 3단계에서 오른쪽 매핑뷰에서도 사용자 정의 SQL을 입력할 수 있도록 개선&lt;/p&gt;
&lt;p&gt;- 콘솔 마이그레이션 결과 리포트 상세화&lt;/p&gt;
&lt;p&gt;- 마이그레이션 마법사 최종 단계에서 바로 마이그레이션할 것인지 예약할 것인지 선택하는 기능 추가&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;마이그레이션 마법사 추가 - SQL, CSV 파일 입력&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;새 마이그레이션에 기존 DB &amp;gt; DB 및 파일출력만 지원하였으나, 이번 버전부터 다량의 SQL (DDL 및 INSERT), CSV를 입력할 수 있는 기능이 추가되었습니다. 툴바에서 &quot;새 마이그레이션&quot;을 클릭하면 별도의 추가 메뉴로 이용할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt-201303-1.png&quot; width=&quot;227&quot; height=&quot;144&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;1.1 SQL 파일 입력&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;입력할 SQL 파일을 &quot;추가&quot;로 입력&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt-201303-5.png&quot; width=&quot;710&quot; height=&quot;524&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;1.2 CSV 파일 입력&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;파일명이 테이블명과 일치할 경우 대상 테이블로 자동 매핑&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt-201303-2.png&quot; width=&quot;710&quot; height=&quot;427&quot; /&gt;&lt;/p&gt;
&lt;p&gt;CSV파일의 첫 줄이 제목줄이 없이 데이터만 있을 경우 &quot;제목줄 없음&quot; 선택 기능 제공&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt-201303-4.png&quot; width=&quot;637&quot; height=&quot;104&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;콘솔 마이그레이션 결과 리포트 개선&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;콘솔 마이그레이션 후 결과 리포트를 확인하기 위해서는 mh파일을 CMT UI로 가져와야 했으나,&lt;/p&gt;
&lt;p&gt;이번부터 log파일 및 console 표준 출력으로 결과를 확인할 수 있도록 개선되었습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt-201303-6.png&quot; width=&quot;576&quot; height=&quot;246&quot; /&gt;&lt;/p&gt;
&lt;p&gt;콘솔 마이그레이션이 설치된 경로의 log 디렉토리에 있는 cubridmigration.log 파일에 마이그레이션시&lt;/p&gt;
&lt;p&gt;발생한 오류 log와 마이그레이션 결과가 저장됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;마이그레이션 시작전 &quot;바로 시작하기&quot;와 &quot;예약하기&quot; 선택 기능 추가&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt-201303-9.png&quot; width=&quot;509&quot; height=&quot;207&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;오른쪽 객체 매핑 화면에서도 사용자 정의 SQL을 입력할 수 있도록 SQL 탭 추가&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt-201303-8.png&quot; width=&quot;710&quot; height=&quot;174&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;2013년 1월 릴리스&lt;/h2&gt;
&lt;h3&gt;&lt;span style=&quot;font-size: 1.17em;&quot;&gt;1. 릴리스 버전 : CMT-2013.01&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;font-size: small;&quot;&gt;2. 다운로드&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;- FTP 서버: ftp://ftp.cubrid.org/CUBRID_Tools/CUBRID_Migration_Toolkit/8.4.3/&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;- 영문 커뮤니티: http://www.cubrid.org/?mid=downloads&amp;amp;item=cubrid_migration_toolkit&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;3. 주요 개선 사항&lt;/h3&gt;
&lt;p&gt;- 성능 옵션을 상세히 설정 가능&lt;/p&gt;
&lt;p&gt;- 연결 정보 입력으로 JDBC URL 지원 (오라클 RAC 또는 CUBRID의 zeroDateTimeBehavior 설정 가능)&lt;/p&gt;
&lt;p&gt;- XLS 파일로 Export 지원&lt;/p&gt;
&lt;p&gt;- 컬럼의 기본값을 표현식(함수) 지정 지원&lt;/p&gt;
&lt;p&gt;- CLOB를 VARCHAR로 변환 지원&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;New performance settings in migration wizard&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;New preference page:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt_201301_01.png&quot; height=&quot;527&quot; width=&quot;720&quot; /&gt;&lt;/p&gt;
&lt;p&gt;New performance setting dialog:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt_201301_02.png&quot; height=&quot;585&quot; width=&quot;720&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Click button &amp;ldquo;Advanced Settings&amp;hellip;&amp;rdquo; to pop the dialog as follows:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt_201301_03.png&quot; height=&quot;219&quot; width=&quot;499&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The initialized values in the dialog are from the preference page.&lt;br /&gt;Please input reasonable values, too big values may cause out of memory error.&lt;br /&gt;Implicit estimate option controls the CMT getting total record count from source database.&lt;br /&gt;Because getting record count costs too much time in some big source databases.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;Supporting user defined JDBC URL&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt_201301_04.png&quot; height=&quot;415&quot; width=&quot;523&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Click the button &amp;ldquo;JDBC Advanced&amp;hellip;&amp;rdquo; to pop a dialog as follows:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt_201301_05.png&quot; height=&quot;239&quot; width=&quot;478&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Users can input JDBC connection URL into this dialog.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;Export data with XLS format&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt_201301_06.png&quot; height=&quot;464&quot; width=&quot;720&quot; /&gt;&lt;/p&gt;
&lt;p&gt;CMT supports exporting records with XLS format.&lt;br /&gt;But it is not recommended that there are some records with BLOB/Binary or big Varchar types in the source database.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;Define column&apos;s default value by expressions&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/cmt_201301_07.png&quot; height=&quot;479&quot; width=&quot;720&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If the &amp;ldquo;Expression&amp;rdquo; option is checked, CMT will regard the string in the text box as a SQL expression, so the text will not be quoted with &amp;lsquo;&amp;rsquo; in table&amp;rsquo;s DDL.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;2012년 12월 릴리스&lt;/h2&gt;
&lt;h3&gt;1. 릴리스 버전 : CMT-2012.12&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;2. 다운로드&lt;/h3&gt;
&lt;p&gt;- FTP 서버: ftp://ftp.cubrid.org/CUBRID_Tools/CUBRID_Migration_Toolkit/8.4.3/&lt;/p&gt;
&lt;p&gt;- 영문 커뮤니티: http://www.cubrid.org/?mid=downloads&amp;amp;item=cubrid_migration_toolkit&lt;/p&gt;
&lt;h3&gt;3. 주요 개선 사항&lt;/h3&gt;
&lt;p&gt;- 마이그레이션 스크립트를 이용한 마이그레이션 예약 기능 추가&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;JDBC 마이그레이션시 실패 SQL을 파일로 별도 저장&lt;/p&gt;
&lt;p&gt;- 테이블의 컬럼 순서 조정 기능&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;테이블 매핑시 사용자 정의 SQL로 마이그레이션 전/후 스키마 변경 작업 지원&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;&lt;b&gt;스크립트 실행 예약&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/194378/207/541/2013-01-02%2002;21;07.PNG&quot; alt=&quot;2013-01-02 02;21;07.PNG&quot; title=&quot;2013-01-02 02;21;07.PNG&quot; class=&quot;iePngFix&quot; width=&quot;479&quot; height=&quot;82&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CUBRID Migration Toolkit을 실행한 상태에서 &amp;lt;스크립트 예약&amp;gt; 버튼으로 스크립트 실행 예약이 가능합니다. 시간 예약은 아래의 그림처럼 3가지 방식을 지원하고 있습니다. 1회, 매일 반복, UNIX의 cron 형식을 지원합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/194378/207/541/2013-01-02%2002;23;56.PNG&quot; alt=&quot;2013-01-02 02;23;56.PNG&quot; title=&quot;2013-01-02 02;23;56.PNG&quot; class=&quot;iePngFix&quot; width=&quot;404&quot; height=&quot;305&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예약 실행 이력이나 취소를 하려면 해당 스크립트를 선택후 오른쪽 마우스의 메뉴를 보실 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/194378/207/541/2013-01-02%2002;27;07.PNG&quot; alt=&quot;2013-01-02 02;27;07.PNG&quot; title=&quot;2013-01-02 02;27;07.PNG&quot; class=&quot;iePngFix&quot; width=&quot;284&quot; height=&quot;242&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 실행 예약 기능은 UI에서 실행할 경우만 지원하며 CUBRID Migration Toolkit을 종료하게되면 실행되지 않습니다. 유닉스/리눅스 콘솔로 마이그레이션하는 경우에는 UI에서 설정한 예약 실행은 사용할 수 없으며 CUBRID Migration Toolkit Console과 마이그레이션 스크립트를 이용하여 직접 cron에 등록하여야 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;JDBC 마이그레이션 중 실패 데이터를 SQL 파일로 남기는 기능&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;JDBC 마이그레이션 중 실패하는 데이터를 SQL 파일로 남기는 기능이 추가되었습니다. 마이그레이션 마법사 2단계에서 아래와 같이 &amp;lt;입력 실패 데이터 SQL 로그 파일로 저장&amp;gt;을 체크하시면, CUBRID Migration Toolkit 실행 폴더에 errorsqls 폴더가 생성되며 파일이 저장됩니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/194378/207/541/2013-01-02%2002;32;41.PNG&quot; alt=&quot;2013-01-02 02;32;41.PNG&quot; title=&quot;2013-01-02 02;32;41.PNG&quot; class=&quot;iePngFix&quot; width=&quot;618&quot; height=&quot;100&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;다량/대용량 SQL 파일 로드 기능&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&amp;lt;SQL 파일 실행&amp;gt; 기능을 이용하여 다량 또는 대용량의 SQL 파일을 로드할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/194378/207/541/2013-01-02%2002;42;52.PNG&quot; alt=&quot;2013-01-02 02;42;52.PNG&quot; title=&quot;2013-01-02 02;42;52.PNG&quot; class=&quot;iePngFix&quot; width=&quot;481&quot; height=&quot;63&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;툴바 버튼을 클릭하면 SQL 파일을 선택하여 마이그레이션을 진행할 수 있도록 마법사가 출력되며, 여기에 입력을 원하는 SQL 파일을 추가하여 다음 단계로 진행할 수 있습니다. 2단계에서 입력될 데이터베이스를 선택한 후 마이그레이션을 시작할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/194378/207/541/2013-01-02%2002;44;07.PNG&quot; alt=&quot;2013-01-02 02;44;07.PNG&quot; title=&quot;2013-01-02 02;44;07.PNG&quot; class=&quot;iePngFix&quot; width=&quot;751&quot; height=&quot;452&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3단계 객체매핑에서 테이블별로 마이그레이션 이후의 컬럼 순서를 변경하는 기능을 지원합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/194378/207/541/2013-01-02%2002;46;59.PNG&quot; alt=&quot;2013-01-02 02;46;59.PNG&quot; title=&quot;2013-01-02 02;46;59.PNG&quot; class=&quot;iePngFix&quot; width=&quot;744&quot; height=&quot;210&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;또한, 테이블이 생성된 직후(데이터 마이그레이션 직전)에 실행할 SQL과 테이블 마이그레이션이 완료된 이후 실행할 SQL을 사용자 정의할 수 있는 기능을 지원합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/files/attach/images/194378/207/541/2013-01-02%2002;48;43.PNG&quot; alt=&quot;2013-01-02 02;48;43.PNG&quot; title=&quot;2013-01-02 02;48;43.PNG&quot; class=&quot;iePngFix&quot; width=&quot;617&quot; height=&quot;396&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="CMT"/>
            <category term="release note"/>
            
   </entry>
   <entry>
      <title>Documentations for release</title>
      <id>http://www.cubrid.org/534887</id>
      <published>2012-12-24T03:22:02-08:00</published>
      <updated>2013-06-16T22:17:09-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/534887"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/534887#comment"/>
      <author>
         <name>newpcraft</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Home&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-manager&quot;&gt;CM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-query-browser&quot;&gt;CQB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-migration-toolkit&quot;&gt;CMT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-web-manager&quot;&gt;CWM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Manual&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CM - &lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-manager-manual_kr&quot;&gt;Korean&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-manager-manual&quot;&gt;English&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CQB - &lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-query-browser-manual_kr&quot;&gt;Korean&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-query-browser-manual&quot;&gt;English&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CMT - &lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-migration-toolkit-manual_kr&quot;&gt;Korean&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-migration-toolkit-manual&quot;&gt;English&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CWM - Korean, &lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-web-manager-manual&quot;&gt;English&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Release Notes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-manager-release-note&quot;&gt;CM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-query-browser-release-notes&quot;&gt;CQB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-migration-toolkit-release-notes&quot;&gt;CMT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;/wiki_tools/entry/cubrid-web-manager-release-notes&quot;&gt;CWM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;New Features&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CM/CQB : [release-note-summary_kr|All] , [New Features of CM 8.4.1.201208_kr|2012.08] , [New Features of CM 8.4.3.201212_kr|2012.12] , [New Features of CM 2013.03_kr|2013.03] ,&amp;nbsp;[New Features of CM 2013.05_kr|2013.05]&lt;/li&gt;
&lt;li&gt;CMT : [cmt-release-note-summary_kr|All], [New Features of CMT 8.4.3.201212_kr|2012.12] , [New Features of CMT 8.4.3.201301|2013.01], [New Features of CMT 2013.03_kr|2013.03], [New Features of CMT 2013.05|2013.05E]&amp;nbsp;[New Features of CMT 2013.05_kr|2013.05K]&lt;/li&gt;
&lt;li&gt;CWM : [CWM Release Note Summary|8.4.3.0009]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;p&gt;QA Reports&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[CUBRID Manager QA Report]&lt;/li&gt;
&lt;li&gt;[CUBRID Query Browser QA Report]&lt;/li&gt;
&lt;li&gt;[CUBRID Migration Toolkit QA Report]&lt;/li&gt;
&lt;li&gt;CWM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Known Issues&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CM&lt;/li&gt;
&lt;li&gt;CQB&lt;/li&gt;
&lt;li&gt;CMT&lt;/li&gt;
&lt;li&gt;CWM&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="CM"/>
            <category term="CQB"/>
            <category term="CMT"/>
            <category term="CWM"/>
            <category term="CMS"/>
            
   </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-06-16T18:18:57-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>cd_interface</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 height=&quot;386&quot; width=&quot;474&quot; src=&quot;/files/attach/images/194379/669/644/image003.jpg&quot; alt=&quot;image003.jpg&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 height=&quot;99&quot; width=&quot;245&quot; src=&quot;/files/attach/images/194379/669/644/image005.jpg&quot; alt=&quot;image005.jpg&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 height=&quot;280&quot; width=&quot;374&quot; src=&quot;/files/attach/images/194379/669/644/image001p.jpg&quot; alt=&quot;image001p.jpg&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 height=&quot;235&quot; width=&quot;416&quot; src=&quot;/files/attach/images/194379/669/644/image002p.jpg&quot; alt=&quot;image002p.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;3) Choose CUBRID OLE DB Provider, then click Data links button&lt;br /&gt;&lt;img height=&quot;434&quot; width=&quot;319&quot; src=&quot;/files/attach/images/194379/669/644/image003p.jpg&quot; alt=&quot;image003p.jpg&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 height=&quot;370&quot; width=&quot;499&quot; src=&quot;/files/attach/images/194379/669/644/image004p.jpg&quot; alt=&quot;image004p.jpg&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 height=&quot;23&quot; width=&quot;185&quot; src=&quot;/files/attach/images/194379/669/644/image005p.jpg&quot; alt=&quot;image005p.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Second, double click 1.udl, dialog will pop up.&lt;br /&gt;&lt;img height=&quot;404&quot; width=&quot;326&quot; src=&quot;/files/attach/images/194379/669/644/image006p.jpg&quot; alt=&quot;image006p.jpg&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;p&gt;&lt;span style=&quot;background-color: #ccffff;&quot;&gt;
&lt;p&gt;&amp;nbsp;7) &amp;nbsp;Setting method of isolevels&lt;/p&gt;
&lt;p&gt;Connection String:&lt;/p&gt;
&lt;/span&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #ccffff; color: #000000;&quot;&gt;&quot;Provider=CUBRIDProvider;Data Source=demodb;Location=10.34.64.104;User ID=dba;Password=;Port=30000;Fetch Size=100;Charset=utf-8;&lt;/span&gt;&lt;span style=&quot;background-color: #ccffff;&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;Autocommit Isolation Levels=256&lt;/span&gt;;&quot;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;table border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OLEDB&lt;/td&gt;
&lt;td&gt;Cubrid&lt;/td&gt;
&lt;td&gt;Value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ISOLATIONLEVEL_READUNCOMMITTED&lt;/td&gt;
&lt;td&gt;TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE&lt;/td&gt;
&lt;td&gt;256&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ISOLATIONLEVEL_READCOMMITTED&lt;/td&gt;
&lt;td&gt;TRAN_COMMIT_CLASS_COMMIT_INSTANCE&lt;/td&gt;
&lt;td&gt;4096&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ISOLATIONLEVEL_REPEATABLEREAD&lt;/td&gt;
&lt;td&gt;TRAN_REP_CLASS_REP_INSTANCE&lt;/td&gt;
&lt;td&gt;65536&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ISOLATIONLEVEL_SERIALIZABLE&lt;/td&gt;
&lt;td&gt;TRAN_SERIALIZABLE&lt;/td&gt;
&lt;td&gt;1048576&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #ccffff;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If you do not set isolation levels, the default value is 4096.&lt;/p&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 target=&quot;_self&quot; href=&quot;/manual/841/en/Configuring%20Connection%20Strings&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>release-note-summary_kr</title>
      <id>http://www.cubrid.org/534754</id>
      <published>2012-12-24T01:24:53-08:00</published>
      <updated>2013-06-16T17:42:12-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/534754"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/534754#comment"/>
      <author>
         <name>newpcraft</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;
&lt;h1&gt;2013년 5월 릴리스&lt;/h1&gt;
&lt;h2&gt;&lt;br /&gt;1. 릴리스 버전 : CM-2013.05 / CQB-2013.05&lt;/h2&gt;
&lt;p&gt;- 상세 릴리스 노트:&amp;nbsp;&lt;a href=&quot;/wiki_tools/entry/cubrid-manager-release-note_kr&quot;&gt;http://www.cubrid.org/wiki_tools/entry/cubrid-manager-release-note_kr&lt;br /&gt;&lt;/a&gt;- 상세 릴리스 노트:&amp;nbsp;&lt;a href=&quot;/wiki_tools/entry/cubrid-query-browser-release-note_kr&quot;&gt;http://www.cubrid.org/wiki_tools/entry/cubrid-query-browser-release-note_kr&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;2. 다운로드&lt;/h2&gt;
&lt;p&gt;- CUBRIDManager-2013.05 빌드0120:&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Manager/2013.05/&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Manager/2013.05/&lt;br /&gt;&lt;/a&gt;- CUBRIDQuery-2013.05 빌드0120:&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Query_Browser/2013.05/&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Query_Browser/2013.05/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;3. 주요개선사항&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;- 엔진 버전 CUBRID 8.2.2 ~ CUBRID 9.1 지원&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 튜닝모드 출력 고도화 (별도 창으로 두개의 질의 실행 계획 비교 지원)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 멀티 질의 색상 비교 기능 (멀티 질의 후 서로 다른 데이터를 색상으로 시각화하여 가독성 향상)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 질의 결과 필터 기능 (질의 결과에서 특정 데이터를 찾기 위한 필터)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- SQL 실행 기능 가져오기 마법사에 통합 및 기능 개선&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;튜닝 모드 결과&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CM/images/release/201305_tunmode_1_ko.PNG&quot; width=&quot;710&quot; height=&quot;208&quot; /&gt;&lt;/p&gt;
&lt;p&gt;튜닝 모드는 질의 편집기의 튜닝모드 버튼이 눌려진 상태에서 계속 동작합니다. 튜닝 모드에서는 질의를 실행할 때마다 질의 통계(Statistics)와 질의 실행 계획을 함께 출력해주어 튜닝이 용이하도록 지원합니다. 멀티 모니터를 이용하실 경우 한쪽 모니터에는 튜닝 결과만 계속 출력할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CM/images/release/201305_tunmode_2_ko.PNG&quot; width=&quot;710&quot; height=&quot;538&quot; /&gt;&lt;/p&gt;
&lt;p&gt;출력되는 정보는 실행한 SQL 비교, 텍스트/트리/그래프(선호하는 방식 선택 가능)를 이용해서 질의 실행 계획을 좌우 비교할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CM/images/release/201305_tunmode_3_ko.PNG&quot; width=&quot;710&quot; height=&quot;197&quot; /&gt;&lt;/p&gt;
&lt;p&gt;왼쪽창과 오른쪽 창으로 분리되어 있으며 체크한 곳으로 질의 실행시마다 정보가 갱신됩니다. &amp;nbsp;위 그림처럼 오른쪽을 체크해두면 매번 질의 실행시 오른쪽 창의 정보가 업데이트되어 원하는 두개의 상태를 지속적으로 비교해갈 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;멀티 질의 비교&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;416&quot; width=&quot;710&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CM/images/release/201305_8_ko.PNG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;HA 시스템의 서로 다른 DB나 데이터 정합 여부를 확인해야하는 질의를 실행할 때 일일이 직접 차이를 추적하지 않아도 색상으로 차이점을 시각적으로 보여주도록 개선하였습니다. 색상으로 비교를 하지 않으려면 &quot;비교 상태 숨기기&quot;를 클릭하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;질의 결과 필터 기능&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;252&quot; width=&quot;710&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CM/images/release/201305_6_ko.PNG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;질의를 실행한 후 질의 결과에서 특정 단어가 들어간 데이터만 보려면 질의를 수정해서 조건을 추가해야 했으나 질의 필터 기능을 이용하면 원하는 데이터를 즉시 하일라이팅 해줍니다. 특정 컬럼에 포함된 데이터만 찾을 수도 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;입력창 오른쪽에 화살표를 누르면 옵션창이 아래와 같이 출력됩니다. 만약 상세 검색을 원하신다면 특정 컬럼, 비교 방식을 설정해서 검색할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;344&quot; width=&quot;418&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CM/images/release/201305_7_ko.PNG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;SQL 실행 개선 (가져오기 마법사에 통합)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;SQL 파일을 이용 데이터를 입력/변경을 위해 지원하였던 SQL 실행 기능을 가져오기 마법사에 통합하면서 스키마/인덱스/데이터 SQL 파일을 구분해서 추가할 수 있도록 개선하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CM/images/release/201305_10_ko.PNG&quot; width=&quot;309&quot; height=&quot;408&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;가져오기 마법사에서 SQL 파일 실행하기를 선택합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CM/images/release/201305_11_ko.PNG&quot; width=&quot;710&quot; height=&quot;459&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스키마, 데이터, 인덱스 파일을 구분해서 입력하시면 스키마 &amp;gt; 데이터 &amp;gt; 인덱스 순으로 파일이 실행됩니다. 만약, HA 구성 장비의 경우에는 스키마에 인덱스 파일도 함께 추가해주시면 됩니다.&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CM/images/release/201305_12_ko.PNG&quot; width=&quot;710&quot; height=&quot;461&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;h1&gt;2013년 3월 릴리스&lt;/h1&gt;
&lt;h2&gt;&lt;br /&gt;1. 릴리스 버전 : CM-2013.03 / CQB-2013.03&lt;/h2&gt;
&lt;p&gt;- 상세 릴리스 노트:&amp;nbsp;&lt;a href=&quot;/wiki_tools/entry/cubrid-manager-release-note_kr&quot;&gt;http://www.cubrid.org/wiki_tools/entry/cubrid-manager-release-note_kr&lt;br /&gt;&lt;/a&gt;- 상세 릴리스 노트:&amp;nbsp;&lt;a href=&quot;/wiki_tools/entry/cubrid-query-browser-release-note_kr&quot;&gt;http://www.cubrid.org/wiki_tools/entry/cubrid-query-browser-release-note_kr&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;2. 다운로드&lt;/h2&gt;
&lt;p&gt;- 이번 버전부터 각 도구의 버전 규칙이 변경되었습니다.&amp;nbsp;&lt;br /&gt;- 각 도구의 릴리스 시기를 기준으로 &amp;lt;도구이름&amp;gt;-&amp;lt;년&amp;gt;-&amp;lt;빌드번호&amp;gt;를 포함합니다.&lt;br /&gt;- CUBRIDManager-2013.03 빌드0037:&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Manager/2013.03/&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Manager/2013.03/&lt;br /&gt;&lt;/a&gt;- CUBRIDQuery-2013.03 빌드0037:&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Query_Browser/2013.03/&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Query_Browser/2013.03/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;3. 주요개선사항&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;- 엔진 버전 CUBRID 8.2.2 ~ CUBRID 9.1 지원&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;- ERwin XML파일 가져오기/내보내기 기능 지원 : 스키마 추가/변경 작업 편의성 향상&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;- N개의 DB에서 데이터 비교/검증 기능: 복제 DB 구성 후 검증 편의성 향상&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;- 질의 실행 계획 그래픽 모드 지원: 실행 순서와 비용에 대한 이해 및 가독성 향상&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 대시보드의 확장: 네비게이션에서 오브젝트 노드(테이블/뷰/시리얼/자동화/트리거)를 더블클릭하면 통합뷰 출력&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;- 테이블 편집창 개선: 편집창 셀에서 즉시 편집 가능&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ERwin XML 가져오기 / 내보내기 지원&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;상단 고급기능 메뉴 &amp;gt; ERwin XML 파일로 스키마 내보내기, ERwin XML에서 스키마 가져오기를 지원합니다.&amp;nbsp;&lt;br /&gt;ERwin 프로그램에서 XML 파일은 File &amp;gt; Save As를 이용하여 저장할 수 있습니다. ERwin은 4.1 버전을 지원합니다.&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;279&quot; height=&quot;280&quot; alt=&quot;2013-03-15 09;12;38.PNG&quot; src=&quot;/files/attach/images/194378/598/612/2013-03-15%2009;12;38.PNG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;CUBRID 도구를 통해 스키마 변경 작업 -&amp;gt; ERwin XML로 스키마 내보내기를 이용하여 XML로 저장 -&amp;gt; ERwin 프로그램에서 CUBRID에서 추출한 스키마(xml) 열기를 수행할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;289&quot; alt=&quot;2013-03-18 10;40;00.PNG&quot; src=&quot;/files/attach/images/194378/598/612/2013-03-18%2010;40;00.PNG&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;lt; ERwin XML에서 스키마 가져오기&amp;gt; &amp;nbsp;XML로 저장 -&amp;gt; CUBRID 도구에서 ERwin XML파일로부터 스키마 가져오기 실행-&amp;gt; &amp;nbsp;현재 접속된 DB 스키마 VS ERwin XML 스키마를 비교 -&amp;gt; ALTER DDL문을 생성 -&amp;gt; DB 스키마 변경작업을 수행할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;412&quot; height=&quot;238&quot; alt=&quot;2013-03-18 10;31;49.PNG&quot; src=&quot;/files/attach/images/194378/598/612/2013-03-18%2010;31;49.PNG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;310&quot; alt=&quot;2013-03-18 10;32;21.PNG&quot; src=&quot;/files/attach/images/194378/598/612/2013-03-18%2010;32;21.PNG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;고급기능 &amp;gt; DB 데이터 비교 마법사&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;개발DB &amp;lt;-&amp;gt; 운영DB, HA 구성된 마스터DB &amp;lt;-&amp;gt;슬레이브 DB, 마이그레이션 작업 대상인 원본DB &amp;lt;-&amp;gt; 대상 DB 등&amp;nbsp;&lt;br /&gt;마이그레이션 또는 복제 후 2개 이상의 DB에서 데이터 정합성을 쉽게 파악할 수 있습니다. &amp;nbsp;&lt;br /&gt;Primary Key가 있는 테이블만 비교 대상이 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;412&quot; alt=&quot;02.png&quot; src=&quot;/files/attach/images/194378/598/612/02.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;질의 실행 계획을 그래픽 모드에서 출력&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;질의 실행 계획을 그래프로 출력하여 초보자도 쉽게 실행 계획 및 비용을 파악할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;333&quot; alt=&quot;03.png&quot; src=&quot;/files/attach/images/194378/598/612/03.png&quot; /&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;테이블 편집 UI 개선&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;테이블 편집시 셀 바로 편집이 가능하므로, 컬럼 추가/변경이 쉬워집니다.&amp;nbsp;&lt;br /&gt;또한, 데이터타입 선택시 오른쪽에 도움말이 출력됩니다.&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;414&quot; alt=&quot;01.png&quot; src=&quot;/files/attach/images/194378/598/612/01.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;대상 DB 하위에 N개의 SQL탭이 출력되도록 계층화&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;작업 DB가 N개, 열려있는 질의편집기가 N개인 경우 상단에 너무 많은 탭이 열려 복잡했던 단점을 개선하였습니다.&amp;nbsp;&lt;br /&gt;작업 DB마다 열리는 질의편집기 탭 1개, 그 하위에 N개의 SQL탭이 열리도록 계층화하여 혼동하지 않고 질의를 수행할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;137&quot; alt=&quot;04.png&quot; src=&quot;/files/attach/images/194378/598/612/04.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;오브젝트 대시보드&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;작년부터 꾸준하게 진행한 대시보드 기능 확장의 결과로,&amp;nbsp;&lt;br /&gt;이제 테이블, 뷰, 시리얼, 트리거, 작업 자동화 노드를 더블클릭하면 대시보드를 출력합니다.&amp;nbsp;&lt;br /&gt;대시보드는 해당 오브젝트의 통합뷰를 출력하며, 우클릭 &amp;gt; 메뉴를 통해 편집/추출 기능을 수행할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;307&quot; alt=&quot;05.png&quot; src=&quot;/files/attach/images/194378/598/612/05.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;309&quot; alt=&quot;06.png&quot; src=&quot;/files/attach/images/194378/598/612/06.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;다중 호스트 설정 편집기 (CM)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;복수개의 호스트 설정 (cubrid.conf, broker.conf)을 동시에 비교하면서 편집할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;214&quot; alt=&quot;2013-03-15 09;38;58.PNG&quot; src=&quot;/files/attach/images/194378/598/612/2013-03-15%2009;38;58.PNG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;인덱스 탭 추가&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;왼쪽 네비게이션 하단 빠른 스키마 보기에 인덱스만 별도로 확인할 수 있도록 탭이 추가되었습니다.&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;253&quot; height=&quot;162&quot; alt=&quot;08.png&quot; src=&quot;/files/attach/images/194378/598/612/08.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;찾기 / 바꾸기 개선&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;입력한 키워드 히스토리 기능과 구역 검색/치환, 정규식 지원 등 기능 개선이 되었습니다.&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;328&quot; height=&quot;421&quot; alt=&quot;2013-03-15 09;30;43.PNG&quot; src=&quot;/files/attach/images/194378/598/612/2013-03-15%2009;30;43.PNG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;빠른 질의 입력&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;질의 편집기에서 마우스 없이도 쉽게 질의를 입력할 수 있는 방법을 제공합니다.&amp;nbsp;&lt;br /&gt;CTRL + , 를 누르면 [빠른 질의 입력] 창이 뜨고 테이블명을 입력(자동 완성)한 후,&amp;nbsp;&lt;br /&gt;SELECT, INSERT, UPDATE 문을 바로 질의 편집기에 입력할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;339&quot; alt=&quot;09.png&quot; src=&quot;/files/attach/images/194378/598/612/09.png&quot; /&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;leftContainer&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;margin: 20px 0px 10px; color: #000000; text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; font-family: arial, verdana, sans-serif; font-size: 20px; font-style: normal; font-variant: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2;&quot;&gt;2013년 1월 SHARD 지원을 위한 임시 패치 릴리스&lt;span style=&quot;color: #7820b9;&quot;&gt;&lt;span style=&quot;color: #a800ff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 style=&quot;margin: 20px 0px 10px; color: #000000; text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; font-family: arial, verdana, sans-serif; font-size: 20px; font-style: normal; font-variant: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2;&quot;&gt;&lt;span style=&quot;color: #7820b9;&quot;&gt;&lt;span style=&quot;color: #a800ff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 1. 릴리스 버전 : CM-8.4.3.201212 p1 / CQB-8.4.3.201212 p1&lt;/h2&gt;
&lt;p style=&quot;font: 13px/25px arial, verdana, sans-serif; margin: 14px 0px; color: #474747; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2;&quot;&gt;- 상세 릴리스 노트:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;/wiki_tools/entry/cubrid-manager-release-note_kr&quot;&gt;http://www.cubrid.org/wiki_tools/entry/cubrid-manager-release-note_kr&lt;/a&gt;&lt;br /&gt;- 상세 릴리스 노트:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;/wiki_tools/entry/cubrid-query-browser-release-note_kr&quot;&gt;http://www.cubrid.org/wiki_tools/entry/cubrid-query-browser-release-note_kr&lt;/a&gt;&lt;/p&gt;
&lt;h3 style=&quot;margin: 20px 0px 10px; color: #000000; text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; padding-bottom: 2px; font-family: arial, verdana, sans-serif; font-size: 16px; font-style: normal; font-variant: normal; word-spacing: 0px; border-bottom-color: #dddddd; border-bottom-width: 1px; border-bottom-style: solid; white-space: normal; orphans: 2; widows: 2;&quot;&gt;2. 다운로드&lt;/h3&gt;
&lt;p style=&quot;font: 13px/25px arial, verdana, sans-serif; margin: 14px 0px; color: #474747; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2;&quot;&gt;- CUBRIDQuery-8.4.3.201212.3086:&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Query_Browser/8.4.3/&quot; target=&quot;_self&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Query_Browser/8.4.3/&lt;/a&gt;&lt;br /&gt;- CUBRIDManager-8.4.3.201212.3086:&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Manager/8.4.3/&quot; target=&quot;_self&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Manager/8.4.3/&lt;/a&gt;&lt;/p&gt;
&lt;h3 style=&quot;margin: 20px 0px 10px; color: #000000; text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; padding-bottom: 2px; font-family: arial, verdana, sans-serif; font-size: 16px; font-style: normal; font-variant: normal; word-spacing: 0px; border-bottom-color: #dddddd; border-bottom-width: 1px; border-bottom-style: solid; white-space: normal; orphans: 2; widows: 2;&quot;&gt;3. 주요개선사항&lt;/h3&gt;
&lt;p&gt;이번 버전은 CQB의 SHARD 기능 강화를 위한 패치외 CM의 멀티질의와 관련한 사소한 오류가 개선된 패치 버전 입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font: 13px/25px arial, verdana, sans-serif; margin: 14px 0px; color: #474747; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;SHARD 지원 강화 (CQB)&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;데이터베이스 접속창에 &quot;SHARD 브로커&quot;가 선택된 경우 SHARD 브로커의 기능을 사용할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194378/754/534/2013-01-22%2002;07;35.PNG&quot; alt=&quot;2013-01-22 02;07;35.PNG&quot; height=&quot;30&quot; width=&quot;470&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;SHARD 브로커가 사용 가능한 경우 데이터베이스 노드에서 원하는 기본 SHARD ID 또는 SHARD VAL을 변경할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194378/754/534/2013-01-22%2002;06;45.PNG&quot; alt=&quot;2013-01-22 02;06;45.PNG&quot; height=&quot;25&quot; width=&quot;367&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;데이터베이스에 설정한 기본 SHARD ID, VAL과 별도로 질의 편집기의 툴바 버튼을 이용하여 질의시 사용할 SHARD ID 또는 SHARD VAL을 지정하여 사용할 수 있습니다. 이렇게 지정한 SHARD 정보는 멀티 SQL 질의, 멀티 DB 질의시에서 자동으로 HINT가 추가되어 정상적으로 질의를 실행할 수 있도록 지원합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194378/754/534/2013-01-22%2002;06;55.PNG&quot; alt=&quot;2013-01-22 02;06;55.PNG&quot; height=&quot;305&quot; width=&quot;410&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;margin: 20px 0px 10px; color: #000000; text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; font-family: arial, verdana, sans-serif; font-size: 20px; font-style: normal; font-variant: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2;&quot;&gt;2012년 12월 릴리스&lt;span style=&quot;color: #7820b9;&quot;&gt;&lt;span style=&quot;color: #a800ff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 style=&quot;margin: 20px 0px 10px; color: #000000; text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; font-family: arial, verdana, sans-serif; font-size: 20px; font-style: normal; font-variant: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2;&quot;&gt;&lt;span style=&quot;color: #7820b9;&quot;&gt;&lt;span style=&quot;color: #a800ff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 1. 릴리스 버전 : CM-8.4.3.201212 / CQB-8.4.3.201212&lt;/h2&gt;
&lt;p style=&quot;font: 13px/25px arial, verdana, sans-serif; margin: 14px 0px; color: #474747; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2;&quot;&gt;- 상세 릴리스 노트:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;/wiki_tools/entry/cubrid-manager-release-note_kr&quot;&gt;http://www.cubrid.org/wiki_tools/entry/cubrid-manager-release-note_kr&lt;/a&gt;&lt;br /&gt;- 상세 릴리스 노트:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;/wiki_tools/entry/cubrid-query-browser-release-note_kr&quot;&gt;http://www.cubrid.org/wiki_tools/entry/cubrid-query-browser-release-note_kr&lt;/a&gt;&lt;/p&gt;
&lt;h3 style=&quot;margin: 20px 0px 10px; color: #000000; text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; padding-bottom: 2px; font-family: arial, verdana, sans-serif; font-size: 16px; font-style: normal; font-variant: normal; word-spacing: 0px; border-bottom-color: #dddddd; border-bottom-width: 1px; border-bottom-style: solid; white-space: normal; orphans: 2; widows: 2;&quot;&gt;2. 다운로드&lt;/h3&gt;
&lt;p style=&quot;font: 13px/25px arial, verdana, sans-serif; margin: 14px 0px; color: #474747; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2;&quot;&gt;- CUBRIDQuery-8.4.3.201212.3080:&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Query_Browser/8.4.3/&quot; target=&quot;_self&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Query_Browser/8.4.3/&lt;/a&gt;&lt;br /&gt;- CUBRIDManager-8.4.3.201212.3080:&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Manager/8.4.3/&quot; target=&quot;_self&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Manager/8.4.3/&lt;/a&gt;&lt;/p&gt;
&lt;h3 style=&quot;margin: 20px 0px 10px; color: #000000; text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; padding-bottom: 2px; font-family: arial, verdana, sans-serif; font-size: 16px; font-style: normal; font-variant: normal; word-spacing: 0px; border-bottom-color: #dddddd; border-bottom-width: 1px; border-bottom-style: solid; white-space: normal; orphans: 2; widows: 2;&quot;&gt;3. 주요개선사항&lt;/h3&gt;
&lt;p style=&quot;font: 13px/25px arial, verdana, sans-serif; margin: 14px 0px; color: #474747; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;HA 마법사 (CUBRID Manager Only)&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;HA를 쉽게 구성해주는 HA 마법사를 제공합니다. 처음 HA를 시작하려는 사용자에게 적합하며, 1개의 마스터 1개의 슬레이브 구성을 쉽게 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/2012-12-24%2015;58;57.PNG&quot; alt=&quot;2012-12-24 15;58;57.PNG&quot; title=&quot;2012-12-24 15;58;57.PNG&quot; class=&quot;iePngFix&quot; width=&quot;355&quot; height=&quot;131&quot; style=&quot;&quot; /&gt; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/wiki_tools/entry/cubrid-manager-manual-ha-wizard&quot; target=&quot;_blank&quot;&gt;&amp;lt;사용방법 상세보기&amp;gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;데이터베이스 스키마 비교&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;두 개 이상의 데이터베이스를 선택후 데이터베이스 스키마 비교 기능이 단순 diff 기능을 넘어 각 테이블별 컬럼, PK,  인덱스 등 상세 분석과 레코드 개수까지 동시에 비교할 수 있게 되었습니다. HA로 구성된 서버의 마스터와 슬레이브 노드를 비교하는  용도로도 안성맞춤 입니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/modules/editor/styles/default/files/attach/images/194378/370/534/schema_compare.png&quot; alt=&quot;schema_compare.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;테이블/컬럼 설명 기능&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;테이블/컬럼 설명 기능은 UI를 이용하여 테이블을 생성하거나 편집할 때, 테이블/컬럼의 설명을 등록하여 각 테이블과 컬럼의 용도를 UI에서 쉽게 확인하고 관리하기 위해 지원합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/2012-12-24%2016;38;02.PNG&quot; alt=&quot;2012-12-24 16;38;02.PNG&quot; title=&quot;2012-12-24 16;38;02.PNG&quot; class=&quot;iePngFix&quot; width=&quot;231&quot; height=&quot;273&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;단, 이 기능은 CUBRID에서 기본 지원되는 기능이 아니며, CUBRID Manager, CUBRID Query  Browser에서 자체 지원되는 기능이며 사용상 기능 한계가 있을 수 있습니다. 또한, 처음 사용시 설치를 해야 사용할 수 있는  기능이며, DBA 권한이 있을 경우만 생성 가능 합니다.&lt;br /&gt;&lt;br /&gt;DBA 사용자일 경우 아래와 같이 안내후  _cub_schema_comments을 자동 생성합니다. 네비게이션에서는 일반 유저들이 이 테이블을 UI에서 편집하지 못하도록  시스템 테이블 영역에 출력이 됩니다만 실제 시스템 테이블은 아닙니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/coldesc_1.png&quot; alt=&quot;coldesc_1.png&quot; title=&quot;coldesc_1.png&quot; class=&quot;iePngFix&quot; width=&quot;615&quot; height=&quot;141&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;DBA 권한이 없는 유저의 경우 아래와 같은 오류가 발생하게 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/coldesc_2.png&quot; alt=&quot;coldesc_2.png&quot; title=&quot;coldesc_2.png&quot; class=&quot;iePngFix&quot; width=&quot;383&quot; height=&quot;109&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;설치후 아래와 같이 설명 편집과 조회가 가능합니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/2012-12-24%2016;37;32.PNG&quot; alt=&quot;2012-12-24 16;37;32.PNG&quot; title=&quot;2012-12-24 16;37;32.PNG&quot; class=&quot;iePngFix&quot; width=&quot;438&quot; height=&quot;352&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;테이블 설명과 컬럼 설명을 확인 가능하며 컬럼 설명은 아래의 컬럼 편집&lt;span lang=&quot;EN-US&quot;&gt; UI&lt;/span&gt;에서 편집 가능합니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/2012-12-24%2016;39;07.PNG&quot; alt=&quot;2012-12-24 16;39;07.PNG&quot; title=&quot;2012-12-24 16;39;07.PNG&quot; class=&quot;iePngFix&quot; width=&quot;435&quot; height=&quot;327&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이렇게 등록한 메타 정보는 현재 제한적으로만 사용 가능하나 UI 도구내에서 계속 사용 범위를 넓혀갈 것입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;테이블 명세서 Excel 출력 기능&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;데이터베이스의 모든 테이블에 대해 테이블 명세서를 Excel로 출력하는 기능을 제공합니다. 테이블 목록과 각 테이블별 상세  스키마 정보를 표로 제공하며, 만약 테이블 컬럼/설명 기능을 이미 사용하고 있을 경우에는 기 입력된 설명과 함께 출력됩니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/export_excel.png&quot; alt=&quot;export_excel.png&quot; title=&quot;export_excel.png&quot; class=&quot;iePngFix&quot; width=&quot;761&quot; height=&quot;683&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;브로커 설정파일 일괄 편집 기능&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;서비스가 복잡해지고 데이터베이스 입출력이 많아지면 브로커 또한 목적에 맞게 분리하여 사용하게 됩니다. 그럴 경우 여러  브로커의 설정을 하나씩 설정하기 어려운데 특정 서버에 있는 모든 브로커 설정을 한 화면에서 비교하면서 편집하는 기능을 제공합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/broker_editor.png&quot; alt=&quot;broker_editor.png&quot; title=&quot;broker_editor.png&quot; class=&quot;iePngFix&quot; width=&quot;782&quot; height=&quot;350&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;데이터베이스 생성시 자동 시작 선택 옵션 추가 (CUBRID Manager Only)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;데이터베이스 자동 시작 옵션이 데이터베이스 생성시에 설정할 수 없어 불편하였는데 생성시 기본 설정 화면에 자동 시작 옵션을 추가하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/2012-12-24%2013;24;26.PNG&quot; alt=&quot;2012-12-24 13;24;26.PNG&quot; title=&quot;2012-12-24 13;24;26.PNG&quot; class=&quot;iePngFix&quot; width=&quot;390&quot; height=&quot;388&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;데이터베이스 접속 화면 개선 (CUBRID Query Browser Only)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;데이터베이스의 접속 주소를 먼저 입력하고 이후에 데이터베이스명이나 아이디, 비밀번호를 입력하는 대부분의 사용 유형에 따라 접속 정보 입력 양식을 변경하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/2012-12-24%2013;25;59.PNG&quot; alt=&quot;2012-12-24 13;25;59.PNG&quot; title=&quot;2012-12-24 13;25;59.PNG&quot; class=&quot;iePngFix&quot; width=&quot;541&quot; height=&quot;282&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;SHARD 브로커 연결 지원 (CUBRID Query Browser Only)&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;8.4.3부터 SHARD 기능이 지원되고 있으며, CUBRID Query Browser에서도 SHARD 브로커를 접속할 수 있도록 개선되었습니다.&lt;/p&gt;
&lt;p&gt;연결 정보 편집에 SHARD 브로커에 사용 선택을 하면 SHARD 브로커로 접속할 수 있게 됩니다. 기본 SHARD는  0인데, 기본 SHARD를 변경하는 방법은 연결 정보 편집에서 SHARD ID 버튼을 클릭하여 변경할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/shard1.png&quot; alt=&quot;shard1.png&quot; title=&quot;shard1.png&quot; class=&quot;iePngFix&quot; width=&quot;584&quot; height=&quot;241&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;또한, 로그인후 &amp;ldquo;데이터베이스 SHARD 변경&amp;rdquo;에서도 가능합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/2012-12-24%2013;27;40.PNG&quot; alt=&quot;2012-12-24 13;27;40.PNG&quot; title=&quot;2012-12-24 13;27;40.PNG&quot; class=&quot;iePngFix&quot; width=&quot;393&quot; height=&quot;73&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;또한, 질의 편집기에서 개별로 기본으로 사용할 SHARD를 지정할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/2012-12-24%2013;27;46.PNG&quot; alt=&quot;2012-12-24 13;27;46.PNG&quot; title=&quot;2012-12-24 13;27;46.PNG&quot; class=&quot;iePngFix&quot; width=&quot;235&quot; height=&quot;158&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;질의 편집기에서 SHARD 를 변경할 경우 왼쪽 네비게이션에서 끌어오기를 할 경우 SHARD 아이디가 현재 질의 편집기에서 변경한 아이디로 설정되어 질의가 생성될 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/370/534/2012-12-24%2013;27;52.PNG&quot; alt=&quot;2012-12-24 13;27;52.PNG&quot; title=&quot;2012-12-24 13;27;52.PNG&quot; class=&quot;iePngFix&quot; width=&quot;225&quot; height=&quot;180&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;2012년 10월 개발 테마 &lt;span style=&quot;color: #7820b9;&quot;&gt;&lt;span style=&quot;color: #a800ff;&quot;&gt;&quot;호스트 / 데이터베이스 대시보드&quot;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3&gt;1. 릴리스 버전 : CM-8.4.1.201210 / CQB-8.4.1.201210&lt;/h3&gt;
&lt;p&gt;- 상세 릴리스 노트: &lt;a href=&quot;/wiki_tools/entry/cubrid-manager-release-note_kr&quot;&gt;http://www.cubrid.org/wiki_tools/entry/cubrid-manager-release-note_kr&lt;/a&gt;&lt;br /&gt;- 상세 릴리스 노트: &lt;a href=&quot;/wiki_tools/entry/cubrid-query-browser-release-note_kr&quot;&gt;http://www.cubrid.org/wiki_tools/entry/cubrid-query-browser-release-note_kr&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;2. 다운로드&lt;/h3&gt;
&lt;p style=&quot;color: #474747; font-size: 13px; font-weight: normal;&quot;&gt;- CUBRIDQuery-8.4.1.201210.2360 :&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Query_Browser/8.4.1/&quot; target=&quot;_self&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Query_Browser/8.4.1/&lt;/a&gt;&lt;br /&gt;- CUBRIDManager-8.4.1.201210.2360 :&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Manager/8.4.1/&quot; target=&quot;_self&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Manager/8.4.1/&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;3. 주요개선사항&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;호스트, 데이터베이스 대시보드 (CUBRID MANAGER)&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;CUBRID  Manager는 이미 호스트 정보, 데이터베이스 정보를 제공하는 기능을 모두 갖추고 있으나 하나의 뷰로 보여주는 기능을 이번  개선부터 지원하게 됩니다. DBA가 필요한 기본적인 서버의 상태를 일목요연하게 보여주어 관리의 편의성을 더하였습니다. 특히 볼륨의  가용공간은 5% 이하가 되면 빨간색으로, 15% 이하가 되면 노란색으로 경고를 보여줍니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;호스트 대시보드&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/798/389/T201210_01.PNG&quot; alt=&quot;T201210_01.PNG&quot; title=&quot;T201210_01.PNG&quot; class=&quot;iePngFix&quot; width=&quot;747&quot; height=&quot;636&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;데이터베이스 대시보드&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/798/389/T201210_02.PNG&quot; alt=&quot;T201210_02.PNG&quot; title=&quot;T201210_02.PNG&quot; class=&quot;iePngFix&quot; width=&quot;747&quot; height=&quot;636&quot; style=&quot;&quot; /&gt; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;사용자 관리 (CUBRID QUERY BROWSER)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;CQB에서 사용자 관리를 하기 위해서는 DDL을 이용하여 관리를 할 수밖에 없었는데 이제는 UI 도구로 완벽하게 지원합니다. CUBRID Manager를 사용할 수 없는 환경에서도 이제는 사용자 관리를 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;질의 다중 실행 기능의 다중 SQL 단일 DB 실행&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;질 의 다중 실행 기능은 2개 이상의 데이터베이스에 SQL을 실행하여 하나의 뷰로 실행 결과를 조회하기 위한 기능 인데, 이제는  1개의 데이터베이스에서 여러개의 SQL을 실행하여 하나의 뷰로 실행 결과를 조회할 수 있도록 개선하였습니다. 조건이 약간씩 다른  동일한 SQL의 결과를 쉽게 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/798/389/2012-10-22%2015;44;51.PNG&quot; alt=&quot;2012-10-22 15;44;51.PNG&quot; title=&quot;2012-10-22 15;44;51.PNG&quot; class=&quot;iePngFix&quot; width=&quot;656&quot; height=&quot;457&quot; style=&quot;&quot; /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;컬럼/DDL 빠른 조회창&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;접 속창에서 테이블, 뷰를 선택하여 컬럼 정보를 조회하기가 쉽지 않았던 불편함을 보완하기 위해 테이블, 뷰를 선택할 때마다 하단의  컬럼정보 빠른 보기창에서 보여주도록 개선되었습니다. 컬럼을 선택하여 컬럼 목록 문자열(컬럼을 코머로 나열, ENTER로 구분하여  나열)을 생성하거나 SELECT, INSERT, UPDATE 구문을 쉽게 만드는 기능이 마우스 우클릭으로 지원하게 되었습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/798/389/T201210_03_1.PNG&quot; alt=&quot;T201210_03_1.PNG&quot; title=&quot;T201210_03_1.PNG&quot; class=&quot;iePngFix&quot; width=&quot;709&quot; height=&quot;438&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #3a32c3;&quot;&gt;질의 결과로 INSERT, UPDATE SQL 만들기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;질 의 결과에서 일부분을 수정해서 데이터를 다시 입력해야할 경우에 유용한 기능입니다. 원하는 레코드를 선택한 후 툴바 또는 마우스  우클릭으로 나오는 메뉴를 선택하면 클립보드에 SQL을 만들어 줍니다. 이 기능은 소량의 간편한 편집을 위해 지원하므로 최대  100개 레코드까지만 지원합니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/798/389/T2012_04.PNG&quot; alt=&quot;T2012_04.PNG&quot; title=&quot;T2012_04.PNG&quot; class=&quot;iePngFix&quot; width=&quot;417&quot; height=&quot;316&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;질의 편집창 질의 편집 편의성 개선&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;(1)  JOIN 질의를 작성하는 경우 귀찮은 것 중 하나는 모든 컬럼 앞에 테이블 별칭을 넣어줘야하는 것 입니다. 그래서, 수십개 되는  컬럼을 일일이 입력해왔으나 이제는 변경을 원하는 컬럼을 선택한 후 마우스 우클릭에 있는 &quot;컬럼명 앞 테이블 별칭 일괄 변경&quot;을  선택하여 원하는 별칭을 추가 또는 이미 있을 경우 교체할 수 있습니다. 단, 함수나 괄호 등으로 시작할 경우에는 아직 지원하지  않습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/798/389/2012-10-22%2014;09;15.PNG&quot; alt=&quot;2012-10-22 14;09;15.PNG&quot; title=&quot;2012-10-22 14;09;15.PNG&quot; class=&quot;iePngFix&quot; width=&quot;365&quot; height=&quot;311&quot; style=&quot;&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;(2) 질의 편집기의 각종 로그창의 크기가 마우스를 클릭하면 자동으로 확대되고,&lt;br /&gt;다른 곳으로 클릭하여 포커스를 잃으면 축소되어 마우스 드래그를 할 필요가 없도록 하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.cubrid.org/modules/editor/styles/default/files/attach/images/194378/798/389/2012-10-22%2014;22;49.PNG&quot; alt=&quot;2012-10-22 14;22;49.PNG&quot; title=&quot;2012-10-22 14;22;49.PNG&quot; class=&quot;iePngFix&quot; width=&quot;745&quot; height=&quot;309&quot; style=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;지원되는 단축키&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;664&quot;&gt;
&lt;colgroup&gt;&lt;col style=&quot;mso-width-source: userset; mso-width-alt: 2912; width: 68pt;&quot; width=&quot;91&quot;&gt;&lt;/col&gt; &lt;col style=&quot;mso-width-source: userset; mso-width-alt: 7424; width: 174pt;&quot; width=&quot;232&quot;&gt;&lt;/col&gt; &lt;col style=&quot;mso-width-source: userset; mso-width-alt: 576; width: 14pt;&quot; width=&quot;18&quot;&gt;&lt;/col&gt; &lt;col style=&quot;mso-width-source: userset; mso-width-alt: 2912; width: 68pt;&quot; width=&quot;91&quot;&gt;&lt;/col&gt; &lt;col style=&quot;mso-width-source: userset; mso-width-alt: 7424; width: 174pt;&quot; width=&quot;232&quot;&gt;&lt;/col&gt; &lt;/colgroup&gt; 
&lt;tbody&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td colspan=&quot;2&quot; class=&quot;xl65&quot; style=&quot;height: 16.5pt; width: 242pt;&quot; height=&quot;22&quot; width=&quot;323&quot;&gt;&lt;b&gt;기본   단축키&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14pt;&quot; width=&quot;18&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;xl65&quot; style=&quot;width: 242pt;&quot; width=&quot;323&quot;&gt;&lt;b&gt;질의 편집기에서 사용되는 단축키&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td class=&quot;xl64&quot; style=&quot;height: 16.5pt; border-top: none;&quot; height=&quot;22&quot;&gt;&lt;b&gt;단축키&lt;/b&gt;&lt;/td&gt;
&lt;td class=&quot;xl64&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;&lt;b&gt;기능&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td class=&quot;xl64&quot; style=&quot;border-top: none;&quot;&gt;&lt;b&gt;단축키&lt;/b&gt;&lt;/td&gt;
&lt;td class=&quot;xl64&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;&lt;b&gt;기능&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td class=&quot;xl63&quot; style=&quot;height: 16.5pt; border-top: none;&quot; height=&quot;22&quot;&gt;Ctrl+T&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;질의 편집기 열기&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;F5&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;질의 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td class=&quot;xl63&quot; style=&quot;height: 16.5pt; border-top: none;&quot; height=&quot;22&quot;&gt;Ctrl+W&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;질의 편집기 닫기&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;F6&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;질의 실행계획&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td class=&quot;xl63&quot; style=&quot;height: 16.5pt; border-top: none;&quot; height=&quot;22&quot;&gt;Ctrl+Shift+W&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;모든 질의 편집기 닫기&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;F7&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;질의 이력보기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td class=&quot;xl63&quot; style=&quot;height: 16.5pt; border-top: none;&quot; height=&quot;22&quot;&gt;F1&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;도움말 WIKI로 이동&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;F8&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;질의 다중실행 전환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;F11&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;질의 실행계획   그래픽&amp;lt;&amp;gt;텍스트 전환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+Shift+X&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;선택된 텍스트 대문자 변환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+Shift+Y&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;선택된 텍스트 소문자 변환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+Enter&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;현재 커서가 위치한 질의 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+Shift+F&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;선택된 또는 전체 질의 서식화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Tab&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;들여쓰기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Shift+Tab&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;내어쓰기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+/&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;주석 추가 &amp;lt;&amp;gt; 제거&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+Z&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;실행 취소 (UNDO)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+Y&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;다시 실행 (REDO)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+F&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;찾기/바꾸기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+C&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;복사&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+X&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;잘라내기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+V&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;붙여넣기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;
&lt;td style=&quot;height: 16.5pt;&quot; height=&quot;22&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none;&quot;&gt;Ctrl+G&lt;/td&gt;
&lt;td class=&quot;xl63&quot; style=&quot;border-top: none; border-left: none;&quot;&gt;줄 번호 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;leftContainer&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="CM"/>
            <category term="CQB"/>
            
   </entry>
   <entry>
      <title>CUBRID NHibernate Support</title>
      <id>http://www.cubrid.org/671883</id>
      <published>2013-06-05T01:56:50-07:00</published>
      <updated>2013-06-14T00:52:12-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/671883"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/671883#comment"/>
      <author>
         <name>ovidiuguta</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://nhforge.org/Default.aspx&quot;&gt;NHibernate&lt;/a&gt; is a .NET port of the well-known &lt;a href=&quot;http://www.hibernate.org/&quot;&gt;Hibernate&lt;/a&gt; Java framework.&lt;/p&gt;
&lt;p&gt;It is an open source project which implements persisting objects (an &lt;b&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;ORM&lt;/span&gt;&lt;/b&gt;) to and from an underlying relational database &amp;ndash; MySQL, PostgreSQL, SQL Server, Oracle etc. (The term &lt;i&gt;object/relational mapping (ORM)&lt;/i&gt; refers to the technique of mapping a data representation from an object model to a relational data model with a SQL-based schema).&lt;/p&gt;
&lt;h2&gt;Useful Links&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;Source code&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/NHibernate&quot;&gt;SVN Source&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;Tutorials&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[Using CUBRID and NHibernate] - An introduction web tutorial&lt;/li&gt;
&lt;li&gt;[CUBRID NHibernate Support project]&lt;/li&gt;
&lt;li&gt;[Using CUBRID with NHibernate - Beginner&apos;s Guide]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/using-nmg-nhibernate-mappings-generator-with-cubrid&quot;&gt;[Using NMG (NHibernate Mappings Generator) with CUBRID]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Using CUBRID with NHibernate &amp;ndash; Advanced tutorial (Part I)]&lt;/li&gt;
&lt;li&gt;[Using CUBRID with NHibernate &amp;ndash; Advanced tutorial (Part II)]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;/wiki_apis/entry/cubrid-nhibernate-support-project&quot;&gt;&lt;img src=&quot;/files/attach/images/194379/883/671/1.jpg&quot; alt=&quot;1.jpg&quot; width=&quot;180&quot; height=&quot;108&quot; /&gt;&lt;/a&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a href=&quot;/wiki_apis/entry/using-nmg-nhibernate-mappings-generator-with-cubrid&quot;&gt;&lt;img src=&quot;/files/attach/images/194379/883/671/2.jpg&quot; alt=&quot;2.jpg&quot; width=&quot;180&quot; height=&quot;108&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;/wiki_apis/entry/using-cubrid-and-nhibernate&quot;&gt;&lt;img src=&quot;/files/attach/images/194379/883/671/3.jpg&quot; alt=&quot;3.jpg&quot; width=&quot;180&quot; height=&quot;108&quot; /&gt;&lt;/a&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;/wiki_apis/entry/using-cubrid-with-nhibernate-beginners-guide&quot;&gt;&lt;img src=&quot;/files/attach/images/194379/883/671/4.jpg&quot; alt=&quot;4.jpg&quot; width=&quot;180&quot; height=&quot;108&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;Community&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nmg.codeplex.com/&quot;&gt;NHibernate Mapping Generator with CUBRID support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/?mid=questions&amp;amp;tag=NHibernate&quot; target=&quot;_self&quot;&gt;NHibernate specific Questions&amp;nbsp;and Answers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jira.cubrid.org/browse/APIS/component/11404&quot; target=&quot;_self&quot;&gt;JIRA Issue Tracker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Some of the most important &lt;b&gt;NHibernate&lt;/b&gt; features are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It uses a natural programming model - NHibernate supports natural OO idiom; inheritance, polymorphism, composition and the .NET collections framework, including generic collections.&lt;/li&gt;
&lt;li&gt;It uses .NET conventions and idioms&lt;/li&gt;
&lt;li&gt;It has support for fine-grained object models - a rich variety of mappings for collections and dependent objects&lt;/li&gt;
&lt;li&gt;It supports custom SQLs&lt;/li&gt;
&lt;li&gt;NHibernate not only takes care of the mapping from .NET classes to database tables (and from .NET data types to SQL data types), but also provides data query and retrieval facilities and can significantly reduce development time otherwise spent with manual data handling in SQL and ADO.NET.&lt;/li&gt;
&lt;li&gt;Its free/open source - NHibernate is licensed under the &lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;LGPL &lt;/span&gt;(Lesser GNU Public License)&lt;/li&gt;
&lt;li&gt;It has a very strong community and it is very well maintained:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img height=&quot;80&quot; width=&quot;628&quot; alt=&quot;contrib.png&quot; src=&quot;/files/attach/images/194379/883/671/contrib.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;&lt;i&gt;NHibernate&apos;s goal is to relieve the developer from 95 percent of common data persistence related programming tasks&lt;/i&gt;&amp;rdquo; (&lt;a href=&quot;http://nhforge.org/doc/nh/en/index.html&quot;&gt;http://nhforge.org/doc/nh/en/index.html&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The scope of the &lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;CUBRID NHibernate project&lt;/span&gt;&lt;/b&gt;, presented in this wiki page,&amp;nbsp;&lt;b&gt;is to add support in NHibernate for CUBRID.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;To achieve this goal, we have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added support in the NHibernate Core for CUBRID&lt;/li&gt;
&lt;li&gt;Updated the implementation of the CUBRID ADO.NET driver&lt;/li&gt;
&lt;li&gt;Created a series of tutorials to help you start fast with NHibernate in CUBRID&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Beside all these, we took a step further and we added CUBRID support to one of the best NHibernate automatic code generators -&amp;nbsp;&lt;a href=&quot;http://nmg.codeplex.com/&quot;&gt;NMG&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Not the least, as always for the API/drivers we have developed for CUBRID, we developed a rich suite of automated test cases, which can also provide you immediately with &lt;a href=&quot;http://svn.cubrid.org/cubridapis/adodotnet/branches/RB-9.1.0-p1/Code/Test/NHibernate/&quot;&gt;out-of-the-box code examples&lt;/a&gt; to start with.&lt;/p&gt;
&lt;p&gt;If you want to find out how we implemented CUBRID support, you can read the &lt;a href=&quot;/wiki_apis/entry/cubrid-nhibernate-support-project&quot;&gt;technical implementation documentation&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="nhibernate"/>
            
   </entry>
   <entry>
      <title>Error -493 when saving</title>
      <id>http://www.cubrid.org/424221</id>
      <published>2012-09-07T07:24:54-07:00</published>
      <updated>2013-06-13T21:23:22-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/424221"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/424221#comment"/>
      <author>
         <name>nsawers</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;


We are using Samsung HOTELTV and when we save a change to a page, we&apos;re getting the following error - anyone any suggestions?&lt;/p&gt;

&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;A Database Error Occurred
Error Number: -493
Syntax: syntax error, unexpected &apos;,&apos; 
INSERT INTO sds_framecontents (men_idx, men_key, lay_idx, fra_idx, men_lang, regdate, editdate) 
VALUES (, 104, 1, , &apos;ENG&apos;, 1347031405, 1347031405)&lt;/pre&gt;&lt;/div&gt;</content>
                  <category term="Error Code"/>
            
   </entry>
   <entry>
      <title>Input values in column type SEQUENCE using the DBD::cubrid Perl module</title>
      <id>http://www.cubrid.org/677557</id>
      <published>2013-06-13T04:48:16-07:00</published>
      <updated>2013-06-13T05:10:01-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/677557"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/677557#comment"/>
      <author>
         <name>stefans</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;I was trying to insert a value into a table column within a Perl script and using the DBD::cubrid module (v9.1.0.0001, server v9.1.0) with type SEQUENCE and it failed with:&lt;/p&gt;
&lt;p&gt;&quot;CUBRID DBMS Error : (-494) Semantic: Cannot coerce host var to type sequence.&amp;nbsp; at ... line ...&quot;&lt;/p&gt;
&lt;p&gt;This was my first attempt and the script was using parameters. My workaround for the moment is to NOT use parameters, like in the second attempt.&lt;/p&gt;
&lt;p&gt;#!/bin/env perl&lt;br /&gt;#&lt;br /&gt;# CREATE TABLE test_seq (&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tags&amp;nbsp;&amp;nbsp; SEQUENCE (VARCHAR(512))&lt;br /&gt;# );&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;use DBI;&lt;br /&gt;&lt;br /&gt;my $dbname = &apos;test_sequence&apos;;&lt;br /&gt;my $host&amp;nbsp;&amp;nbsp; = &apos;localhost&apos;;&lt;br /&gt;my $port&amp;nbsp;&amp;nbsp; = &apos;33000&apos;;&lt;br /&gt;my $user&amp;nbsp;&amp;nbsp; = &apos;user&apos;;&lt;br /&gt;my $pass&amp;nbsp;&amp;nbsp; = &apos;pass&apos;,&lt;br /&gt;&lt;br /&gt;my $dsn = qq{dbi:cubrid:database=$dbname;host=$host;port=$port};&lt;br /&gt;my $dbh = DBI-&amp;gt;connect(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $dsn, $user, $pass,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; AutoCommit =&amp;gt; 1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RaiseError =&amp;gt; 1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PrintError =&amp;gt; 1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;) or die $DBI::errstr;&lt;br /&gt;&lt;br /&gt;my $tag = q({&apos;tag1&apos;,&apos;tag2&apos;}); # also tried &quot;{&apos;tag1&apos;}&quot; and &apos;{&quot;tag1&quot;}&apos; ...&lt;br /&gt;&lt;br /&gt;$dbh-&amp;gt;do( qq{ INSERT INTO test_seq ( tags ) VALUES (?) }, undef, $tag )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or die $DBI::errstr;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # CUBRID DBMS Error : (-494)&lt;br /&gt;&lt;br /&gt;$dbh-&amp;gt;do( qq{ INSERT INTO test_seq ( tags ) VALUES ($tag) } )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or die $DBI::errstr;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # This is OK&lt;/p&gt;
&lt;p&gt;My question is: have I done something wrong or this feature is not yet implemented for type SEQUENCE?&lt;/p&gt;
&lt;p&gt;P.S.: I think a Perl tag sould be available.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="driver"/>
            
   </entry>
   <entry>
      <title>CUBRID NHibernate Support project</title>
      <id>http://www.cubrid.org/672771</id>
      <published>2013-06-06T04:26:50-07:00</published>
      <updated>2013-06-13T04:29:47-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/672771"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/672771#comment"/>
      <author>
         <name>ovidiuguta</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a name=&quot;CUBRID_Data_types_testing&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;table summary=&quot;Contents&quot; class=&quot;toc&quot; id=&quot;toc&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div style=&quot;text-align: left;&quot; id=&quot;toctitle&quot;&gt;
&lt;h2&gt;Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul class=&quot;wiki_contents&quot;&gt;
&lt;li class=&quot;toclevel-1&quot;&gt; &lt;a class=&quot;wiki_link&quot; href=&quot;#CUBRID_Data_types_testing&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;CUBRID Data types testing&lt;/span&gt;&lt;/a&gt; 
&lt;ul class=&quot;wiki_content&quot;&gt;
&lt;li class=&quot;toclevel-2&quot;&gt; &lt;a class=&quot;wiki_link&quot; href=&quot;#Standard_data_types&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;1.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Standard data types&lt;/span&gt;&lt;/a&gt; 
&lt;ul class=&quot;wiki_content&quot;&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a class=&quot;wiki_link&quot; href=&quot;#Overview&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;1.1.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-3&quot;&gt;&lt;a class=&quot;wiki_link&quot; href=&quot;#Setup&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;1.1.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Setup&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a class=&quot;wiki_link&quot; href=&quot;#Test_cases_developed&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;1.1.3&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Test cases developed&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a class=&quot;wiki_link&quot; href=&quot;#Results&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;1.1.4&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Results&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 class=&quot;wiki_link&quot; href=&quot;#Special_CUBRID_data_types&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;1.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Special CUBRID data types&lt;/span&gt;&lt;/a&gt; 
&lt;ul class=&quot;wiki_content&quot;&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a class=&quot;wiki_link&quot; href=&quot;#BLOB_CLOB&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;1.2.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;BLOB/CLOB&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a class=&quot;wiki_link&quot; href=&quot;#SET_MULTISET_SEQUENCE&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;1.2.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;SET, MULTISET, SEQUENCE&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 class=&quot;wiki_link&quot; href=&quot;#Relationships_testing&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Relationships testing&lt;/span&gt;&lt;/a&gt; 
&lt;ul class=&quot;wiki_content&quot;&gt;
&lt;li class=&quot;toclevel-2&quot;&gt; &lt;a class=&quot;wiki_link&quot; href=&quot;#1_n_relationship_tests&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;2.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;1:N relationship tests&lt;/span&gt;&lt;/a&gt; 
&lt;ul class=&quot;wiki_content&quot;&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a class=&quot;wiki_link&quot; href=&quot;#1_n_Test_results&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;2.1.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Test results&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 class=&quot;wiki_link&quot; href=&quot;#m_n_relationship_tests&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;2.2&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;M:N relationship tests&lt;/span&gt;&lt;/a&gt; 
&lt;ul class=&quot;wiki_content&quot;&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a class=&quot;wiki_link&quot; href=&quot;#m_n_Test_results&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;2.2.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Test results&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 class=&quot;wiki_link&quot; href=&quot;#1_1_relationship_test&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;2.3&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;1:1 relationship test&lt;/span&gt;&lt;/a&gt; 
&lt;ul class=&quot;wiki_content&quot;&gt;
&lt;li class=&quot;toclevel-3&quot;&gt;&lt;a class=&quot;wiki_link&quot; href=&quot;#1_1_Test_results&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;2.3.1&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;Test results&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 class=&quot;wiki_link&quot; href=&quot;#References&quot;&gt; &lt;span class=&quot;tocnumber&quot;&gt;3&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;toctext&quot;&gt;References&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;Standard_data_types&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;CUBRID Data types testing&lt;/h1&gt;
&lt;h2&gt;Standard data types&lt;/h2&gt;
&lt;p&gt;&lt;a name=&quot;Overview&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Overview&lt;/h3&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;For testing of the &lt;a href=&quot;http://www.dummies.com/how-to/content/sql-data-types0.html&quot;&gt;&lt;b&gt;standard data types&lt;/b&gt;&lt;/a&gt; support in &lt;a href=&quot;http://nhforge.org/&quot;&gt;&lt;b&gt;NHibernate&lt;/b&gt;&lt;/a&gt; with CUBRID we implemented a &lt;a href=&quot;http://svn.cubrid.org/cubridapis/adodotnet/branches/RB-9.1.0-p1/Code/Test/NHibernate/&quot;&gt;&lt;b&gt;suite of test cases&lt;/b&gt;&lt;/a&gt; that perform the basic SQL operations (Create, Read, Update and Delete - &lt;a href=&quot;http://en.wikipedia.org/wiki/Create,_read,_update_and_delete&quot;&gt;&lt;b&gt;CRUD&lt;/b&gt;&lt;/a&gt;):&amp;nbsp;&lt;/p&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center;&quot;&gt;&lt;img width=&quot;587&quot; height=&quot;421&quot; src=&quot;/files/attach/images/194379/771/672/svn.png&quot; alt=&quot;svn.png&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;A generic table was created with columns of all the standard SQL data types available in CUBRID:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;create table TestDataTypes (
c_integer INTEGER NOT NULL AUTO_INCREMENT,
c_smallint SMALLINT,
c_bigint BIGINT,
c_numeric NUMERIC(10,2),
c_float FLOAT,
c_decimal DECIMAL(19,5),
c_double DOUBLE,
c_char CHAR(1),
c_varchar STRING,
c_time TIME,
c_date DATE,
c_timestamp TIMESTAMP,
c_datetime DATETIME,
c_monetary MONETARY,
c_string STRING,
c_bit BIT(1),
c_varbit BIT VARYING(1),
primary key (c_integer))&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center;&quot;&gt;&lt;i&gt;Note:   All test cases were developed in C#, using MS Visual Studio&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;i&gt;&lt;img width=&quot;598&quot; height=&quot;275&quot; src=&quot;/files/attach/images/194379/771/672/StandardDataTypes1.jpg&quot; alt=&quot;StandardDataTypes1.jpg&quot; /&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Setup&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Setup&lt;/h3&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;To map NHibernate objects to this table the following files where created:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mappings&amp;#92;TestDataTypesStandard.cs: the mapping class for the table&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;TestDataTypesStandard.hbm.xml: the xml mapping file for the table&lt;/li&gt;
&lt;li&gt;TestDataTypesStandard.cs: the implementation of the data types test cases&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img width=&quot;604&quot; height=&quot;241&quot; src=&quot;/files/attach/images/194379/771/672/StandardDataTypes2.jpg&quot; alt=&quot;StandardDataTypes2.jpg&quot; style=&quot;text-align: center; display: block;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Test_cases_developed&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Test cases&lt;/h3&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The test cases where developed to test all the CRUD operations on all the standard data types. Each test case performs one type of operation on all the above standard data types. For every test case, we create the database table above, we perform the tested operation and we test if the operation was performed correctly.&lt;/p&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableLightShadingAccent3&quot; style=&quot;border-collapse: collapse; border: none; mso-border-top-alt: solid #A5A5A5 1.0pt; mso-border-top-themecolor: accent3; mso-border-bottom-alt: solid #A5A5A5 1.0pt; mso-border-bottom-themecolor: accent3; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;253&quot; valign=&quot;top&quot; style=&quot;width: 189.9pt; border-top: solid #A5A5A5 1.0pt; mso-border-top-themecolor: accent3; border-left: none; border-bottom: solid #A5A5A5 1.0pt; mso-border-bottom-themecolor: accent3; border-right: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191;&quot;&gt;Test case Name&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191; mso-bidi-font-weight: bold;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;363&quot; valign=&quot;top&quot; style=&quot;width: 272.25pt; border-top: solid #A5A5A5 1.0pt; mso-border-top-themecolor: accent3; border-left: none; border-bottom: solid #A5A5A5 1.0pt; mso-border-bottom-themecolor: accent3; border-right: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191;&quot;&gt;Purpose&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191; mso-bidi-font-weight: bold;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;253&quot; valign=&quot;top&quot; style=&quot;width: 189.9pt; border: none; background: #E8E8E8; mso-background-themecolor: accent3; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191;&quot;&gt;Test_DataTypesStandard_Insert&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;363&quot; valign=&quot;top&quot; style=&quot;width: 272.25pt; border: none; background: #E8E8E8; mso-background-themecolor: accent3; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191;&quot;&gt;Test data insertion of all the   standard data types&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;253&quot; valign=&quot;top&quot; style=&quot;width: 189.9pt; border: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #7b7b7b; background-position: initial initial; background-repeat: initial initial;&quot;&gt;Test_DataTypesStandard_Select&lt;/span&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;363&quot; valign=&quot;top&quot; style=&quot;width: 272.25pt; border: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191;&quot;&gt;Test retrieving data of all the standard data types&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;253&quot; valign=&quot;top&quot; style=&quot;width: 189.9pt; border: none; background: #E8E8E8; mso-background-themecolor: accent3; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191;&quot;&gt;Test_DataTypesStandard_Update&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;363&quot; valign=&quot;top&quot; style=&quot;width: 272.25pt; border: none; background: #E8E8E8; mso-background-themecolor: accent3; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191;&quot;&gt;Test updating data of all the   standard data types&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;253&quot; valign=&quot;top&quot; style=&quot;width: 189.9pt; border: none; border-bottom: solid #A5A5A5 1.0pt; mso-border-bottom-themecolor: accent3; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #7b7b7b; background-position: initial initial; background-repeat: initial initial;&quot;&gt;Test_DataTypesStandard_Delete&lt;/span&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;363&quot; valign=&quot;top&quot; style=&quot;width: 272.25pt; border: none; border-bottom: solid #A5A5A5 1.0pt; mso-border-bottom-themecolor: accent3; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #7b7b7b; mso-themecolor: accent3; mso-themeshade: 191;&quot;&gt;Test deleting records from a table with columns of all   the standard data types&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Results&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Results&lt;/h3&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;The results of the test   cases show that all the basic SQL operations can be performed on all the   standard SQL data types supported by CUBRID.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;The following table depicts the results of the testing performed:&amp;nbsp;&lt;/p&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;PlainTable1&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;CUBRID Data type&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Test type&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;NHibernate compatibility   status&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Notes&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;INTEGER&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the   ADO.NET driver or NHibernate required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;SMALLINT&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the ADO.NET driver or NHibernate   required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;BIGINT&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the   ADO.NET driver or NHibernate required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;NUMERIC&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the ADO.NET driver or NHibernate   required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;FLOAT&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the   ADO.NET driver or NHibernate required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;DECIMAL&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the ADO.NET driver or NHibernate   required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;DOUBLE&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the   ADO.NET driver or NHibernate required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;CHAR&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the ADO.NET driver or NHibernate   required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;VARCHAR&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the   ADO.NET driver or NHibernate required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;TIME&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the ADO.NET driver or NHibernate   required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;DATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the   ADO.NET driver or NHibernate required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;TIMESTAMP&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the ADO.NET driver or NHibernate   required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;DATETIME&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the   ADO.NET driver or NHibernate required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;MONETARY&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the ADO.NET driver or NHibernate   required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;STRING&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the   ADO.NET driver or NHibernate required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;BIT&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the ADO.NET driver or NHibernate   required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;88&quot; valign=&quot;top&quot; style=&quot;width: 66.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;BIT VARYING&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;101&quot; valign=&quot;top&quot; style=&quot;width: 75.85pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;C,R,U,D&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;120&quot; valign=&quot;top&quot; style=&quot;width: 89.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;329&quot; valign=&quot;top&quot; style=&quot;width: 246.8pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;No modifications to the   ADO.NET driver or NHibernate required&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;img width=&quot;604&quot; height=&quot;306&quot; src=&quot;/files/attach/images/194379/771/672/StandardDataTypesTestCases.jpg&quot; alt=&quot;StandardDataTypesTestCases.jpg&quot; /&gt;&amp;nbsp;&lt;span style=&quot;color: #2e74b5; font-size: 13pt; line-height: 107%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Special_CUBRID_data_types&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Special CUBRID data types&lt;/h2&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;BLOB_CLOB&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;BLOB/CLOB&lt;/h3&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The purpose of testing the support for CUBRID BLOB and CLOB data types was to find out if the basic CRUD operations (INSERT, SELECT, UPDATE, DELETE) can be performed from NHibernate on a BLOB or CLOB column in a CUBRID table and what are the code adjustments required to support this in the best way.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;For this purpose two tables where created in the &lt;i&gt;demodb&lt;/i&gt; CUBRID database: one with a column of type BLOB and one with a column of type CLOB.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The files used in the tests are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TestCUBRIDBLOBType.cs: the mapping class for the table with a BLOB column&lt;/li&gt;
&lt;li&gt;TestCUBRIDCLOBType.cs: the mapping class for the table with a CLOB column&lt;/li&gt;
&lt;li&gt;TestCUBRIDBLOBType.hbm.xml: the xml mapping file for the table with a BLOB column&lt;/li&gt;
&lt;li&gt;TestCUBRIDCLOBType.hbm.xml: the xml mapping file for the table with a CLOB column&lt;/li&gt;
&lt;li&gt;TestDataTypesCUBRID.cs: the implementation of the test cases;&lt;/li&gt;
&lt;/ul&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; 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; style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Preliminary   tests results showed that these custom CUBRID types are not supported by   NHibernate out of the box.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;&lt;/span&gt;The CUBRID BLOB and CLOB   types are custom types and are implemented as custom classes in the ADO.NET   driver so they are not recognized by NHibernate.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Additional_modifications_to_the_NHibernate_Mapping_Generator_Core&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Additional modifications to the ADO.NET driver and NHibernate Core&lt;/h4&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The solution to this problem was to implement an   adapter for the CUBRID BLOB and CLOB types in the &lt;a href=&quot;https://github.com/nhibernate/nhibernate-core&quot;&gt;NHibernate Core&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;To do that, two classes (&lt;i&gt;CUBRIDBLOBType.cs&lt;/i&gt;and &lt;i&gt;CUBRIDCLOBType.cs&lt;/i&gt;) that implement the &lt;b&gt;PrimitiveType&lt;/b&gt; interface where created in &lt;b&gt;NHibernate.Type&lt;/b&gt; namespace. These classes are responsible for transferring a CUBRID BLOB or CLOB object from the ADO.NET driver into NHibernate and map this object to a property of the corresponding mapping class.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;In order to implement the &lt;b&gt;PrimitiveType&lt;/b&gt; interface, we need to implement a number of methods and we will see how to implement the most important ones.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;First of all let&apos;s see the constructor method:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;public CUBRIDBLOBType() : base(SqlTypeFactory.GetSqlType(DbType.Binary, 0, 0))
{
}

public CUBRIDCLOBType() : base(SqlTypeFactory.GetSqlType(DbType.AnsiString, 0, 0))
{
}&lt;/pre&gt;
&lt;p&gt;The constructor method inherits the base class constructor and passes as parameter the &lt;b&gt;SQLType&lt;/b&gt; to which the ADO.NET driver maps BLOB and CLOB objects. In our case, the ADO.NET driver maps a BLOB object to &lt;b&gt;DbType.Binary&lt;/b&gt; and a CLOB object to &lt;b&gt;DbType.AnsiString&lt;/b&gt;.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;Another important component of the &lt;b&gt;PrimitiveType&lt;/b&gt; interface we need to implement is the &lt;b&gt;Name&lt;/b&gt; property. This tells NHibernate the name that the user will use in the xml mapping file when using CUBRIDBLOB or CLOB data types:&lt;a name=&quot;_GoBack&quot;&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;public override string Name
{
    get { return &quot;CUBRIDBlobType&quot;; }
}

public override string Name
{
    get { return &quot;CUBRIDClobType&quot;; }
}&lt;/pre&gt;
&lt;p&gt;Now comes the most important methods that we need to implement; the &lt;b&gt;Get&lt;/b&gt; and &lt;b&gt;Set&lt;/b&gt; methods form the &lt;b&gt;PrimitiveType&lt;/b&gt; interface. Because CUBRID BLOB and CUBRID CLOB objects are very similar these methods are implemented the same for both &lt;i&gt;CUBRIDBLOB&lt;/i&gt; and &lt;i&gt;CUBRIDCLOB&lt;/i&gt; classes.&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;public override object Get(IDataReader rs, int index)
{
    return rs[index];
}

public override object Get(IDataReader rs, string name)
{
    return rs[name];
}

/// &amp;lt;summary&amp;gt;
///Sets a &amp;lt;see cref=&quot;System.Data.IDataParameter&quot; /&amp;gt; parameter with the value of the BLOB object
/// &amp;lt;/summary&amp;gt;
/// &amp;lt;param name=&quot;st&quot;&amp;gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&quot;value&quot;&amp;gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&quot;index&quot;&amp;gt;&amp;lt;/param&amp;gt;

public override void Set(IDbCommand st, object value, int index)
{
    if (value == null)
    {
        ((IDataParameter)st.Parameters[index]).Value = DBNull.Value;
    }
    else
    {
        ((IDataParameter)st.Parameters[index]).Value = value;
    }
}&lt;/pre&gt;
&lt;p&gt;The &lt;b&gt;Get&lt;/b&gt; method receives as parameters a &lt;b&gt;DataReader&lt;/b&gt; object from the ADO.NET driver and the index of the column that is read or the name of the column that is read. The method&apos;s purpose is to pass the &lt;i&gt;CUBRIDBLOB&lt;/i&gt; or &lt;i&gt;CUBRIDCLOB&lt;/i&gt; object from the driver into NHibernate. The &lt;b&gt;Set&lt;/b&gt; method is null-safe. It receives a &lt;b&gt;DbCommand&lt;/b&gt; from the ADO.NET driver, the value to be passed to the driver and the index of the column that is written. The purpose of the method is to set the value of the command parameter corresponding to the column that is being written. If the value is null, we write a DBNull value to the parameter.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;After implementing these classes, the new types need to be registered in the &lt;b&gt;TypeFactory&lt;/b&gt; class:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;RegisterType(NHibernateUtil.CUBRIDBLOB, new[] { &quot;CUBRIDBLOB&quot; });
RegisterType(NHibernateUtil.CUBRIDCLOB, new[] { &quot;CUBRIDCLOB&quot; });&lt;/pre&gt;
&lt;p&gt;The last modification needed is to tell NHibernate how to create an internal object of the new type. We do that in the &lt;b&gt;NHibernateUtil&lt;/b&gt; class:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;///&amp;lt;summary&amp;gt;
/// NHibernate CUBRIDBLOB type
///&amp;lt;/summary&amp;gt;
public static readonly NullableType CUBRIDBLOB = new CUBRIDBLOBType();

///&amp;lt;summary&amp;gt;
/// NHibernate CUBRIDCLOB type
///&amp;lt;/summary&amp;gt;
public static readonly NullableType CUBRIDCLOB = new CUBRIDCLOBType();&lt;/pre&gt;
&lt;p&gt;After these modifications, we can map a NHibernate object property to a CUBRID BLOB or CLOB column. The xml mapping looks like this:&amp;nbsp;&lt;/p&gt;
&lt;p align=&quot;left&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: left;&quot;&gt;&lt;img width=&quot;449&quot; height=&quot;225&quot; src=&quot;/files/attach/images/194379/771/672/SpecialDataTypesMapping.jpg&quot; alt=&quot;SpecialDataTypesMapping.jpg&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Test results&lt;/h4&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;After performing these modifications the test results show that all the basic operations can be performed on CUBRID BLOB and CLOB columns:&lt;/p&gt;
&lt;table width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;PlainTable1&quot; style=&quot;width: 100.0%; border-collapse: collapse; border: none; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Operation/Type&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;BLOB&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;CLOB&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Insert&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Select&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Update&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Delete&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;33%&quot; valign=&quot;top&quot; style=&quot;width: 33.34%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;SET_MULTISET_SEQUENCE&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;SET, MULTISET, SEQUENCE&lt;/h3&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The purpose of testing support for CUBRID Collection data types (&lt;i&gt;Set/Multiset/Sequence&lt;/i&gt;) is to see if the CRUD operations (INSERT, SELECT, UPDATE, DELETE) can be performed from NHibernate on a Set, Multiset or Sequence column in a CUBRID table. For this purpose a table was created in the &lt;i&gt;demodb&lt;/i&gt; CUBRID database with three columns: one of type Set, one of type Multiset and one of type Sequence.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;The files used in the tests are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TestCUBRIDCollectionType.cs: the mapping class for the table with a CUBRID Set, Multiset and Sequence columns&lt;/li&gt;
&lt;li&gt;TestCUBRIDCollectionType.hbm.xml:the xml mapping file for the table with a CUBRID Set, Multiset and Sequence columns&lt;/li&gt;
&lt;li&gt;TestDataTypesCUBRID.cs: the implementation of the test cases;&lt;/li&gt;
&lt;/ul&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; 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; style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Preliminary   tests results showed that these custom CUBRID types are not supported by   NHibernate&lt;/span&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;The CUBRID Set, Multiset and   Sequence types are custom types and are handled in a special way by the   CUBRID ADO.Net Driver.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;NHibernate_Mappings_Generator&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Additional modifications to the ADO.NET driver and NHibernate Core&lt;/h4&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;The solution to this problem   was to implement an adapter class for these types in the NHibernate Core.&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;The approach is very similar to the one taken for the CLOB/BLOB data types!&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;We will not go into many details &amp;ndash; please take a look at the previous CLOB/BLOB section to understand the approach.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;So we will list in the next section only the key steps&lt;/b&gt;, starting with the new class creation:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;public CUBRIDCollectionType() : base(SqlTypeFactory.GetSqlType(DbType.VarNumeric, 0, 0))
{
}&lt;/pre&gt;
&lt;p&gt;The constructor method inherits the base class constructor and passes as parameter the SQL type to which the ADO.NET driver maps SET, MULTISET and SEQUENCE objects. In our case, the ADO.NET driver maps these types of objects to &lt;b&gt;DbType.VarNumeric&lt;/b&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;Next, we added the &lt;i&gt;Name&lt;/i&gt; property:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;public override string Name
{
    get { return &quot;CUBRIDCollection&quot;; }
}&lt;/pre&gt;
&lt;p&gt;Next, we implemented the &lt;b&gt;Get&lt;/b&gt; and &lt;b&gt;Set&lt;/b&gt; methods from the &lt;b&gt;PrimitiveType&lt;/b&gt; interface:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;public override object Get(IDataReader rs, int index)
{
    return rs[index];
}

public override object Get(IDataReader rs, string name)
{
    return rs[name];
}

/// &amp;lt;summary&amp;gt;
/// Sets a &amp;lt;see cref=&quot;System.Data.IDataParameter&quot; /&amp;gt; parameter with the value of the CUBRIDCollection object
/// &amp;lt;/summary&amp;gt;
/// &amp;lt;param name=&quot;st&quot;&amp;gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&quot;value&quot;&amp;gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&quot;index&quot;&amp;gt;&amp;lt;/param&amp;gt;

public override void Set(IDbCommand st, object value, int index)
{
    if (value == null)
    {
        ((IDataParameter)st.Parameters[index]).Value = DBNull.Value;
    }
    else
    {
        ((IDataParameter)st.Parameters[index]).Value = value;
    }
}&lt;/pre&gt;
&lt;p&gt;After implementing all these above, the new types need to be registered in the &lt;b&gt;TypeFactory&lt;/b&gt; class:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;RegisterType(NHibernateUtil.CUBRIDCollections, new[] { &quot;CUBRIDCollection&quot; });&lt;/pre&gt;
&lt;p&gt;The last modification needed was to tell NHibernate how to create an internal object of the new type. We do that in the &lt;b&gt;NHibernateUtil&lt;/b&gt; class:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;///&amp;lt;summary&amp;gt;
/// NHibernate CUBRIDCollection type
///&amp;lt;/summary&amp;gt;
public static readonly NullableType CUBRIDCollection = new CUBRIDCollectionType();&lt;/pre&gt;
&lt;p&gt;After these modifications, we can map a NHibernate object property to a CUBRID SET, MULTISET and SEQUENCE column.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The xml mapping looks like this:&amp;nbsp;&lt;/p&gt;
&lt;p align=&quot;left&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: left;&quot;&gt;&lt;img width=&quot;563&quot; height=&quot;333&quot; src=&quot;/files/attach/images/194379/771/672/SpecialDataTypesMapping2.jpg&quot; alt=&quot;SpecialDataTypesMapping2.jpg&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;additional_test_results&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Test results&lt;/h4&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;After performing these modifications the test results show that all the basic operations can be performed on CUBRID SET, MULTISET and SEQUENCE columns:&amp;nbsp;&lt;/p&gt;
&lt;table width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;PlainTable1&quot; style=&quot;width: 100.0%; border-collapse: collapse; border: none; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.0%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Operation/Type&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.02%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Set&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.0%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Multiset&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;24%&quot; valign=&quot;top&quot; style=&quot;width: 24.98%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Sequence&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.0%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Insert&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.02%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.0%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;24%&quot; valign=&quot;top&quot; style=&quot;width: 24.98%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.0%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Select&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.02%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.0%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;24%&quot; valign=&quot;top&quot; style=&quot;width: 24.98%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.0%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Update&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.02%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.0%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;24%&quot; valign=&quot;top&quot; style=&quot;width: 24.98%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.0%; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Delete&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.02%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;25%&quot; valign=&quot;top&quot; style=&quot;width: 25.0%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;24%&quot; valign=&quot;top&quot; style=&quot;width: 24.98%; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Supported&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;a name=&quot;_Toc358217294&quot;&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;img width=&quot;597&quot; height=&quot;302&quot; src=&quot;/files/attach/images/194379/771/672/SpecialDataTypesTestCases.jpg&quot; alt=&quot;SpecialDataTypesTestCases.jpg&quot; /&gt; &lt;br clear=&quot;all&quot; style=&quot;mso-special-character: line-break; page-break-before: always;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Relationships_testing&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;Relationships testing&lt;/h1&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;1_n_relationship_tests&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;1:N Relationship tests&lt;/h2&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;For testing 1:N relationship in NHibernate we used the &lt;b&gt;Nation&lt;/b&gt; and &lt;b&gt;Athlete&lt;/b&gt; tables in the &lt;i&gt;demodb&lt;/i&gt; database. The tests consist in performing the basic SQL CRUD operations (INSERT, SELECT, UPDATE, DELETE) on the relationship between the two tables.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The files used in the tests are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mappings&amp;#92;AthleteOneToMany.cs: the mapping class for the Athlete table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;AthleteOneToMany.hbm.xml: the xml mapping file for the Athlete table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Nation.cs: the mapping class for the Nation table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Nation.hbm.xml: the xml mapping file for the Nation table.&lt;/li&gt;
&lt;li&gt;TestRelationships.cs: the implementation of the test cases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&quot;1_n_Test_results&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Test results&lt;/h3&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;PlainTable1&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; style=&quot;border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Operation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;115&quot; valign=&quot;top&quot; style=&quot;width: 86.35pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center; mso-yfti-cnfc: 1;&quot;&gt;&lt;b&gt;Test Result&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;409&quot; valign=&quot;top&quot; style=&quot;width: 307.1pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Notes&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; style=&quot;border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Insert&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;115&quot; valign=&quot;top&quot; style=&quot;width: 86.35pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center; mso-yfti-cnfc: 64;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;409&quot; valign=&quot;top&quot; style=&quot;width: 307.1pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Insertion of a new Nation   triggers an insertion of a new Athlete&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; style=&quot;border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Select&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;115&quot; valign=&quot;top&quot; style=&quot;width: 86.35pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;409&quot; valign=&quot;top&quot; style=&quot;width: 307.1pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Selection of a Nation triggers the selection of the   corresponding Athletes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; style=&quot;border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Update&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;115&quot; valign=&quot;top&quot; style=&quot;width: 86.35pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center; mso-yfti-cnfc: 64;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;409&quot; valign=&quot;top&quot; style=&quot;width: 307.1pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Updating a Nation also updates   the corresponding Athletes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; style=&quot;border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Delete&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;115&quot; valign=&quot;top&quot; style=&quot;width: 86.35pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;409&quot; valign=&quot;top&quot; style=&quot;width: 307.1pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Deleting a Nation triggers the deletion of the orphan   Athletes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;m_n_relationship_tests&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;M:N Relationship tests&lt;/h2&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;For testing M:N relationship in NHibernate we used the &lt;b&gt;Event&lt;/b&gt; and &lt;b&gt;Athlete&lt;/b&gt; tables in the &lt;i&gt;demodb&lt;/i&gt; database. Because in NHibernate the columns referenced by the foreign keys must be the primary key in the reference table, we could not use the Record table as reference between Event and Athlete.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;So for testing, a custom reference table was created:&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;create table AthleteEvent(
    event_code int,
    athlete_code int,
    primary key(event_code,athlete_code)
)&lt;/pre&gt;
&lt;p&gt;The tests consist in performing the basic SQL operations (INSERT, SELECT, UPDATE, DELETE) on the relationship between the two tables.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The files used in the tests are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mappings&amp;#92;AthleteManyToMany.cs: the mapping class for the Athlete table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;AthleteManyToMany.hbm.xml: the xml mapping file for the Athlete table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Event.cs: the mapping class for the Event table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Event.hbm.xml: the xml mapping file for the Event table.&lt;/li&gt;
&lt;li&gt;TestRelationships.cs: the implementation of the test cases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;m_n_Test_results&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Test results&lt;/h3&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;PlainTable1&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot; valign=&quot;top&quot; style=&quot;width: 77.4pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Operation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;102&quot; valign=&quot;top&quot; style=&quot;width: 76.5pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center; mso-yfti-cnfc: 1;&quot;&gt;&lt;b&gt;Test Result&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;394&quot; valign=&quot;top&quot; style=&quot;width: 295.65pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Notes&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot; valign=&quot;top&quot; style=&quot;width: 77.4pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Insert&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;102&quot; valign=&quot;top&quot; style=&quot;width: 76.5pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center; mso-yfti-cnfc: 64;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;394&quot; valign=&quot;top&quot; style=&quot;width: 295.65pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Insertion of a new Athlete   triggers an insertion of a new Event and the insertion of a new record in the   reference table&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot; valign=&quot;top&quot; style=&quot;width: 77.4pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Select&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;102&quot; valign=&quot;top&quot; style=&quot;width: 76.5pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;394&quot; valign=&quot;top&quot; style=&quot;width: 295.65pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Selection of an Athlete triggers the selection of the   corresponding Event and selection of an Event triggers the selection of the   corresponding Athletes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot; valign=&quot;top&quot; style=&quot;width: 77.4pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Update&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;102&quot; valign=&quot;top&quot; style=&quot;width: 76.5pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center; mso-yfti-cnfc: 64;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;394&quot; valign=&quot;top&quot; style=&quot;width: 295.65pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Updating an Athlete or Event   also updates the corresponding the other part of the relationship and the   reference table.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot; valign=&quot;top&quot; style=&quot;width: 77.4pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Delete&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;102&quot; valign=&quot;top&quot; style=&quot;width: 76.5pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;394&quot; valign=&quot;top&quot; style=&quot;width: 295.65pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Deleting a Athlete triggers the deletion of the orphan   Events and deletes the corresponding record in the reference table&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;1_1_relationship_test&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;1:1 Relationship test&lt;/h2&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;1:1 relationships where tested using a more complex schema from the &lt;i&gt;demodb&lt;/i&gt; database. We used the Game table as the &lt;i&gt;center&lt;/i&gt; table and we linked the &lt;b&gt;Nation&lt;/b&gt;, &lt;b&gt;Athlete&lt;/b&gt;, &lt;b&gt;Stadium&lt;/b&gt; and &lt;b&gt;Event&lt;/b&gt; tables to it in 1:1 relationships.&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot; style=&quot;text-align: justify;&quot;&gt;As usual, the tests consist in performing the basic SQL operations (INSERT, SELECT, UPDATE, DELETE) on the relationship between the tables.&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;The files used in the tests are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mappings&amp;#92;AthleteOneToOne.cs: the mapping class for the Athlete table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;AthleteOneToOne.hbm.xml: the xml mapping file for the Athlete table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Event.cs: the mapping class for the Event table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Event.hbm.xml: the xml mapping file for the Event table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Game.cs: the mapping class for the Game table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Game.hbm.xml: the xml mapping file for the Game table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Stadium.cs: the mapping class for the Stadium table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Stadium.hbm.xml: the xml mapping file for the Stadium table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Nation.cs: the mapping class for the Nation table.&lt;/li&gt;
&lt;li&gt;Mappings&amp;#92;Nation.hbm.xml: the xml mapping file for the Nation table.&lt;/li&gt;
&lt;li&gt;TestRelationships.cs: the implementation of the test cases.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a name=&quot;1_1_Test_results&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Test results&lt;b style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;PlainTable1&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot; valign=&quot;top&quot; style=&quot;width: 77.4pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Operation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;102&quot; valign=&quot;top&quot; style=&quot;width: 76.5pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center; mso-yfti-cnfc: 1;&quot;&gt;&lt;b&gt;Test Result&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;394&quot; valign=&quot;top&quot; style=&quot;width: 295.65pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-left: none; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Notes&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot; valign=&quot;top&quot; style=&quot;width: 77.4pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Insert&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;102&quot; valign=&quot;top&quot; style=&quot;width: 76.5pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center; mso-yfti-cnfc: 64;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;394&quot; valign=&quot;top&quot; style=&quot;width: 295.65pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Inserting a new Game triggers   the insertion of new entries in all the other tables in the relationship&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot; valign=&quot;top&quot; style=&quot;width: 77.4pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Select&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;102&quot; valign=&quot;top&quot; style=&quot;width: 76.5pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;394&quot; valign=&quot;top&quot; style=&quot;width: 295.65pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Selecting a Game triggers the selection of the   corresponding records in the other tables&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot; valign=&quot;top&quot; style=&quot;width: 77.4pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Update&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;102&quot; valign=&quot;top&quot; style=&quot;width: 76.5pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center; mso-yfti-cnfc: 64;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;394&quot; valign=&quot;top&quot; style=&quot;width: 295.65pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Updating a Game updates the   corresponding information in the other tables in the relationship&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot; valign=&quot;top&quot; style=&quot;width: 77.4pt; border: solid #BFBFBF 1.0pt; mso-border-themecolor: background1; mso-border-themeshade: 191; border-top: none; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;Delete&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;102&quot; valign=&quot;top&quot; style=&quot;width: 76.5pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p align=&quot;center&quot; class=&quot;MsoNoSpacing&quot; style=&quot;text-align: center;&quot;&gt;OK&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;394&quot; valign=&quot;top&quot; style=&quot;width: 295.65pt; border-top: none; border-left: none; border-bottom: solid #BFBFBF 1.0pt; mso-border-bottom-themecolor: background1; mso-border-bottom-themeshade: 191; border-right: solid #BFBFBF 1.0pt; mso-border-right-themecolor: background1; mso-border-right-themeshade: 191; mso-border-top-alt: solid #BFBFBF .5pt; mso-border-top-themecolor: background1; mso-border-top-themeshade: 191; mso-border-left-alt: solid #BFBFBF .5pt; mso-border-left-themecolor: background1; mso-border-left-themeshade: 191; mso-border-alt: solid #BFBFBF .5pt; mso-border-themecolor: background1; mso-border-themeshade: 191; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;Deleting a Game triggers the deletion of the orphan   records in the other tables&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&amp;nbsp;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;img width=&quot;603&quot; height=&quot;304&quot; src=&quot;/files/attach/images/194379/771/672/RelationshipsTestCases.jpg&quot; alt=&quot;RelationshipsTestCases.jpg&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;References&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;span style=&quot;font-size: 2em;&quot;&gt;References&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;table width=&quot;100%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableLightShadingAccent5&quot; style=&quot;border-collapse: collapse; mso-table-layout-alt: fixed; border: none; mso-border-top-alt: solid #4472C4 1.0pt; mso-border-top-themecolor: accent5; mso-border-bottom-alt: solid #4472C4 1.0pt; mso-border-bottom-themecolor: accent5; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;42%&quot; valign=&quot;top&quot; style=&quot;width: 42.1%; border-top: solid #4472C4 1.0pt; mso-border-top-themecolor: accent5; border-left: none; border-bottom: solid #4472C4 1.0pt; mso-border-bottom-themecolor: accent5; border-right: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;Resource&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;57%&quot; valign=&quot;top&quot; style=&quot;width: 57.9%; border-top: solid #4472C4 1.0pt; mso-border-top-themecolor: accent5; border-left: none; border-bottom: solid #4472C4 1.0pt; mso-border-bottom-themecolor: accent5; border-right: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;Address&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;42%&quot; valign=&quot;top&quot; style=&quot;width: 42.1%; border: none; background: #D0DBF0; mso-background-themecolor: accent5; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;CUBRID ADO.NET Driver download from cubrid.org&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;57%&quot; valign=&quot;top&quot; style=&quot;width: 57.9%; border: none; background: #D0DBF0; mso-background-themecolor: accent5; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;&lt;a href=&quot;/?mid=downloads&amp;amp;item=ado_dot_net_driver&amp;amp;os=windows&amp;amp;cubrid=9.1.0&quot;&gt;http://www.cubrid.org/?mid=downloads&amp;amp;item=ado_dot_net_driver&amp;amp;os=windows&amp;amp;cubrid=9.1.0&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&gt;
&lt;td width=&quot;42%&quot; valign=&quot;top&quot; style=&quot;width: 42.1%; border: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;CUBRID NHibernate source code&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;57%&quot; valign=&quot;top&quot; style=&quot;width: 57.9%; border: none; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/NHibernate&quot;&gt;http://svn.cubrid.org/cubridapis/NHibernate&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&gt;
&lt;td width=&quot;42%&quot; valign=&quot;top&quot; style=&quot;width: 42.1%; border: none; background: #D0DBF0; mso-background-themecolor: accent5; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;CUBRID NHibernate Wiki page&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;57%&quot; valign=&quot;top&quot; style=&quot;width: 57.9%; border: none; background: #D0DBF0; mso-background-themecolor: accent5; mso-background-themetint: 63; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/using-cubrid-and-nhibernate&quot;&gt;http://www.cubrid.org/wiki_apis/entry/using-cubrid-and-nhibernate&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&gt;
&lt;td width=&quot;42%&quot; valign=&quot;top&quot; style=&quot;width: 42.1%; border: none; border-bottom: solid #4472C4 1.0pt; mso-border-bottom-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;Test cases suite source code&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;57%&quot; valign=&quot;top&quot; style=&quot;width: 57.9%; border: none; border-bottom: solid #4472C4 1.0pt; mso-border-bottom-themecolor: accent5; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;&lt;span style=&quot;color: #2f5496; mso-themecolor: accent5; mso-themeshade: 191;&quot;&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/adodotnet/branches/RB-9.1.0-p1/Code/Test/NHibernate/&quot;&gt;http://svn.cubrid.org/cubridapis/adodotnet/branches/RB-9.1.0-p1/Code/Test/NHibernate/&lt;/a&gt;&lt;span style=&quot;background: yellow; mso-highlight: yellow;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</content>
                  <category term="nhibernate"/>
            
   </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-06-13T02:00:51-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>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </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;p&gt;Apart from PHP, the script also needs g++ to be installed:&lt;/p&gt;
&lt;p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get install g++&lt;/pre&gt;
&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 href=&quot;/wiki_apis/entry/installing-cubrid-php-driver-using-pecl&quot; target=&quot;_self&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>CUBRID Migration Toolkit Tutorial Senarios 4_kr</title>
      <id>http://www.cubrid.org/371430</id>
      <published>2012-06-05T19:02:00-07:00</published>
      <updated>2013-06-12T18:42:07-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/371430"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/371430#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h1&gt;시나리오 4: 리눅스 콘솔에서 마이그레이션&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CUBRID Migration Toolkit은 클라이언트 UI 환경에서 사용자가 작성한 마이그레이션 스크립트를 기반으로&amp;nbsp;동작한다.&lt;/p&gt;
&lt;table style=&quot;width: 870px; height: 63px;&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;클라이언트 UI 환경에서 마이그레이션 스크립트를 작성
&lt;p&gt;-&amp;gt;&amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;소스 DB&amp;nbsp; to 로컬 클라이언트 환경 to 대상 DB &lt;/span&gt;로 마이그레이션 작업 수행&lt;br /&gt;-&amp;gt; (&lt;span style=&quot;text-decoration: underline;&quot;&gt;로컬 경유 O, 수행 시간 길다, 예약 기능 사용 가능&lt;/span&gt;)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;그러나, 짧은 시간 내에 데이터 이전 작업을 수행해야 하는 경우에는 서버 리소스를 충분히 활용하여 대상 서버(CUBRID 설치 서버)에서 마이그레이션 스크립트를 실행할 수 있다. 이를 지원하는 도구가 마이그레이션 톨킷 콘솔이다.&lt;/p&gt;
&lt;table style=&quot;width: 870px; height: 63px;&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;클라이언트 UI 환경에서 마이그레이션 스크립트를 작성
&lt;p&gt;-&amp;gt; 이를 재료로 CUBRID가 설치된 서버에서 스크립트를 실행할 수 있는 콘솔용 프로그램(Java Application)을 실행&lt;br /&gt;-&amp;gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;소스 DB to&amp;nbsp;대상 DB&lt;/span&gt;로 마이그레이션 작업 수행&lt;br /&gt;-&amp;gt; (&lt;span style=&quot;text-decoration: underline;&quot;&gt;로컬 경유 X, 대상 서버 리소스 활용 가능, 수행 시간 짧다, 예약 기능 사용 불가&lt;/span&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;p&gt;콘솔용 마이그레이션 툴킷은&amp;nbsp;다운로드는 배포 사이트에서 다운로드한다. &lt;br /&gt;(&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Migration_Toolkit/&quot;&gt;http://ftp.cubrid.org/CUBRID_Tools/CUBRID_Migration_Toolkit/&lt;/a&gt; )&lt;br /&gt;이때, 클라이언트 환경에 설치된 CUBRID Migration Toolkit과 버전과 동일한 버전의 디렉토리에서 콘솔용 패키지를 받아 압축을 해제한다.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;tar xvfpz CUBRID-Migration-Toolkit-console-x.x.x.xxxxxx-linux.tar.gz&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;다음과 같은 파일들이 압축 해제가 된다.&lt;/p&gt;
&lt;blockquote class=&quot;q6&quot;&gt;migration.sh&lt;br /&gt;migration.jar&lt;br /&gt;jdbc/(JDBC drivers)&lt;/blockquote&gt;
&lt;h2&gt;마이그레이션 툴킷 콘솔 실행&lt;/h2&gt;
&lt;p&gt;실행 방법은 &lt;span style=&quot;color: #000000; background-color: #c0c0c0;&quot;&gt;migration.sh &amp;lt;마이그레이션 스크립트 파일명&amp;gt;&lt;/span&gt;로 실행하면 된다. &lt;br /&gt;또한, 뒤에 옵션 없이 migration.sh를 실행하면, 마이그레이션에 사용할 마이그레이션 스크립트 파일명을 직접 입력할 수도 있다.&lt;br /&gt;이제 클라이언트 UI에서 원하는 마이그레이션 스크립트(xml파일)을 만들어보자!&lt;/p&gt;
&lt;h2&gt;마이그레이션 스크립트 작성 및 준비&lt;/h2&gt;
&lt;p&gt;마이그레이션 스크립트 파일을 작성하기 위해 마이그레이션 시나리오 1 ~ 3중 해당하는 작업 환경에 따라 진행한 후 최종 단계에서 마이그레이션을 시작하는 대신 &lt;span style=&quot;font-weight: bold;&quot;&gt;|마이그레이션 스크립트 저장|&lt;/span&gt; 버튼을 클릭하여 XML 형태의 &lt;span style=&quot;font-weight: bold;&quot;&gt;마이그레이션 스크립트&lt;/span&gt; 파일을 저장한다.&lt;/p&gt;
&lt;p&gt;작업할 서버&amp;gt; 마이그레이션 콘솔 설치 디렉터리로 &lt;span style=&quot;font-weight: bold;&quot;&gt;마이그레이션 스크립트&lt;/span&gt; 파일을 업로드 한다. &lt;br /&gt;만약, 클라이언트 환경에 있는 sql, csv, sql 파일을 로딩하여 DB로 입력하는 시나리오라면, 이 파일들도 함께 마이그레이션 콘솔 설치 디렉터리로 업로드한다.&lt;/p&gt;
&lt;h2&gt;마이그레이션 시작&lt;/h2&gt;
&lt;p&gt;작성한 마이그레이션 스크립트(migration.xml)가 준비되었다면 아래와 같이 실행하여 마이그레이션을 시작할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ ./migration.sh migration.xml &lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;주의/트러블 슈팅&lt;/h2&gt;
&lt;p&gt;만약, 아래와 같이 jdbc 드라이버의 위치를 요구할 경우에는 jdbc full path를 입력해야 한다.&lt;/p&gt;
&lt;blockquote class=&quot;q6&quot;&gt;Please specify the source database&apos;s JDBC driver:&lt;br /&gt;Please specify the target database&apos;s JDBC driver:&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;만약, 자동으로 진행하기를 원한다면, migration script(xml)에는 아래와 같은 부분이 source와 target 두 군데 있는데, driver의 경로를 console이 설치된 jdbc내부에 있는 해당 jdbc driver의 fullpath를 설정해야만 위와 같은 질문 없이 자동으로 마이그레이션이 진행된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;&amp;lt;jdbc charset=&quot;UTF-8&quot; driver=&quot;C:&amp;#92;cubridmigration&amp;#92;jdbc&amp;#92;JDBC-8.4.1.jar&quot; host=&quot;0.0.0.0&quot; name=&quot;testdb1&quot; password=&quot;&quot; port=&quot;33000&quot; timezone=&quot;Default&quot; user=&quot;dba&quot;/&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이후 과정은 GUI 환경에서 실행되는 마이그레이션 툴킷과 동일하게 진행되며 진행 상태만 간략하게 출력이 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;마이그레이션 결과 확인&lt;/h2&gt;
&lt;p&gt;마이그레이션이 완료(또는 실패)되면 아래와 같이 리포트가 생성된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;The report file was saved as : [....&amp;#92;report&amp;#92;1338953415916.mh]&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;GUI용 마이그레이션 툴킷으로 파일을 가져와서 report 디렉토리에 파일을 복사한 후 마이그레이션 툴킷을 실행하여, 마이그레이션 이력 보기(마이그레이션 툴킷의 툴바에서 실행 가능)를 하면 상세 리포트를 확인할 수 있다.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="CMT"/>
            <category term="manual"/>
            
   </entry>
   <entry>
      <title>Using CUBRID with NHibernate - Advanced tutorial (Part I)</title>
      <id>http://www.cubrid.org/676918</id>
      <published>2013-06-12T07:26:54-07:00</published>
      <updated>2013-06-12T07:26:54-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/676918"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/676918#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;June, 2013&lt;/p&gt;
&lt;h1&gt;Introduction&lt;/h1&gt;
&lt;p&gt;This tutorial is the continuation of the &lt;a href=&quot;/wiki_apis/entry/using-cubrid-with-nhibernate-beginners-guide&quot;&gt;&lt;b&gt;CUBRID NHibernate Beginner&apos;s guide tutorial&lt;/b&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot; valign=&quot;top&quot; width=&quot;616&quot;&gt;
&lt;p class=&quot;MsoNoSpacing&quot;&gt;If you have not read yet the &lt;a href=&quot;/wiki_apis/entry/using-cubrid-with-nhibernate-beginners-guide&quot;&gt;Beginner&apos;s Guide&lt;/a&gt;, we strongly suggest doing it, before proceeding further with this tutorial.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The scope of this next tutorial is to show you some more advanced topics in regard to suing CUBRID and NHibernate together:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tables relationships&lt;/li&gt;
&lt;li&gt;Dealing with CUBRID special data types&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s start!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Recap&lt;/h1&gt;
&lt;p&gt;In the previous &lt;a href=&quot;/wiki_apis/entry/cubrid-nhibernate-support&quot;&gt;NHibernate tutorials&lt;/a&gt; we showed you where to get:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The NHibernate CUBRID extensions library&lt;/li&gt;
&lt;li&gt;The CUBRID ADO.NET library&lt;br /&gt;...And how to setup a MS Visual Studio project&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To recap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Download the CUBRID ADO.NET Data provider installer from &lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/nHibernate/ADO.NET%20Driver.zip/download&quot;&gt;here&lt;/a&gt; or&lt;/p&gt;
&lt;p&gt;Compile the CUBRID ADO.NET data provider yourself from the source code; checkout the code from theSVN repository: &lt;a href=&quot;http://svn.cubrid.org/cubridapis/adodotnet/branches/RB-9.1.0-p1/&quot;&gt;http://svn.cubrid.org/cubridapis/adodotnet/branches/RB-9.1.0/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Download the NHibernate with CUBRID extensions:
&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/nHibernate/NHibernate%20with%20CUBRID%20extensions.zip/download&quot;&gt;Precompiled dll&lt;/a&gt;&amp;nbsp;or&lt;/p&gt;
&lt;p&gt;Download the source code and compile it yourself:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/NHibernate&quot;&gt;http://svn.cubrid.org/cubridapis/NHibernate&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;You need to add in MS Visual Studio the references to these libraries: 
&lt;ul&gt;
&lt;li&gt;NHibernate.dll&lt;/li&gt;
&lt;li&gt;CUBRID.Data.dll&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img height=&quot;382&quot; width=&quot;549&quot; alt=&quot;NHibernatedll.jpg&quot; src=&quot;/files/attach/images/194379/727/676/NHibernatedll.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;385&quot; width=&quot;554&quot; alt=&quot;CUBRIDdll.jpg&quot; src=&quot;/files/attach/images/194379/727/676/CUBRIDdll.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Table relationships&lt;/h1&gt;
&lt;p&gt;When dealing with databases, one of the most important parts is handling the relationships between database tables. NHibernate makes this task easier because the relationships are mapped only once at the beginning of the development phase of a project, and then NHibernate handles automatically all the operations for you. In the following example we will demonstrate how to work with 1:N and M:N relationships.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;1:N relationship&lt;/h2&gt;
&lt;p&gt;To exemplify a 1:N relationship we will use two &lt;i&gt;demodb&lt;/i&gt; tables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;athlete&lt;/li&gt;
&lt;li&gt;nation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;173&quot; width=&quot;553&quot; alt=&quot;AthleteTable.jpg&quot; src=&quot;/files/attach/images/194379/727/676/AthleteTable.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;133&quot; width=&quot;578&quot; alt=&quot;NationTable.jpg&quot; src=&quot;/files/attach/images/194379/727/676/NationTable.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The mapping files&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In the &lt;i&gt;Nation.hbm.xml&lt;/i&gt; mapping file the relationship is mapped as &lt;b&gt;bag &lt;/b&gt;element that has two child elements: a&lt;b&gt;key &lt;/b&gt;element which specifies the column in the foreign key table that references the &lt;b&gt;Nation&lt;/b&gt; table, and a &lt;b&gt;one-to-many&lt;/b&gt; element which specifies the name of the class that references &lt;b&gt;Nation&lt;/b&gt;. In addition, notice that in the &lt;b&gt;bag&lt;/b&gt; element we have set the &lt;i&gt;cascade&lt;/i&gt; attribute. The &lt;b&gt;all-delete-orphan&lt;/b&gt; cascade style means that when an object is saved/updated/deleted, NHibernate checks the associations and saves/updates/deletes all the objects found. In additional to that, when an object is removed from the association and not associated with another object (orphaned), NHibernate also deletes it.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot; valign=&quot;top&quot; width=&quot;616&quot;&gt;
&lt;p&gt;More information on NHibernate cascade styles can be found &lt;a href=&quot;http://ayende.com/blog/1890/nhibernate-cascades-the-different-between-all-all-delete-orphans-and-save-update&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;margin-left: .5in;&quot; class=&quot;MsoNoSpacing&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot;
assembly=&quot;OneNRelationship&quot;
namespace=&quot;OneNRelationship&quot;&amp;gt;
&amp;lt;class name=&quot;Nation&quot;&amp;gt;
&amp;lt;id name=&quot;code&quot; &amp;gt;
&amp;lt;column name=&quot;code&quot;/&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;name&quot; not-null=&quot;true&quot;/&amp;gt;
&amp;lt;property name=&quot;continent&quot;/&amp;gt;
&amp;lt;property name=&quot;capital&quot;/&amp;gt;
&amp;lt;bag name=&quot;Athletes&quot; cascade=&quot;all-delete-orphan&quot; inverse=&quot;true&quot;&amp;gt;
&amp;lt;key column=&quot;nation_code&quot; /&amp;gt;
&amp;lt;one-to-many class=&quot;Athlete&quot;/&amp;gt;
&amp;lt;/bag&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot;
assembly=&quot;OneNRelationship&quot;
namespace=&quot;OneNRelationship&quot;&amp;gt;
&amp;lt;class name=&quot;Athlete&quot; table=&quot;athlete&quot;&amp;gt;
&amp;lt;id name=&quot;code&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;name&quot;/&amp;gt;
&amp;lt;property name=&quot;gender&quot;/&amp;gt;
&amp;lt;property name=&quot;nation_code&quot;/&amp;gt;
&amp;lt;property name=&quot;athlete_event&quot; column=&quot;event&quot;/&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Persistent Classes&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In the &lt;b&gt;Nation&lt;/b&gt; persistent class, the 1:N relationship is represented as an &lt;i&gt;IList&lt;/i&gt; of &lt;i&gt;Athletes&lt;/i&gt;. This list will be populated with the corresponding entries from the &lt;b&gt;Athlete&lt;/b&gt; table when a nation is queried:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace OneNRelationship
{
  class Nation
  {
    virtual public string code { get; set; }
    virtual public string name { get; set; }
    virtual public string continent { get; set; }
    virtual public string capital { get; set; }
    public virtual IList&amp;lt;Athlete&amp;gt; Athletes { get; set; }
  }
}

namespace OneNRelationship
{
  class Athlete
  {
     virtual public int code { get; set; }
     virtual public string name { get; set; }
     virtual public string gender { get; set; }
     virtual public string nation_code { get; set; }
     virtual public string athlete_event { get; set; }
  }
}&lt;/pre&gt;
&lt;p&gt;Next, we will see how to perform the basic operations (INSERT, SELECT, UPDATE, DELETE) on the relationship we just mapped.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;INSERT&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;To perform an INSERT operation, we create a &lt;i&gt;Nation&lt;/i&gt; and an &lt;i&gt;Athlete&lt;/i&gt; object as usual. What is different here is that the &lt;b&gt;athlete&lt;/b&gt; is added to the &lt;b&gt;Athletes&lt;/b&gt; list of the &lt;b&gt;nation&lt;/b&gt; object. After doing this, when we save a &lt;b&gt;nation&lt;/b&gt;, NHibernate will also insert the corresponding athlete because in the mapping file we set the cascade style of the relationship to &lt;b&gt;cascade-all-delete-orphan.&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;Nation nation = new Nation
{
   code = &quot;ROM&quot;,
   name = &quot;Romania&quot;,
   capital = &quot;Bucharest&quot;,
   continent = &quot;Europe&quot;,
   Athletes = new List&amp;lt;Athlete&amp;gt;()
};
Athlete athlete = new Athlete
{
   name = &quot;Lucian Bute&quot;,
   gender = &quot;M&quot;,
   nation_code = &quot;ROM&quot;,
   athlete_event = &quot;Boxing&quot;,
};
nation.Athletes.Add(athlete);
using (ISession session = sessionFactory.OpenSession())
{
    using (ITransactiontx = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Save(nation);
        tx.Commit();
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;margin-left: .5in;&quot; class=&quot;MsoNoSpacing&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;A SELECT operation can be performed in the standard way to retrieve both the nations and the athletes.&lt;/p&gt;
&lt;p&gt;But what do we do if we want to retrieve a nation together with its corresponding athletes?&lt;/p&gt;
&lt;p&gt;To do this, when we will use the &lt;i&gt;Fetch()&lt;/i&gt; method, which is an extension of the &lt;b&gt;ISession&lt;/b&gt; class.&lt;span style=&quot;font-size: 9pt; font-family: Verdana, sans-serif; color: #333333; background-position: initial initial; background-repeat: initial initial;&quot;&gt;That additional method says: &quot;Hey, NHibernate! Go and get the &lt;b&gt;nation&lt;/b&gt;, but also the &lt;b&gt;athletes&lt;/b&gt; too!&quot;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;using (ISession session = sessionFactory.OpenSession())
{
    foreach (Nation currentNation in session.Query&amp;lt;Nation&amp;gt;().Fetch(b =&amp;gt;b.Athletes))
    {
        System.Console.WriteLine(string.Format(&quot;Nation {0} has athletes:&quot;, currentNation.name));
        foreach (Athlete currentAthlete in currentNation.Athletes)
        {
            System.Console.WriteLine(string.Format(&quot;&amp;#92;t{0}&quot;, currentAthlete.name));
        }
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot; valign=&quot;top&quot; width=&quot;616&quot;&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: In order to use the Query&amp;lt;T&amp;gt;() method you have to import the &lt;b&gt;NHibernate.Linq&lt;/b&gt; namespace.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; align=&quot;center&quot; class=&quot;MsoNoSpacing&quot;&gt;&lt;i&gt;&lt;span style=&quot;mso-bidi-font-size: 9.5pt; mso-bidi-font-family: Consolas; background: white; mso-highlight: white;&quot;&gt;using NHibernate.Linq;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UPDATE&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;An UPDATE operation is straight forward. We just update the properties of our &lt;i&gt;Nation&lt;/i&gt; and &lt;i&gt;Athlete&lt;/i&gt; objects and call the &lt;i&gt;Update()&lt;/i&gt; method from &lt;b&gt;ISession&lt;/b&gt; on our nation. Again, NHibernate will also update the corresponding &lt;b&gt;athlete&lt;/b&gt; because of the cascade style we&apos;ve set in the mapping:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;using (ISession session = sessionFactory.OpenSession())
{
    using (ITransaction tx = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        nation.capital = &quot;Bucuresti&quot;;
        athlete.name = &quot;Leonard Doroftei&quot;;
        session.Update(nation);
        tx.Commit();
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;DELETE&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Just like the UPDATE operation, DELETE is done in a standard way on a &lt;i&gt;Nation&lt;/i&gt; object and the &lt;b&gt;delete-orphan&lt;/b&gt; cascade style will delete the orphan &lt;b&gt;athletes&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;using (ISession session = sessionFactory.OpenSession())
{
    //Delete an inserted information
    using (var trans = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Delete(nation);
        trans.Commit();
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;M:N relationships&lt;/h2&gt;
&lt;p&gt;In this section, we will go a step further and see how to handle M:N relationships using the &lt;i&gt;Athlete&lt;/i&gt; and the &lt;i&gt;Event&lt;/i&gt; tables from the &lt;i&gt;demodb&lt;/i&gt; database:&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;173&quot; width=&quot;553&quot; alt=&quot;AthleteTable.jpg&quot; src=&quot;/files/attach/images/194379/727/676/AthleteTable.jpg&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;174&quot; width=&quot;543&quot; alt=&quot;EventTable.jpg&quot; src=&quot;/files/attach/images/194379/727/676/EventTable.jpg&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Let&apos;s say that we want to know in what &lt;b&gt;events&lt;/b&gt; does an &lt;b&gt;athlete&lt;/b&gt; take part, but also, we want to know who the &lt;b&gt;athletes&lt;/b&gt; that take part in an &lt;b&gt;event&lt;/b&gt; are. It is obvious that we are dealing with a M:N relationship so let&apos;s see how we go about mapping it.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot; valign=&quot;top&quot; width=&quot;616&quot;&gt;
&lt;p&gt;By design, NHibernate only supports the implicit many-to-many mapping if there is absolutely nothing other than the pair of FKs represented in the intermediate (&amp;ldquo;middle&amp;rdquo;) table that holds the many-to-many relationship information.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;So, because we don&apos;t have such a table already in the database, let&apos;s create one (in the following we will refer to this table as the &lt;i&gt;reference table&lt;/i&gt;):&lt;/p&gt;
&lt;p style=&quot;margin-left: .5in; text-align: justify;&quot; class=&quot;MsoNoSpacing&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE athleteevent(
event_code integer NOT NULL,
athlete_code integer NOT NULL,
CONSTRAINT pk_athleteevent_event_code_athlete_code PRIMARY KEY(event_code,athlete_code)
)&lt;/pre&gt;
&lt;p&gt;Now let&apos;s add a couple of records to the table so we can link athletes to events:&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;INSERT INTO AthleteEvent VALUES (20038, 10011), (20038, 14313)&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The mapping files&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;To map the M:N relationship, we will again use a &lt;b&gt;bag&lt;/b&gt; element in both our mapping files, but this time with some differences . First of all, we add the &lt;i&gt;table&lt;/i&gt; attribute to tell NHibernate that it is dealing with a reference table. Next, instead of the &lt;i&gt;&amp;lt;one-to-many/&amp;gt;&lt;/i&gt; tag, we use the &lt;i&gt;&amp;lt;many-to-many&amp;gt;&amp;nbsp;&lt;/i&gt;tag. This specifies that the relationship is M:N with the table given by the &lt;i&gt;class&lt;/i&gt; attribute, and the reference column given by the &lt;i&gt;column&lt;/i&gt; attribute. Note that, the key column and the many-to-many column are columns from the &lt;i&gt;AthleteEvent&lt;/i&gt; table. Notice that we used the &lt;i&gt;cascade&amp;nbsp;&lt;/i&gt;attribute again, in the same way we did for the 1:N relationship:&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot;
assembly=&quot;NMRelationship&quot;
namespace=&quot;NMRelationship&quot;&amp;gt;
&amp;lt;class name=&quot;Athlete&quot; table=&quot;Athlete&quot;&amp;gt;
&amp;lt;id name=&quot;code&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;name&quot;/&amp;gt;
&amp;lt;property name=&quot;gender&quot;/&amp;gt;
&amp;lt;property name=&quot;nation_code&quot;/&amp;gt;
&amp;lt;property name=&quot;athlete_event&quot; column=&quot;event&quot;/&amp;gt;
&amp;lt;bag name=&quot;Events&quot; table=&quot;AthleteEvent&quot; cascade=&quot;all-delete-orphan&quot; lazy=&quot;true&quot;&amp;gt;
&amp;lt;key column =&quot;athlete_code&quot; /&amp;gt;
&amp;lt;many-to-many class=&quot;Event&quot; column=&quot;event_code&quot; /&amp;gt;
&amp;lt;/bag&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;margin-left: .5in;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: 14.0pt; mso-bidi-font-size: 11.0pt; line-height: 107%; color: #44546a; mso-themecolor: text2;&quot;&gt; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot;
assembly=&quot;NMRelationship&quot;
namespace=&quot;NMRelationship&quot;&amp;gt;
&amp;lt;class name=&quot;Event&quot; table=&quot;Event&quot;&amp;gt;
&amp;lt;id name=&quot;code&quot;&amp;gt;
&amp;lt;column name=&quot;code&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;sports&quot;/&amp;gt;
&amp;lt;property name=&quot;name&quot;/&amp;gt;
&amp;lt;property name=&quot;gender&quot;/&amp;gt;
&amp;lt;property name=&quot;players&quot;/&amp;gt;
&amp;lt;bag name=&quot;Athletes&quot; table=&quot;AthleteEvent&quot; cascade=&quot;all-delete-orphan&quot; inverse=&quot;true&quot; lazy=&quot;true&quot;&amp;gt;
&amp;lt;key column =&quot;event_code&quot; /&amp;gt;
&amp;lt;many-to-many class=&quot;Athlete&quot; column=&quot;athlete_code&quot; /&amp;gt;
&amp;lt;/bag&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;i&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: .5in;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: 14.0pt; mso-bidi-font-size: 11.0pt; line-height: 107%; color: #44546a; mso-themecolor: text2;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Persistent Classes&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The persistent classes have nothing special. All we need to do is to add &lt;i&gt;IList&lt;/i&gt; properties that correspond to the other class:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace NMRelationship
{
    class Athlete
    {
        virtual public int code { get; set; }
        virtual public string name { get; set; }
        virtual public string gender { get; set; }
        virtual public string nation_code { get; set; }
        virtual public string athlete_event { get; set; }
        virtual public IList&amp;lt;Event&amp;gt; Events { get; set; }
  }
}
 
namespace NMRelationship
{
    class Event
    {
        virtual public int code { get; set; }
        virtual public string sports { get; set; }
        virtual public string name { get; set; }
        virtual public string gender { get; set; }
        virtual public int players { get; set; }
        virtual public IList&amp;lt;Athlete&amp;gt; Athletes { get; set; }
    }
}&lt;/pre&gt;
&lt;p&gt;Next, we will see how to perform the basic operations (INSERT, SELECT, UPDATE, DELETE) on the M:Nrelationship we mapped.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;INSERT&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We perform an INSERT operation in the same way we&apos;ve done before. Just add an &lt;b&gt;Event&lt;/b&gt; to the &lt;b&gt;Athlete&apos;s &lt;/b&gt;list of events and NHibernate will do the rest: it will insert the &lt;b&gt;athlete&lt;/b&gt;, the &lt;b&gt;event&amp;nbsp;&lt;/b&gt;and it will add a corresponding entry in the &lt;i&gt;AthleteEvent&amp;nbsp;&lt;/i&gt;table too:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;Configuration cfg = (new Configuration()).Configure().AddAssembly(typeof (Athlete).Assembly);
ISessionFactory sessionFactory = cfg.BuildSessionFactory();
Athlete athlete = new Athlete {
    name = &quot;Lucian Bute&quot;,
    gender = &quot;M&quot;,
    nation_code = &quot;ROM&quot;,
    athlete_event = &quot;Boxing&quot;,
    Events = new List&amp;lt;Event&amp;gt;()
};
athlete.Events.Add(new Event { code = 20422, sports = &quot;Boxing&quot;, name = &quot;70 Kg&quot;, gender = &quot;M&quot;, players = 2 });
using (ISession session = sessionFactory.OpenSession())
{
    using (ITransaction tx = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Save(athlete);
        tx.Commit();
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Again, no difference from the 1:N relationship in the previous section. The only thing worth noting is that NHibernate will create a circular reference between an athlete and its events. That means that the elements in the athlete&apos;s list of events will contain a list of their corresponding athletes and so on:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;using (ISession session = sessionFactory.OpenSession())
{
    foreach (Athlete currentAthlete in session.Query&amp;lt;Athlete&amp;gt;().Fetch(b =&amp;gt;b.Events))
    {
        if (currentAthlete.Events.Count != 0)
        {
            Console.WriteLine(string.Format(
                &quot;Athlete {0} takes part in {1} along with:&quot;,
                currentAthlete.name, currentAthlete.Events[0].name));
            foreach (Athlete currentEventAthletes in currentAthlete.Events[0].Athletes)
            {
                Console.WriteLine(string.Format(&quot;&amp;#92;t{0}&quot;, currentEventAthletes.name));
            }
        }
    }
}&lt;/pre&gt;
&lt;p&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UPDATE&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The update operation is performed just like before:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;athlete.name = &quot;Leonard Doroftei&quot;;
athlete.Events[0].name = &quot;65 Kg&quot;;
using (ISession session = sessionFactory.OpenSession())
{
    using (ITransaction tx = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Update(athlete);
        tx.Commit();
    }}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;DELETE&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: .0001pt;&quot;&gt;The &lt;i&gt;delete-orphan&lt;/i&gt; cascade style is the important thing here. If we delete an &lt;b&gt;athlete&lt;/b&gt; with this cascade style, NHibernate will also delete the corresponding entry in the &lt;i&gt;reference&lt;/i&gt; table, but more important, it will also delete the corresponding &lt;b&gt;events&lt;/b&gt; even though they might correspond to other athletes, so you have to be careful with your configuration. In our case, this is not a problem since we are sure that our event corresponds to just one &lt;b&gt;athlete&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;using (ISession session = sessionFactory.OpenSession())
{
    using (ITransaction tx = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Delete(athlete);
        tx.Commit();
    }
}&lt;/pre&gt;
&lt;p style=&quot;margin-top: 0in; margin-right: 0in; margin-bottom: .0001pt; margin-left: .5in;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This concludes the 1st part of this tutorial. You can find the &lt;a href=&quot;/?mid=wiki_apis&amp;amp;entry=using-cubrid-with-nhibernate-advanced-tutorial-part-ii&quot;&gt;2nd part here&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="nhibernate"/>
            <category term="tutorial"/>
            
   </entry>
   <entry>
      <title>Using CUBRID with NHibernate - Advanced tutorial (Part II)</title>
      <id>http://www.cubrid.org/676727</id>
      <published>2013-06-12T03:59:11-07:00</published>
      <updated>2013-06-12T07:19:51-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/676727"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/676727#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;June, 2013&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Introduction&lt;/h1&gt;
&lt;p&gt;This is the 2nd part of the &lt;b&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/using-cubrid-with-nhibernate-advanced-tutorial-part-i&quot;&gt;Using CUBRID with NHibernate Advanced tutorial&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;In this part, we will discuss about &lt;b&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;dealing with CUBRID special data types in NHibernate&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 16.0pt; line-height: 107%; font-family: &amp;amp;quot;Calibri Light&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; mso-ascii-theme-font: major-latin; mso-fareast-font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin; mso-bidi-font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; mso-bidi-theme-font: major-bidi; color: #2e74b5; mso-themecolor: accent1; mso-themeshade: 191;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h1 style=&quot;margin-top: 0in;&quot;&gt;CUBRID special data types&lt;/h1&gt;
&lt;p&gt;Out-of-the-box, NHibernate Core does not support the following CUBRID special data types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLOB&lt;/li&gt;
&lt;li&gt;BLOB&lt;/li&gt;
&lt;li&gt;SET&lt;/li&gt;
&lt;li&gt;MULTISET&lt;/li&gt;
&lt;li&gt;LIST/SEQUENCE&lt;/li&gt;
&lt;li&gt;ENUM&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot; valign=&quot;top&quot; width=&quot;616&quot;&gt;
&lt;p&gt;We have submitted a code patch to the &lt;a href=&quot;https://github.com/nhibernate/nhibernate-core&quot;&gt;NHibernate Core project&lt;/a&gt; &amp;ndash; we will let you know when CUBRID support will be available in the official   NHibernate Core libraries.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;In the meantime, you will have to use the precompiled libraries we have already published (or apply the CUBRID NHibernate patch and compile the NHibernate Core library yourself) &amp;ndash; see the &lt;a href=&quot;/wiki_apis/entry/using-cubrid-with-nhibernate-advanced-tutorial-part-i&quot;&gt;1st tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, in this part we will show you how to deal in NHibernate with some of these CUBRID special data types.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;CUBRID LOB&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;/manual/91/en/sql/datatype.html#clob&quot;&gt;CUBRID CLOB&lt;/a&gt; is a data type used to store large character string data.&lt;span class=&quot;leftcontainer&quot;&gt;The maximum length of CLOB data is the maximum file size which can be created on the external storage, which depends on the OS specifics.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In this section we will use NHibernate to store and retrieve a text file in the &lt;i&gt;demodb&lt;/i&gt; database. As usual, the first thing we need to do is to create a table with a CLOB column:&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE testcubridclob(
   c_integer integer AUTO_INCREMENT(1,1) NOT NULL,
   c_clob clob,
   CONSTRAINT pk_testcubridclob_c_integer PRIMARY KEY(c_integer)
) &lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Mapping File&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Because NHibernate does not support CUBRID &lt;b&gt;CLOB&lt;/b&gt; out-of-the-box, we have to add a new attribute to the &lt;i&gt;&amp;lt;property&amp;gt;&lt;/i&gt; tag corresponding to the CUBRID CLOB column: &lt;b&gt;type = &quot;CUBRIDClob&quot;&lt;/b&gt;. This will tell NHibernate that it is dealing with a &lt;b&gt;CUBRIDClob&lt;/b&gt; object at it will handle it approprietly.&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot;
assembly=&quot;NHibernateTestCases&quot;
namespace=&quot;CUBRID.Data.TestNHibernate&quot;&amp;gt;
&amp;lt;class name=&quot;TestCUBRIDClobType&quot; table=&quot;TestCUBRIDClob&quot;&amp;gt;
&amp;lt;id name=&quot;c_integer&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;c_clob&quot; type=&quot;CUBRIDClob&quot;&amp;gt;
&amp;lt;column name=&quot;c_clob&quot; sql-type=&quot;CLOB&quot; /&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Persistent Class&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In the persistent class, the property corresponding to the &lt;b&gt;CUBRIDClob&lt;/b&gt; Column will be of type &lt;b&gt;CUBRID.Data.CUBRIDClinet.CUBRIDClob&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace CUBRID.Data.TestNHibernate
{
    public class TestCUBRIDClobType
    {
        virtual public int c_integer { get; set; }
        virtual public CUBRID.Data.CUBRIDClient.CUBRIDClobc_clob { get; set; }
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;INSERT&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;To insert a CLOB object in our table we will perform the following operations: read a file from the disk using a &lt;b&gt;StreamReader&lt;/b&gt;, create a &lt;b&gt;CUBRIDClob&lt;/b&gt; object using the CUBRID ADO.NET Driver, fill our &lt;b&gt;CUBRIDClob&lt;/b&gt; object with the content of our file through the &lt;b&gt;SetString()&lt;/b&gt; method and then use NHibernate to perform the insert operation just like we would with a normal data type.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot; valign=&quot;top&quot; width=&quot;616&quot;&gt;
&lt;p&gt;The CLOB data type is a   special data types also in the CUBRID ADO.NET Driver, so in order to handle   it some dedicated specific operations are implemened. You can get more   information on handling LOB objects with the CUBRID ADO.NET Driver &lt;a href=&quot;/wiki_apis/entry/cubrid-lobs&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;Configuration cfg = (new Configuration()).Configure().AddAssembly(typeof(TestCUBRIDClobType).Assembly);
TestCUBRIDClobType test = new TestCUBRIDClobType {
    c_clob = new CUBRIDClob(conn)
};
StreamReader originalFileReader = new StreamReader(&quot;../../BSD License.txt&quot;);
string clobStringToInsert = originalFileReader.ReadToEnd();
originalFileReader.Close();
test.c_clob.SetString(1, clobStringToInsert);

//Insert
ISessionFactorysessionFactory = cfg.BuildSessionFactory();
using (var session = sessionFactory.OpenSession())
{
    using (var trans = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Save(test);
        trans.Commit();
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Retrieving the &lt;b&gt;CLOB&lt;/b&gt; from the database is done the other way around: use NHibernate to get a &lt;b&gt;CUBRIDClob&lt;/b&gt; object from the ADO.NET Driver, use that object to get the &lt;b&gt;CLOB&lt;/b&gt; content through the &lt;b&gt;GetString()&lt;/b&gt; method and save the content to a new file on the disk:&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;ISessionFactorysessionFactory = cfg.BuildSessionFactory();
using (var session = sessionFactory.OpenSession())
{
    //Retrieve the inserted information
    IQuery query = session.CreateQuery(&quot;FROM TestCUBRIDClobType&quot;);
    IList&amp;lt;TestCUBRIDClobType&amp;gt;testQuery = query.List&amp;lt;TestCUBRIDClobType&amp;gt;();
    CUBRIDClob bImage = testQuery[0].c_clob;
    string clobInserted = bImage.GetString(1, (int)testQuery[0].c_clob.ClobLength);
    System.IO.StreamWriter file = new System.IO.StreamWriter(&quot;../../Retrieved.txt&quot;);
    file.WriteLine(clobInserted);
    file.Close();
}&lt;/pre&gt;
&lt;p style=&quot;margin-left: .5in;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;CUBRID SET&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;/manual/91/en/sql/datatype.html#set&quot;&gt;CUBRID SET&lt;/a&gt; is a collection type in which each element has different values. Elements of a &lt;strong&gt;&lt;span style=&quot;font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; mso-bidi-theme-font: minor-bidi;&quot;&gt;SET&lt;/span&gt;&lt;/strong&gt; are allowed to have only one data type. It can have records of other tables.&lt;/p&gt;
&lt;p&gt;Handling the CUBRID SET data type in NHibernateis pretty much the same as handling a normal data type, with the exception that it is not supported out-of-the-box so we have to use the &lt;b&gt;type&lt;/b&gt; attribute of the &lt;i&gt;&amp;lt;property&amp;gt;&lt;/i&gt; tag again to tell NHibernate how to handle this kind of object. This time the attribute will be: &lt;b&gt;type = &quot;CUBRIDCollection&quot;.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In the following example we will use a CUBRID &lt;b&gt;SET&lt;/b&gt; column to store the ingredients of a recipe. The SQL used for the creation of our table is:&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE recipe(
   id integer AUTO_INCREMENT(1,1) NOT NULL,
   recipe_name character varying(1073741823),
   ingredients set_of(character varying(10)),
   CONSTRAINT pk_recipe_id PRIMARY KEY(id)
) &lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Mapping file&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot;
assembly=&quot;CUBRIDSet&quot;
namespace=&quot;CUBRIDSet&quot;&amp;gt;
&amp;lt;class name=&quot;Recipe&quot; table=&quot;recipe&quot;&amp;gt;
&amp;lt;id name=&quot;id&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;name&quot;&amp;gt;
&amp;lt;column name=&quot;recipe_name&quot;/&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;ingredients&quot; type=&quot;CUBRIDCollection&quot;&amp;gt;
&amp;lt;column name=&quot;ingredients&quot;/&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The persistent class&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In the persistent class the CUBRID &lt;b&gt;SET&lt;/b&gt; column is represented by an array of objects. This is because the column can contain both numeric and string values.&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace CUBRIDSet
{
    class Recipe
    {
        virtual public int id { get; set; }
        virtual public string name { get; set; }
        virtual public object[] ingredients { get; set; }
    }
}&lt;/pre&gt;
&lt;p&gt;To insert our SET values, we just have to create an array of objects, set it with the elements of the set and perform the operation normally:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;Configuration cfg = (new Configuration()).Configure().AddAssembly(typeof(Recipe).Assembly);
object[] ingredients = { &quot;apples&quot;, &quot;eggs&quot;, &quot;flour&quot;, &quot;yeast&quot; };
Recipe recipe = new Recipe() {
    name = &quot;Apple pie&quot;,
    ingredients = ingredients
};
ISessionFactory sessionFactory = cfg.BuildSessionFactory();
using (var session = sessionFactory.OpenSession())
{
    using (var trans = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Save(recipe);
        trans.Commit();
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;305&quot; width=&quot;532&quot; alt=&quot;SelectFromRecipe.jpg&quot; src=&quot;/files/attach/images/194379/727/676/SelectFromRecipe.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now let&apos;s retrieve the inserted information. There is really no difference from handling a normal data type in NHibernate:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;using (var session = sessionFactory.OpenSession())
{
    //Retrieve the inserted information
    IQuery query = session.CreateQuery(&quot; from Recipe&quot;);
    IList&amp;lt;Recipe&amp;gt; recipies = query.List&amp;lt;Recipe&amp;gt;();
    for (var i = 0; i &amp;lt;recipies.Count; i++)
    {
        Console.Write(&quot;{0} is made out of: &quot;, recipies[i].name);
        foreach (var ingredient in recipies[i].ingredients)
        {
            Console.Write(&quot;{0}, &quot;, ingredient);
        }
    Console.WriteLine();
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;163&quot; width=&quot;600&quot; alt=&quot;RecipeOutput.jpg&quot; src=&quot;/files/attach/images/194379/727/676/RecipeOutput.jpg&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot; valign=&quot;top&quot; width=&quot;616&quot;&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: &lt;a href=&quot;/manual/91/en/sql/datatype.html#set&quot;&gt;CUBRID SET&lt;/a&gt; is a collection type in which each element has different values so if we try   to insert duplicates like:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object[] ingredients = {   &quot;apples&quot;, &quot;eggs&quot;, &quot;flour&quot;, &quot;yeast&quot; ,   &quot;apples&quot;};&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;, we will get the same   result as before, because CUBRID will discard the duplicates.&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;CUBRID LIST/SEQUENCE&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;/manual/91/en/sql/datatype.html#list-sequence&quot;&gt;CUBRID LIST (= SEQUENCE)&lt;/a&gt; is a collection type in which the input order of elements is preserved, and duplications are allowed. Elements of a &lt;strong&gt;&lt;span style=&quot;font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; mso-bidi-theme-font: minor-bidi;&quot;&gt;LIST&lt;/span&gt;&lt;/strong&gt; are allowed to have only one data type. It can have records of other tables.&lt;/p&gt;
&lt;p&gt;To demonstrate the use of CUBRID LIST/SEQUENCE we will create a table called &lt;i&gt;student_class&lt;/i&gt; in which we will store in a &lt;b&gt;LIST&lt;/b&gt; column the students that study in that class. The SQL statement used for the creation of the table is:&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE students_class(
    id integer AUTO_INCREMENT(1,1) NOT NULL,
    class_name character varying(1073741823),
    students sequence_of(character varying(30)),
    CONSTRAINT pk_class_id PRIMARY KEY(id)
)&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Mapping file&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Handling CUBRID &lt;b&gt;LIST&lt;/b&gt;/&lt;b&gt;SEQUENCE&lt;/b&gt; columns is the same as handling the CUBRID &lt;b&gt;SET&lt;/b&gt; columns which we discussed earlier. All we need to do apart from a normal mapping is to set the type attribute of the &lt;i&gt;&amp;lt;property&amp;gt;&lt;/i&gt; tag like this: &lt;b&gt;type = &quot;CUBRIDCollection&quot;&lt;/b&gt;:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot;
assembly=&quot;CUBRIDList&quot;
namespace=&quot;CUBRIDList&quot;&amp;gt;
&amp;lt;class name=&quot;Class&quot; table=&quot;students_class&quot;&amp;gt;
&amp;lt;id name=&quot;id&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;name&quot;&amp;gt;
&amp;lt;column name=&quot;class_name&quot;/&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;students&quot; type=&quot;CUBRIDCollection&quot;&amp;gt;
&amp;lt;column name=&quot;students&quot;/&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt; &lt;/pre&gt;
&lt;p style=&quot;margin: 0in 0in 0.0001pt 0.5in;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Persistent Class&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;As discussed in the previous CUBRID&amp;nbsp;&lt;b&gt;SET&lt;/b&gt; example, the &lt;b&gt;LIST&lt;/b&gt; column will be persisted like an array of objects:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace CUBRIDList
{
    class Class
    {
        virtual public int id { get; set; }
        virtual public string name { get; set; }
        virtual public object[] students { get; set; }
    }
} &lt;/pre&gt;
&lt;p&gt;Let&apos;s now insert something into the table:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;Configuration cfg = (new Configuration()).Configure().AddAssembly(typeof(Class).Assembly);
object[] students = { &quot;John Doe&quot;, &quot;Amy Smith&quot;, &quot;Mark Stevans&quot;, &quot;Bety Ross&quot; };
Class recipe = new Class() {
    name = &quot;First Grade&quot;,
    students = students
};
ISessionFactory sessionFactory = cfg.BuildSessionFactory();
using (var session = sessionFactory.OpenSession())
{
    using (var trans = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Save(recipe);
        trans.Commit();
    }
} &lt;/pre&gt;
&lt;p&gt;As before, we create an object array and set it with our student names. Please note that the students were not put in any particular order. Let&apos;s see what happens when we retrieve the students from the database:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;using (var session = sessionFactory.OpenSession())
{
    //Retrieve the inserted information
    IQuery query = session.CreateQuery(&quot; from Class&quot;);
    IList&amp;lt;Class&amp;gt; classes = query.List&amp;lt;Class&amp;gt;();
    for (var i = 0; i &amp;lt;classes.Count; i++)
    {
        Console.WriteLine(&quot;In {0} study the following students: &quot;, classes[i].name);
        foreach (var student in classes[i].students)
        {
            Console.WriteLine(&quot;&amp;#92;t{0}&quot;, student);
        }
    }
}&lt;/pre&gt;
&lt;p&gt;&lt;img height=&quot;150&quot; width=&quot;600&quot; alt=&quot;ListOutput.jpg&quot; src=&quot;/files/attach/images/194379/727/676/ListOutput.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;text-align: center;&quot;&gt;As you can see, the students were retrieved in alphabetical order.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;CUBRID ENUM&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;/manual/91/en/sql/datatype.html#enum-data-type&quot;&gt;CUBRID ENUM&lt;/a&gt; type is a data type consisting of an ordered set of distinct constant char literals called enum values.Only the specified string elements are allowed as the value of the column defined as&amp;nbsp;&lt;b&gt;ENUM&lt;/b&gt;&amp;nbsp;and the maximum number of the &lt;b&gt;ENUM&lt;/b&gt; elements is 65535.&lt;/p&gt;
&lt;p&gt;In the following, we will see how to handle&amp;nbsp;&lt;i&gt;insert&lt;/i&gt; and &lt;i&gt;select&lt;/i&gt; operations on CUBRID&lt;b&gt;ENUM&lt;/b&gt; columns. But first, let&apos;s create a table in the &lt;b&gt;demodb&amp;nbsp;&lt;/b&gt;database with an &lt;b&gt;ENUM&lt;/b&gt; column:&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE &quot;colors&quot;(
    &quot;id&quot; integer AUTO_INCREMENT(1,1) NOT NULL,
    &quot;color&quot; ENUM(&apos;red&apos;, &apos;green&apos;, &apos;blue&apos;),
    PRIMARY KEY(&quot;id&quot;)
);&lt;/pre&gt;
&lt;p&gt;NHibernate does not support the CUBRID&amp;nbsp;&lt;b&gt;ENUM&lt;/b&gt; type out-of-the-box, but in this case we can take advantage of the fact that the value of an&amp;nbsp;&lt;b&gt;ENUM&lt;/b&gt; column is just a char literal, so we will map this column in NHibernate just like we would a &lt;b&gt;STRING&lt;/b&gt;, &lt;b&gt;CHAR, &lt;/b&gt;or &lt;b&gt;VARCHAR&lt;/b&gt; column. The only difference is that we will specify that the sql-type of the column is &lt;b&gt;ENUM&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Mapping file&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;hibernate-mapping assembly=&quot;CUBRIDEnum&quot; namespace=&quot;CUBRIDEnum&quot; xmlns=&quot;urn:nhibernate-mapping-2.2&quot;&amp;gt;
&amp;lt;class name=&quot;Colors&quot; table=&quot;colors&quot; lazy=&quot;true&quot; &amp;gt;
&amp;lt;id name=&quot;id&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;color&quot;&amp;gt;
&amp;lt;column name=&quot;color&quot; sql-type=&quot;ENUM&quot; not-null=&quot;false&quot; /&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt; &lt;/pre&gt;
&lt;p style=&quot;margin: 0in 0in 0.0001pt 0.5in;&quot;&gt;&lt;span style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Persistent Class&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace CUBRIDEnum
{
    class Colors
    {
        virtual public int id { get; set; }
        virtual public string color { get; set; }
    }
}&lt;/pre&gt;
&lt;p style=&quot;margin-left: .5in;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Once we have the persistent class and the mapping document in place, we can perform INSERT and SELECT operations. Let&apos;s insert three records in the table - one of each color in our enumeration:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;Configuration cfg = (new Configuration()).Configure().AddAssembly(typeof(Colors).Assembly);
Colors red = new Colors {
    color = &quot;red&quot;
};
Colors green = new Colors {
    color = &quot;green&quot;
};
Colors blue = new Colors {
    color = &quot;blue&quot;
};
ISessionFactory sessionFactory = cfg.BuildSessionFactory();
using (var session = sessionFactory.OpenSession()) {
    using (var trans = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Save(red);
        session.Save(green);
        session.Save(blue);
        trans.Commit();
    }
}&lt;/pre&gt;
&lt;p&gt;And now, let&apos;s retrieve the inserted records:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;using (var session = sessionFactory.OpenSession())
{
    //Retrieve the inserted information
    IQuery query = session.CreateQuery(&quot;FROM Colors&quot;);
    IList&amp;lt;Colors&amp;gt; colors = query.List&amp;lt;Colors&amp;gt;();
    Console.WriteLine(&quot;The colors in the table are:&quot;);
    Console.WriteLine(&quot;id&amp;#92;t&amp;#92;tColor&quot;);
    Console.WriteLine(&quot;_________________________&quot;);
    for (var i = 0; i &amp;lt;colors.Count; i++)
    {
        Console.WriteLine(colors[i].id + &quot;&amp;#92;t|&amp;#92;t&quot; + colors[i].color);
    }
} &lt;/pre&gt;
&lt;p&gt;The console output from running the code is:&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;152&quot; width=&quot;601&quot; alt=&quot;EnumOutput.jpg&quot; src=&quot;/files/attach/images/194379/727/676/EnumOutput.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot; valign=&quot;top&quot; width=&quot;616&quot;&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: As can be seen from the SQL statement we used to create the   table, the &lt;b&gt;color&lt;/b&gt; column can take   one of the three values: &lt;i&gt;&apos;red&apos;&lt;/i&gt;, &lt;i&gt;&apos;green&apos;&lt;/i&gt;, &lt;i&gt;&apos;blue&apos;&lt;/i&gt;. Trying to insert a different a different value, like &lt;i&gt;yellow&lt;/i&gt; or &lt;i&gt;orange&lt;/i&gt; will result in the following error:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Semantic: before &apos; );&apos;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Cannot coerce &apos;yellow&apos; to type enum. insert into colors colors   (colors.color) values ( cast(&apos;yell...&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #DEEAF6; mso-background-themecolor: accent1; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot; valign=&quot;top&quot; width=&quot;616&quot;&gt;
&lt;p&gt;&lt;b&gt;Important!&amp;nbsp;&lt;/b&gt;We   have presented here just some of the CUBRD special data types mappings in   NHibernate.&lt;/p&gt;
&lt;p&gt;The rest are pretty much   similar to deal with &amp;ndash; but if you need some ready-to-go code, please take a   look at the &lt;a href=&quot;http://svn.cubrid.org/cubridapis/adodotnet/branches/RB-9.1.0-p1/Code/Test/NHibernate/&quot;&gt;CUBRID   NHibernate test cases suite&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And this concludes our tutorial!&lt;span style=&quot;font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings;&quot;&gt;J&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;References&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;MsoTableGrid&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 147.2pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot; valign=&quot;top&quot; width=&quot;196&quot;&gt;
&lt;p&gt;CUBRID NHibernate Wiki page&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 314.95pt; 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; valign=&quot;top&quot; width=&quot;420&quot;&gt;
&lt;p&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-nhibernate-support&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-nhibernate-support&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 147.2pt; 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; valign=&quot;top&quot; width=&quot;196&quot;&gt;
&lt;p&gt;NHibernate home page&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 314.95pt; 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; valign=&quot;top&quot; width=&quot;420&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://nhforge.org/&quot;&gt;http://nhforge.org/&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 147.2pt; 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; valign=&quot;top&quot; width=&quot;196&quot;&gt;
&lt;p&gt;CUBRID ADO.NET driver&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 314.95pt; 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; valign=&quot;top&quot; width=&quot;420&quot;&gt;
&lt;p&gt;&lt;a 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;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 147.2pt; 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; valign=&quot;top&quot; width=&quot;196&quot;&gt;
&lt;p&gt;CUBRID NHibernate source code&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 314.95pt; 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; valign=&quot;top&quot; width=&quot;420&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/NHibernate&quot;&gt;http://svn.cubrid.org/cubridapis/NHibernate&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 147.2pt; 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; valign=&quot;top&quot; width=&quot;196&quot;&gt;
&lt;p&gt;CUBRID-enabled NMG tool&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 314.95pt; 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; valign=&quot;top&quot; width=&quot;420&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://nmg.codeplex.com/&quot;&gt;http://nmg.codeplex.com&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We hope you enjoyed the &lt;b&gt;CUBRID NHibernate tutorials &lt;/b&gt;series!&lt;/p&gt;
&lt;p&gt;As always, we kindly ask you to let us know your feedback and suggestions, so we can improve!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Thank you!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The CUBRID API team&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="nhibernate"/>
            <category term="tutorial"/>
            
   </entry>
   <entry>
      <title>Using CUBRID with NHibernate - Beginner&apos;s Guide</title>
      <id>http://www.cubrid.org/675267</id>
      <published>2013-06-10T06:56:47-07:00</published>
      <updated>2013-06-12T04:10:21-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/675267"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/675267#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h1&gt;Introduction&lt;/h1&gt;
&lt;p&gt;As you probably know already, &lt;a href=&quot;http://nhforge.org/Default.aspx&quot;&gt;NHibernate&lt;/a&gt; is a .NET port of the well-known &lt;a href=&quot;http://www.hibernate.org/&quot;&gt;Hibernate&lt;/a&gt; Java framework.It is an open source project which implements persisting objects (an &lt;b&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;ORM&lt;/span&gt;&lt;/b&gt;) to and from an underlying relational database &amp;ndash; MySQL, PostgreSQL, SQL Server, Oracle etc.&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; 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; align=&quot;center&quot; style=&quot;text-align: center;&quot;&gt;What we have   done in the scope of the &lt;b&gt;&lt;span style=&quot;color: #44546a; mso-themecolor: text2;&quot;&gt;CUBRID NHibernate project&amp;nbsp;&lt;/span&gt;&lt;/b&gt;was   to add support in NHibernate&lt;b&gt; for &lt;/b&gt;&lt;a href=&quot;/&quot;&gt;&lt;b&gt;CUBRID&lt;/b&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: This   tutorial assumes that you are familiar with &lt;b&gt;Hibernate&lt;/b&gt;, from which &lt;b&gt;NHibernate&lt;/b&gt; is derived!&lt;/p&gt;
&lt;p&gt;If you are not familiar, we strongly suggest &lt;a href=&quot;http://www.hibernate.org/&quot;&gt;reading more about Hibernate&lt;/a&gt;, before   proceeding further with this tutorial.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;And to help you get started fast with CUBRID and NHibernate working together, we have prepared a couple of tutorials!&lt;/p&gt;
&lt;p&gt;This tutorial will introduce you to the very basics of working with NHibernate and CUBRID; it will be followed shortly by an &amp;ldquo;&lt;i&gt;advanced tutorial&lt;/i&gt;&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;So let&amp;rsquo;s get started!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Software prerequisites&lt;/h1&gt;
&lt;p&gt;Before you start developing .NET applications with CUBRID and NHibernate, you will need the &lt;b&gt;NHibernate libraries&lt;/b&gt; and the &lt;b&gt;CUBRID ADO.NET Data provider library&lt;/b&gt;(&lt;i&gt;Cubrid.Data.dll&lt;/i&gt;):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Download the CUBRID ADO.NET Data provider installer from &lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/nHibernate/ADO.NET%20Driver.zip/download&quot;&gt;here&lt;/a&gt; or&lt;/p&gt;
&lt;p&gt;Compile the CUBRID ADO.NET data provider yourself from the source code; checkout the code from theSVN repository: &lt;a href=&quot;http://svn.cubrid.org/cubridapis/adodotnet/branches/RB-9.1.0-p1/&quot;&gt;http://svn.cubrid.org/cubridapis/adodotnet/branches/RB-9.1.0/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Download the NHibernate with CUBRID extensions:
&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/nHibernate/NHibernate%20with%20CUBRID%20extensions.zip/download&quot;&gt;Precompiled dll&lt;/a&gt;&amp;nbsp;or&lt;/p&gt;
&lt;p&gt;Download the source code and compile it yourself:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/NHibernate&quot;&gt;http://svn.cubrid.org/cubridapis/NHibernate&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;For this tutorial, you will also need Microsoft Visual Studio 2010/2012 (the freeware&amp;nbsp;&lt;a href=&quot;http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products&quot;&gt;Express&lt;/a&gt;&amp;nbsp;edition or the Professional/Ultimate)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Setup the environment&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Installing NHibernate with the CUBRID extensions&lt;/h2&gt;
&lt;p&gt;If you&apos;ve downloaded the NHibernate with CUBRID extensions binaries in a zip file from &lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/nHibernate/NHibernate%20with%20CUBRID%20extensions.zip/download&quot;&gt;here&lt;/a&gt;, all you need to do is extract that files. In this tutorial we will use this folder: C&lt;i&gt;:&amp;#92;NHibernateCUBRID&lt;/i&gt;. And that&apos;s it, NHibernate is installed - there&apos;s nothing else to be done to get NHibernate.&lt;/p&gt;
&lt;p&gt;All is left to do now is add the required references to you project. We will see in the following sections how to create a MS Visual Studio project with the proper references and settings.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Compiling NHibernate with CUBRID extensions&lt;/h2&gt;
&lt;p&gt;If you want to compile NHibernate with CUBRID extensions from the &lt;a href=&quot;http://svn.cubrid.org/cubridapis/NHibernate&quot;&gt;source code&lt;/a&gt;, all you need to do is load in Visual Studio 2012 the solution file located in &lt;i&gt;the &amp;#92;NHibernate&amp;#92;src&amp;#92;&lt;/i&gt; folder and build the NHibernate project:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/267/675/cubrid_extensions.png&quot; alt=&quot;cubrid_extensions.png&quot; width=&quot;588&quot; height=&quot;238&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Creating a MS Visual Studio project&lt;/h2&gt;
&lt;p&gt;Now that we have the NHibernate binaries in place, let&apos;s see how to create a Visual Studio project and add the required references and settings in order to use NHibernate with CUBRID database.&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;638&quot; valign=&quot;top&quot; style=&quot;width: 6.65in; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p&gt;Since we&apos;re not going to be focusing on the user interface in this tutorial, we will see how to create a C# console application project.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;So, fire up MS Visual Studio and create a new C# console application. Let&apos;s call it &lt;b&gt;HelloNHibernate&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Please note that it is strongly recommended to stick to this naming since in many cases these names may be used in other parts of the tutorial.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/267/675/project.png&quot; alt=&quot;project.png&quot; width=&quot;606&quot; height=&quot;420&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Next, we have to add the references to NHibernate:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/267/675/files.png&quot; alt=&quot;files.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;hellip;and the CUBRID ADO.NET Data provider:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/267/675/cubrid_data.png&quot; alt=&quot;cubrid_data.png&quot; width=&quot;559&quot; height=&quot;390&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The last step is to configure NHibernate for use with CUBRID.&lt;/p&gt;
&lt;p&gt;We do that by adding to our project a new xml configuration file called &lt;i&gt;hibernate.cfg.xml&lt;/i&gt;. In order for NHibernate to use it as its configuration file we have to set the &lt;b&gt;Build Action &lt;/b&gt;property to &lt;i&gt;Embedded Content&lt;/i&gt; and its &lt;b&gt;Copy to Output Directory&lt;/b&gt; property to &lt;i&gt;Copy always&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;The content of the file is as follows:&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-configuration xmlns=&quot;urn:nhibernate-configuration-2.2&quot;&amp;gt;
&amp;lt;!-- an ISessionFactory instance --&amp;gt;
&amp;lt;session-factory&amp;gt;
&amp;lt;!-- properties --&amp;gt;
&amp;lt;property name=&quot;connection.provider&quot;&amp;gt;
NHibernate.Connection.DriverConnectionProvider
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;connection.driver_class&quot;&amp;gt;
NHibernate.Driver.CUBRIDDriver
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;connection.connection_string&quot;&amp;gt;
server=localhost;database=demodb;port=33000;user=public;password=
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;dialect&quot;&amp;gt;
NHibernate.Dialect.CUBRIDDialect
&amp;lt;/property&amp;gt;
&amp;lt;/session-factory&amp;gt;
&amp;lt;/hibernate-configuration&amp;gt;&lt;/pre&gt;
&lt;p&gt;Here is a quick intro of the properties declared inside the xml file:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;connection.provider&lt;/b&gt;&amp;nbsp;sets which connection provider should be used by NHibernate to connect to the database.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;connection.driver_class&lt;/b&gt;&amp;nbsp;sets which driver should be used and in this case, when using CUBRID, CUBRIDDriver is the logical choice&lt;/li&gt;
&lt;li&gt;&lt;b&gt;connection.connection_string&lt;/b&gt;&amp;nbsp;is the connection string to the database. In this tutorial we will use the default &lt;a href=&quot;/wiki_apis/entry/connection-string&quot;&gt;CUBRID Connection string&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;dialect&lt;/b&gt;&amp;nbsp;states the NHibernate class name that enables certain platform dependent features, and in this case, since we are using CUBRID, the obvious choice is &lt;b&gt;CUBRIDDialect&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is all. We are now ready to start coding with NHibernate and CUBRID!&lt;/p&gt;
&lt;h1&gt;A first NHibernate CUBRID application&lt;/h1&gt;
&lt;p&gt;For a first example of using NHibernate with CUBRID, we will use the &lt;b&gt;Athlete&lt;/b&gt; table from the &lt;a href=&quot;/wiki_tutorials/entry/getting-started-with-demodb-cubrid-demo-database&quot;&gt;demodb&lt;/a&gt; database, which comes with your CUBRID install and we will see how to retrieve data from that table.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/267/675/athlete.png&quot; alt=&quot;athlete.png&quot; width=&quot;606&quot; height=&quot;216&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The NHibernate persistence class&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s create a new class in your project named &lt;b&gt;Athlete&lt;/b&gt; with the properties below (note that NHibernate is case sensitive, so our property names will need to exactly match our NHibernate mapping that we will be creating later):&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace HelloNHibernate
{
    public class Athlete
    {
        virtual public int code { get; set; }
        virtual public string name { get; set; }
        virtual public string gender { get; set; }
        virtual public string nation_code { get; set; }
        virtual public string athlete_event { get; set; }
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The mappings&lt;/h2&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p&gt;To be able to use the&amp;nbsp;&lt;b&gt;Athlete&lt;/b&gt;&amp;nbsp;class, it is necessary to create a NHibernate mapping file that contains the metadata that NHibernate uses for the object/relational mapping, i.e., connecting the class declaration, the properties to columns, and keys in the database tables.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;So, we will create a new xml file called &lt;i&gt;Athlete.hbm.xml&lt;/i&gt; and set its &lt;b&gt;Build Action&lt;/b&gt; property to &lt;i&gt;Embedded Resource&lt;/i&gt;. The content of the file is:&lt;/p&gt;
&lt;p&gt;Within the hibernate-mapping tag, we&apos;re referencing both the assembly and namespace that the classes (POCOs) below reside in.&amp;nbsp; This is handy when your mapping files end up in a separate namespace or assembly than your model.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;The class element&lt;/i&gt; represents our mapping to a single POCO.&amp;nbsp; The name represents the name of a class within the assembly and namespace from above, while the table attribute tells NHibernate which table or view in our database to map to.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;The id element&lt;/i&gt; tells NHibernate which database field and corresponding object property to use as a unique key.&amp;nbsp; In this case, we are using the Code field.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;The generator element &lt;/i&gt;tells NHibernate how to create unique IDs for new entities.&amp;nbsp; Since CUBRID supports identity columns through AUTO_INCREMENT, we specify the generator class as &apos;identity&apos;.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;The property tag&lt;/i&gt; is the tag you will see the most.&amp;nbsp; This simply maps a POCO property to the corresponding field in our table or view.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot;encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot; assembly=&quot;HelloNHibernate&quot; namespace=&quot;HelloNHibernate&quot;&amp;gt;
&amp;lt;class name=&quot;Athlete&quot; table=&quot;Athlete&quot;&amp;gt;
&amp;lt;id name=&quot;code&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;name&quot;/&amp;gt;
&amp;lt;property name=&quot;gender&quot;/&amp;gt;
&amp;lt;property name=&quot;nation_code&quot;/&amp;gt;
&amp;lt;property name=&quot;athlete_event&quot; column=&quot;event&quot;/&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The code&lt;/h2&gt;
&lt;p&gt;We are now ready to do some coding... In this example we will query the &lt;b&gt;Athlete&lt;/b&gt; table and print the first ten entries in the console. The code is placed directly in the main method of our console application:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;private static void Main(string[] args)
{
    Configuration cfg = (new Configuration()).Configure().AddAssembly(typeof (Athlete).Assembly);
    ISessionFactory sessionFactory = cfg.BuildSessionFactory();
    using (var session = sessionFactory.OpenSession())
    {
        IQuery query = session.CreateQuery(&quot;FROM Athlete&quot;);
        IList&amp;lt;Athlete&amp;gt; athletes = query.List&amp;lt;Athlete&amp;gt;();
        Console.WriteLine(&quot;There are {0} athletes in the databse.&amp;#92;n&quot;, athletes.Count);
        Console.WriteLine(&quot;The first 10 athletes are:&amp;#92;n&quot;);
        for (var i = 0; i &amp;lt; 9; i++)
        {    
            Console.WriteLine(
                string.Format(&quot;|{0}|{1}|{2}|{3}|{4}|&quot;,
                AlignCenter(athletes[i].code.ToString(), 5),
                AlignCenter(athletes[i].name, 30),
                AlignCenter(athletes[i].gender, 5),
                AlignCenter(athletes[i].nation_code, 5),
                AlignCenter(athletes[i].athlete_event, 20)));
        }
    }
    Console.WriteLine(@&quot;Press any key to continue...&quot;);
    Console.ReadKey();
}&lt;/pre&gt;
&lt;p&gt;Our first line of the main method is simply creating an instance of the NHibernate Configuration object based on the values in our hihernate.cfg.xml file and then we load our mapping files.&amp;nbsp; These are used to map our POCOs to our persistent database objects.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are several techniques for loading these in, but all will require an assembly to be passed as a parameter.&amp;nbsp; NHibernate will then look for all persistence mapping data within those assemblies:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;Configuration cfg = (new Configuration()).Configure().AddAssembly(typeof (Athlete).Assembly);&lt;/pre&gt;
&lt;p&gt;Next, we open a Session from our &lt;i&gt;SessionFactory&lt;/i&gt;.&amp;nbsp; All of our NHibernate persistence operations will be handled within the context of a Session:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;using (var session = sessionFactory.OpenSession())&lt;/pre&gt;
&lt;p&gt;With a session created, we can now get down to business.&amp;nbsp; In cases where we are simply retrieving data, so our &lt;i&gt;Session&lt;/i&gt; object is all we need.&lt;/p&gt;
&lt;p&gt;Retrieving &lt;i&gt;Athlete&lt;/i&gt; objects from the database is performed by creating a&lt;i&gt;IQuery&lt;/i&gt; object from our session and execute the desired query using it. In addition, we use the &lt;i&gt;List()&lt;/i&gt; method to retrieve a list of all the athletes in the database:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;IQuery query = session.CreateQuery(&quot;FROM Athlete&quot;);
IList&amp;lt;Athlete&amp;gt; athletes = query.List&amp;lt;Athlete&amp;gt;(); &lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p&gt;Note that for printing the entries in the &lt;b&gt;Athlete&lt;/b&gt; table in a easily readable format we use the &lt;i&gt;AlignCentre&amp;nbsp;&lt;/i&gt;method with the following code:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;static string AlignCenter(string text, int width)
{
    if (string.IsNullOrEmpty(text))
    {
        return new string(&apos; &apos;, width);
    }
    else
    {
        return text.PadRight(width - (width - text.Length) / 2).PadLeft(width);
    }
} &lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The output from running the above code is:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/267/675/output_code.png&quot; alt=&quot;output_code.png&quot; width=&quot;605&quot; height=&quot;307&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;An example which implements Update operations&lt;/h1&gt;
&lt;p&gt;In this example we will show how to handle the basic SQL operations (&lt;b&gt;insert, select, update and delete&lt;/b&gt;) on all the standard data types.&lt;/p&gt;
&lt;p&gt;For this purpose, we will create a table that has columns of all the standard SQLdata types. The SQL for creating this table is:&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;create TABLE DataTypes (
c_integer INTEGER AUTO_INCREMENT,
c_smallint SMALLINT,
c_bigint BIGINT,
c_numeric numeric(10,2),
c_float FLOAT,
c_decimal decimal(19,5),
c_double DOUBLE,
c_char char(1),
c_varchar varchar(30),
c_time TIME,
c_date DATE,
c_timestamp TIMESTAMP,
c_datetime DATETIME,
c_monetary MONETARY,
c_string STRING,
c_bit BIT(8),
c_varbit bit varying(8),
primary key (c_integer))&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The Persistent class&lt;/h2&gt;
&lt;p&gt;As we did in the previous example, to persist our database table in NHibernate we create a class called &lt;b&gt;DataTypes&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace HelloNHibernate
{
   public class DataTypes
   {
       virtual public int c_integer { get; set; }
       virtual public short c_smallint { get; set; }
       virtual public long c_bigint { get; set; }
       virtual public decimal c_numeric { get; set; }
       virtual public float c_float { get; set; }
       virtual public decimal c_decimal { get; set; }
       virtual public double c_double { get; set; }
       virtual public string c_char { get; set; }
       virtual public string c_varchar { get; set; }
       virtual public DateTimec_time { get; set; }
       virtual public DateTimec_date { get; set; }
       virtual public DateTimec_timestamp { get; set; }
       virtual public DateTime c_datetime { get; set; }
       virtual public intc_monetary { get; set; }
       virtual public String c_string { get; set; }
       virtual public byte c_bit { get; set; }
       virtual public byte c_varbit { get; set; }
   }
} &lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The Mappings&lt;/h2&gt;
&lt;p&gt;Again, to map the database column to our persistent class we have to create a mapping file called &lt;i&gt;DataTypes.hbm.xml&lt;/i&gt; and set its &lt;b&gt;Build Action&lt;/b&gt; property to &lt;i&gt;Embedded Resource&lt;/i&gt;. The content of this file is as follows:&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;
&amp;lt;hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot; assembly=&quot;HelloNHibernate&quot; namespace=&quot;HelloNHibernate&quot;&amp;gt;
&amp;lt;class name=&quot;DataTypes&quot; table=&quot;DataTypes&quot;&amp;gt;
&amp;lt;id name=&quot;c_integer&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;c_smallint&quot; /&amp;gt;
&amp;lt;property name=&quot;c_bigint&quot; /&amp;gt;
&amp;lt;property name=&quot;c_numeric&quot; /&amp;gt;
&amp;lt;property name=&quot;c_float&quot; /&amp;gt;
&amp;lt;property name=&quot;c_decimal&quot; /&amp;gt;
&amp;lt;property name=&quot;c_double&quot; /&amp;gt;
&amp;lt;property name=&quot;c_char&quot; /&amp;gt;
&amp;lt;property name=&quot;c_varchar&quot; /&amp;gt;
&amp;lt;property name=&quot;c_time&quot; /&amp;gt;
&amp;lt;property name=&quot;c_date&quot; /&amp;gt;
&amp;lt;property name=&quot;c_timestamp&quot; /&amp;gt;
&amp;lt;property name=&quot;c_datetime&quot; /&amp;gt;
&amp;lt;property name=&quot;c_monetary&quot; /&amp;gt;
&amp;lt;property name=&quot;c_string&quot; /&amp;gt;
&amp;lt;property name=&quot;c_bit&quot; /&amp;gt;
&amp;lt;property name=&quot;c_varbit&quot; /&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The code&lt;/h2&gt;
&lt;p&gt;Now we have the persistent class and the mapping file ready.&lt;/p&gt;
&lt;p&gt;Next we will implement a simple console application enables the user to perform the basic CRUD operations. The application will prompt the user for a supported type of operation and perform it. After that, the user is prompted again for a type of operation until he inputs a &quot;&lt;i&gt;Q&lt;/i&gt;&quot; character which will close the application.&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p&gt;The full code for the application can be downloaded from &lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/nHibernate/HelloNHibernate.zip/download&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Insert&lt;/h3&gt;
&lt;p&gt;Whether we have one or several properties, creating our new persistent object follows the same pattern, and can be accomplished in just a few lines of code.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a Transaction within which you will perform your updates&lt;/li&gt;
&lt;li&gt;Execute the Save method on your current session, passing the object you wish to persist as a parameter&lt;/li&gt;
&lt;li&gt;Commit your transaction&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;private static void Create(ISession session, DataTypes entry)
{
    using (var trans = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Save(entry);
        trans.Commit();
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Select&lt;/h3&gt;
&lt;p&gt;Retrieving object from the database is performed by creating a&lt;i&gt;IQuery&lt;/i&gt; object from our session and execute the desired query using it. In addition, we use the &lt;i&gt;List()&lt;/i&gt; method to retrieve the object as a list:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;private static void Retrieve(ISession session)
{
    IQuery query = session.CreateQuery(&quot;FROM DataTypes&quot;);
    IList&amp;lt;DataTypes&amp;gt;dataTypes = query.List&amp;lt;DataTypes&amp;gt;();
    Console.WriteLine(&quot;There are {0} entries in the DataTypes table.&quot;, dataTypes.Count);
    for (var i = 0; i &amp;lt;dataTypes.Count; i++)
    {
       Console.WriteLine(&quot;Entry number {0} has c_integer {1} and was created at {2}&quot;,
          i+1, dataTypes[i].c_integer, dataTypes[i].c_datetime);
    }
    Console.WriteLine();
}&lt;/pre&gt;
&lt;p&gt;After performing these operations, the console output will look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/267/675/insert.png&quot; alt=&quot;insert.png&quot; width=&quot;605&quot; height=&quot;307&quot; /&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;616&quot; valign=&quot;top&quot; style=&quot;width: 462.15pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FFF2CC; mso-background-themecolor: accent4; mso-background-themetint: 51; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p&gt;Please note that for appearance and simplicity purposes we didn&apos;t output to the console all the column values retrieved from the database. Instead, we output just the &lt;i&gt;c_integer&lt;/i&gt; column value, which is the primary key of the table, and the &lt;i&gt;c_datetime&lt;/i&gt; column value to differentiate between our entries.&lt;i&gt;&lt;span style=&quot;font-size: 12.0pt; mso-bidi-font-size: 11.0pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Update&lt;/h3&gt;
&lt;p&gt;For simplicity purposes we will just update the &lt;i&gt;c_datetime&lt;/i&gt; column. We will update a persistent object the same way we created one - by executing a method against the session object within the context of a transaction, as shown below:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;private static void Update(ISession session)
{
    DataTypespGet = session.Get&amp;lt;DataTypes&amp;gt;(1);
    pGet.c_datetime = DateTime.Now;
    using (var trans = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Update(pGet);
        trans.Commit();
    }
}&lt;/pre&gt;
&lt;p&gt;Let&apos;s see it in action:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/267/675/update.png&quot; alt=&quot;update.png&quot; width=&quot;606&quot; height=&quot;307&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Delete&lt;/h3&gt;
&lt;p&gt;For our last example, we will be deleting a record.&amp;nbsp; Again, since this will affect our persistent entity, we will perform our delete method within the scope of a transaction, and pass the object we wish to delete as a parameter:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;private static void Delete(ISession session)
{
    DataTypespGet = session.Get&amp;lt;DataTypes&amp;gt;(1);
    using (var trans = session.BeginTransaction(IsolationLevel.ReadUncommitted))
    {
        session.Delete(pGet);
        trans.Commit();
    }
}&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/267/675/delete.png&quot; alt=&quot;delete.png&quot; width=&quot;608&quot; height=&quot;374&quot; /&gt;&lt;/p&gt;
&lt;p&gt;And this concludes this first tutorial&amp;hellip;!&lt;/p&gt;
&lt;p&gt;In the next tutorial, we will go through some more advanced topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tables relationships&lt;/li&gt;
&lt;li&gt;Working with special CUBRID data types: LOB etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;References&lt;/h1&gt;
&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;196&quot; valign=&quot;top&quot; style=&quot;width: 147.2pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt;&quot;&gt;
&lt;p&gt;CUBRID NHibernate Wiki page&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;420&quot; valign=&quot;top&quot; style=&quot;width: 314.95pt; 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&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-nhibernate-support&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-nhibernate-support&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;196&quot; valign=&quot;top&quot; style=&quot;width: 147.2pt; 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&gt;NHibernate home page&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;420&quot; valign=&quot;top&quot; style=&quot;width: 314.95pt; 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&gt;&lt;a href=&quot;http://nhforge.org/&quot;&gt;http://nhforge.org/&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;196&quot; valign=&quot;top&quot; style=&quot;width: 147.2pt; 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&gt;CUBRID ADO.NET driver&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;420&quot; valign=&quot;top&quot; style=&quot;width: 314.95pt; 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&gt;&lt;a 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;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;196&quot; valign=&quot;top&quot; style=&quot;width: 147.2pt; 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&gt;CUBRID NHibernate source code&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;420&quot; valign=&quot;top&quot; style=&quot;width: 314.95pt; 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&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/NHibernate&quot;&gt;http://svn.cubrid.org/cubridapis/NHibernate&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;196&quot; valign=&quot;top&quot; style=&quot;width: 147.2pt; 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&gt;CUBRID-enabled NMG tool&lt;/p&gt;
&lt;/td&gt;
&lt;td width=&quot;420&quot; valign=&quot;top&quot; style=&quot;width: 314.95pt; 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&gt;&lt;a href=&quot;http://nmg.codeplex.com/&quot;&gt;http://nmg.codeplex.com&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! Stay tuned for the next part!&lt;/p&gt;
&lt;p&gt;As always, we kindly ask you to let us know your feedback and suggestions, so we can improve!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Thank you!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The CUBRID API team&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="nhibernate"/>
            
   </entry>
   <entry>
      <title>Using NMG (NHibernate Mappings Generator) with CUBRID</title>
      <id>http://www.cubrid.org/673900</id>
      <published>2013-06-08T00:49:43-07:00</published>
      <updated>2013-06-12T02:36:31-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/673900"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/673900#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;June, 2013&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In this tutorial we will show you how to usethe &lt;a href=&quot;http://nmg.codeplex.com/&quot;&gt;NMG&lt;/a&gt;(&lt;b&gt;&lt;span style=&quot;color: #1f497d; mso-themecolor: text2;&quot;&gt;NHibernate Mapping Generator&lt;/span&gt;&lt;/b&gt;) application with&lt;a href=&quot;http://www.cubrid.org&quot;&gt; CUBRID&lt;/a&gt;, to generate the NHibernate database mappings &amp;amp; code.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Introduction&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://nmg.codeplex.com/&quot;&gt;NMG&lt;/a&gt; - &quot;&lt;b&gt;NHibernate Mapping Generator&lt;/b&gt;&quot; is an application that can generate&amp;nbsp; &lt;a href=&quot;http://nhforge.org/wikis/howtonh/your-first-nhibernate-based-application.aspx&quot;&gt;NHibernate mapping files&lt;/a&gt; and the corresponding domain classes from database tables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;It supports Oracle, SQLServer, PostgreSQL, MySQL, SQLite, Sybase, Ingres, and &lt;b&gt;CUBRID&lt;/b&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Can generate hbm.xml, Fluent NHibernate and NH 3.3 Fluent style of mapping files.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Has lots of preferences to control the property naming conventions.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Can generate Domain Entity and WCF Data Contracts too.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Can generate one table at a time or script entire DB in one go. (It can generate mapping for around 800 tables in under 3 minutes on my moderately powered laptop)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Supports ActiveRecord code generation.&amp;nbsp;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;It is free. No licensing restrictions.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Has the option to generate NHibernate or MS validators&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most important for the CUBRID community is that &lt;b&gt;&lt;span style=&quot;color: #1f497d; mso-themecolor: text2;&quot;&gt;NMG does support CUBRID&lt;/span&gt;&lt;/b&gt; starting with version &lt;b&gt;4.0&lt;/b&gt;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/900/673/NMG.jpg&quot; alt=&quot;NMG.jpg&quot; height=&quot;304&quot; width=&quot;602&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Setup&lt;/h1&gt;
&lt;table class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;&quot; border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;width: 478.8pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;
&lt;p&gt;You can download the latest version of &lt;b&gt;NHibernate Mapping Generator&lt;/b&gt;, complete with CUBRID support &lt;a href=&quot;https://nmg.codeplex.com/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;To get started with NMG just download it and unzip the file into a location of you convenience.&lt;/p&gt;
&lt;p&gt;Then, run the &lt;i&gt;NHibernateMappingGenerator.exe &lt;/i&gt;executable file.&lt;/p&gt;
&lt;p&gt;In order to generate NHibernate mapping files with NMG we first have to connect to a CUBRID database. To do that, launch NMG and create a new connection using the &lt;b&gt;New&lt;/b&gt; connection button. In the connection dialog, type a name of your choice for this connection, set the &lt;i&gt;Database Type&lt;/i&gt; to &lt;b&gt;CUBRID&lt;/b&gt;, edit the connection parameters accordingly to your database setup (because the connection is done using the &lt;a href=&quot;/wiki_apis/entry/cubrid-ado-net-driver&quot;&gt;CUBRID ADO.NET driver&lt;/a&gt;, the connection string must use this syntax; you can easily generate the connection string &lt;a href=&quot;http://cubrid-talks.blogspot.com/2012/12/cubrid-connection-strings.html&quot;&gt;here&lt;/a&gt;) and click &lt;b&gt;Save&lt;/b&gt;.&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;&quot; border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;width: 478.8pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;
&lt;p&gt;In this tutorial we will use the default CUBRID ADO.NET connection parameters for the &lt;i&gt;&quot;demodb&quot; &lt;/i&gt;database.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/900/673/Connect1.jpg&quot; alt=&quot;Connect1.jpg&quot; height=&quot;343&quot; width=&quot;573&quot; /&gt;&lt;/p&gt;
&lt;p&gt;After creating the new connection click&lt;b&gt; Connect&lt;/b&gt; and NMG will retrieve the list of the tables from the database and display the structure of the currently selected table:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/900/673/Connect2.jpg&quot; alt=&quot;Connect2.jpg&quot; height=&quot;343&quot; width=&quot;573&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;/h1&gt;
&lt;h1&gt;NHibernate mappings&lt;/h1&gt;
&lt;p&gt;As mentioned before, NMG can generate:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(&amp;ldquo;standard&amp;rdquo;) .hbm.xml files&lt;/li&gt;
&lt;li&gt;By code NHibernate mappings&lt;/li&gt;
&lt;li&gt;NHibernate 3.3 &lt;a href=&quot;http://stackoverflow.com/questions/596357/nhibernate-fluent-tutorials&quot;&gt;Fluent&lt;/a&gt; style of mapping files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also, NMG generates the domain class code associated with the mapping files. These mapping styles can be configured from the &lt;i&gt;Preferences&lt;/i&gt; tab:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src=&quot;/files/attach/images/194379/900/673/MappingStyles.jpg&quot; alt=&quot;MappingStyles.jpg&quot; height=&quot;142&quot; width=&quot;624&quot; /&gt;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;&quot; border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;width: 478.8pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FDE9D9; mso-background-themecolor: accent6; mso-background-themetint: 51; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;
&lt;p style=&quot;text-align: center;&quot; align=&quot;center&quot;&gt;You can find more information by examining the tool source code &lt;a href=&quot;http://nmg.codeplex.com/SourceControl/latest&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Let&apos;s see some simple examples of mapping files that NMG can generate. We will use the &lt;i&gt;Stadium &lt;/i&gt;table from the &lt;i&gt;demodb&lt;/i&gt; database.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;*.hbm.xml mapping&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/900/673/HBM.jpg&quot; alt=&quot;HBM.jpg&quot; height=&quot;313&quot; width=&quot;627&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Fluent mapping&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/900/673/Fluent.jpg&quot; alt=&quot;Fluent.jpg&quot; height=&quot;341&quot; width=&quot;628&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;h2&gt;By Code mapping&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;img src=&quot;/files/attach/images/194379/900/673/ByCode.jpg&quot; alt=&quot;ByCode.jpg&quot; height=&quot;382&quot; width=&quot;627&quot; /&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In addition, NMG also generates the corresponding &lt;b&gt;Domain Class&lt;/b&gt; code:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194379/900/673/Domain.jpg&quot; alt=&quot;Domain.jpg&quot; height=&quot;388&quot; width=&quot;581&quot; /&gt;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;&quot; border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;width: 478.8pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FDE9D9; mso-background-themecolor: accent6; mso-background-themetint: 51; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;
&lt;p&gt;As you can see, the NMG tool can significantly help the NHibernate CUBRID developer, by automatically generating all the mappings files and the domain classes&amp;rsquo; code.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;NMG is easy to use and it provides good support for CUBRID!&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Examples&lt;/h1&gt;
&lt;p&gt;In this section we will see two examples of how NMG generates mapping files and domain classes.&lt;/p&gt;
&lt;p&gt;The first example is a mapping of a 1:N relationship, and the second will be an example of how NMG maps a CUBRID &lt;b&gt;CLOB&lt;/b&gt; type column.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;1:N example&lt;/h2&gt;
&lt;p&gt;In this first example, we will show the generation of the mapping for a 1:N tables relationship.&lt;/p&gt;
&lt;p&gt;For the purpose of this example we will create two simple tables that implement the 1:N relationship between a &lt;b&gt;book&lt;/b&gt; and its &lt;b&gt;chapters&lt;/b&gt;. The SQL used for the creation of the tables is:&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE &quot;book&quot;(
&quot;id&quot; integer AUTO_INCREMENT(1,1) NOT NULL,
&quot;title&quot; character varying(255) NOT NULL,
&quot;author&quot; character varying(255) NOT NULL,
CONSTRAINT pk_books_id PRIMARY KEY(&quot;id&quot;)
);

CREATE TABLE &quot;chapter&quot;(
&quot;id&quot; integer AUTO_INCREMENT(1,1) NOT NULL,
&quot;title&quot; character varying(100),
&quot;bookid&quot; integer,
CONSTRAINT  &quot;fk_chapters_bookid&quot; FOREIGN KEY (&quot;bookid&quot;) REFERENCES &quot;book&quot;(&quot;id&quot;) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT pk_chapters_id PRIMARY KEY(&quot;id&quot;)
);&lt;/pre&gt;
&lt;p&gt;After creating the tables and you connect to the database, when you select these tables and generate the NHibernate code you will obtain:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;img src=&quot;/files/attach/images/194379/900/673/Book.jpg&quot; alt=&quot;Book.jpg&quot; height=&quot;89&quot; width=&quot;686&quot; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;img src=&quot;/files/attach/images/194379/900/673/Chapter.jpg&quot; alt=&quot;Chapter.jpg&quot; height=&quot;94&quot; width=&quot;687&quot; /&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The generated Domain Code for the two tables is:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace NMGCubrid {
    public class Book {
        private System.Nullable&amp;lt;int&amp;gt; id;
        private string title;
        private string author;
        public Book() {
            Chapters = new List&amp;lt;Chapter&amp;gt;();
        }
        public virtual IList&amp;lt;Chapter&amp;gt; Chapters { get; set; }
    }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace NMGCubrid {
    public class Chapter {
        private System.Nullable&amp;lt;int&amp;gt; id;
        private Book Bookid;
        private string title;
    }
}&lt;/pre&gt;
&lt;p&gt;The 1:N relationship is implemented in the &lt;b&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;Book&lt;/span&gt;&lt;/b&gt; class by the &lt;b&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;Chapters&amp;nbsp;&lt;/span&gt;&lt;/b&gt;member who represents a list of the book&apos;s corresponding chapters, and in the &lt;b&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;Chapter&lt;/span&gt;&lt;/b&gt; class by the &lt;b&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;Bookid&lt;/span&gt;&lt;/b&gt; member who will hold the chapter&apos;s corresponding book. The relationship is mapped in the &lt;i&gt;hbm.xml&lt;/i&gt; generated files in the same way:&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;hibernate-mapping assembly=&quot;NMGCubrid&quot; namespace=&quot;NMGCubrid&quot; xmlns=&quot;urn:nhibernate-mapping-2.2&quot;&amp;gt;
&amp;lt;class name=&quot;Book&quot; table=&quot;book&quot; lazy=&quot;true&quot; &amp;gt;
&amp;lt;id name=&quot;Id&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;column name=&quot;id&quot; sql-type=&quot;INT&quot; not-null=&quot;true&quot; unique=&quot;true&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;Title&quot;&amp;gt;
&amp;lt;column name=&quot;title&quot; sql-type=&quot;STRING&quot; not-null=&quot;true&quot; /&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;Author&quot;&amp;gt;
&amp;lt;column name=&quot;author&quot; sql-type=&quot;STRING&quot; not-null=&quot;true&quot; /&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;bag name=&quot;Chapters&quot; inverse=&quot;true&quot; cascade=&quot;none&quot;&amp;gt;
&amp;lt;key column=&quot;bookid&quot; /&amp;gt;
&amp;lt;one-to-many class=&quot;Chapter&quot; /&amp;gt;
&amp;lt;/bag&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;i&gt;&lt;span style=&quot;color: #1f497d; mso-themecolor: text2;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;hibernate-mapping assembly=&quot;NMGCubrid&quot; namespace=&quot;NMGCubrid&quot; xmlns=&quot;urn:nhibernate-mapping-2.2&quot;&amp;gt;
&amp;lt;class name=&quot;Chapter&quot; table=&quot;chapter&quot; lazy=&quot;true&quot; &amp;gt;
&amp;lt;id name=&quot;Id&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;column name=&quot;id&quot; sql-type=&quot;INT&quot; not-null=&quot;true&quot; unique=&quot;true&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;Title&quot;&amp;gt;
&amp;lt;column name=&quot;title&quot; sql-type=&quot;STRING&quot; not-null=&quot;false&quot; /&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;many-to-one insert=&quot;false&quot; update=&quot;false&quot; lazy=&quot;false&quot; name=&quot;Bookid&quot;&amp;gt;
&amp;lt;column name=&quot;bookid&quot; sql-type=&quot;INT&quot; not-null=&quot;false&quot; /&amp;gt;
&amp;lt;/many-to-one&amp;gt;
&amp;lt;property name=&quot;Bookid&quot;&amp;gt;
&amp;lt;column name=&quot;bookid&quot; sql-type=&quot;INT&quot; not-null=&quot;false&quot; /&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;In the &lt;i&gt;Book&lt;/i&gt; mapping file the relationship is mapped as &lt;b&gt;bag &lt;/b&gt;element that has two child elements: a&lt;b&gt; key &lt;/b&gt;element which specifies the column in the foreign key table that references the &lt;b&gt;Book&lt;/b&gt; table, and a &lt;b&gt;one-to-many&lt;/b&gt; element which specifies the name of the class that references &lt;b&gt;Book&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;In the &lt;i&gt;Chapter&lt;/i&gt; mapping file, the relationship is represented by the &lt;b&gt;many-to-one&lt;/b&gt; element which makes the mapping between the &lt;b&gt;bookid&lt;/b&gt; column and the corresponding &lt;b&gt;book&lt;/b&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;br clear=&quot;all&quot; /&gt; A CUBRID CLOB example&lt;/h2&gt;
&lt;p&gt;To exemplify how NMG maps CUBRID CLOB objects, we will create a table that contains a CLOB column and use NMG on this table. The SQL used for creating the tables is:&lt;i&gt;&lt;span style=&quot;color: #1f497d; mso-themecolor: text2;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE &quot;clob_table&quot;(
&quot;id&quot; integer NOT NULL,
&quot;text&quot; clob,
CONSTRAINT pk_clob_table_id PRIMARY KEY(&quot;id&quot;)
); &lt;/pre&gt;
&lt;p&gt;Now let&apos;s see the table&apos;s structure definition in NMG:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src=&quot;/files/attach/images/194379/900/673/Clob.jpg&quot; alt=&quot;Clob.jpg&quot; height=&quot;126&quot; width=&quot;626&quot; /&gt;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;&quot; border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;width: 478.8pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FDE9D9; mso-background-themecolor: accent6; mso-background-themetint: 51; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;
&lt;p&gt;Notice that NMG detected the C# type of our CLOB column as &lt;b&gt;CUBRID.Data.CUBIDClient.CUBRIDClob&lt;/b&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This information is also used in the generation of the Domain Code class:&lt;/p&gt;
&lt;pre class=&quot;brush:csharp&quot;  title=&quot;&quot;&gt;namespace NMGCubrid {
    public class ClobTable {
        private System.Nullable&amp;lt;int&amp;gt; id;
        private CUBRID.Data.CUBRIDClient.CUBRIDClob text;
    }
}&lt;/pre&gt;
&lt;p style=&quot;margin-left: 36.0pt;&quot;&gt;&lt;i&gt;&lt;span style=&quot;color: #1f497d; mso-themecolor: text2;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;&quot; border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;width: 478.8pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;
&lt;p&gt;As for the NHibernate mapping, NMG does NOT detect the NHibernate type for columns and does not include it in the xml mapping.&lt;/p&gt;
&lt;p&gt;This is because the standard C# data type, like &lt;i&gt;System.Int&lt;/i&gt; and &lt;i&gt;System.String&lt;/i&gt;, are detected in NHibernate by &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms173183%28v=vs.80%29.aspx&quot;&gt;reflection&lt;/a&gt;, but that is not the case for custom (=non-standard) data types like CUBRID&lt;b&gt;CLOB&lt;/b&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;NMG will generateout-of-the-box the following xml mapping:&lt;i&gt;&lt;span style=&quot;color: #1f497d; mso-themecolor: text2;&quot;&gt; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;hibernate-mapping assembly=&quot;NMGCubrid&quot; namespace=&quot;NMGCubrid&quot; xmlns=&quot;urn:nhibernate-mapping-2.2&quot;&amp;gt;
&amp;lt;class name=&quot;ClobTable&quot; table=&quot;clob_table&quot; lazy=&quot;true&quot; &amp;gt;
&amp;lt;id name=&quot;Id&quot;&amp;gt;
&amp;lt;generator class=&quot;identity&quot; /&amp;gt;
&amp;lt;column name=&quot;id&quot; sql-type=&quot;INT&quot; not-null=&quot;true&quot; unique=&quot;true&quot; /&amp;gt;
&amp;lt;/id&amp;gt;
&amp;lt;property name=&quot;Text&quot;&amp;gt;
&amp;lt;column name=&quot;text&quot; sql-type=&quot;CLOB&quot; not-null=&quot;false&quot; /&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;/class&amp;gt;
&amp;lt;/hibernate-mapping&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;&quot; border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;width: 478.8pt; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; background: #FDE9D9; mso-background-themecolor: accent6; mso-background-themetint: 51; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;638&quot;&gt;
&lt;p&gt;So in order to use this mapping in a project, we &lt;b&gt;MUST SET MANUALLY&lt;/b&gt; the NHibernate type by adding the&lt;b&gt; type &lt;/b&gt;attribute to the &lt;b&gt;property element&lt;/b&gt; corresponding to the CLOB column:&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;property name=&quot;Text&quot; type=&quot;CUBRIDClob&quot;&amp;gt;
&amp;lt;column name=&quot;text&quot; sql-type=&quot;CLOB&quot; not-null=&quot;false&quot; /&amp;gt;
&amp;lt;/property&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Once we do this manual step we are good to go &amp;ndash; we can start using the generated files to create CUBRID NHibernate applications!&lt;/p&gt;
&lt;p&gt;For examples and tutorials related to creating such applications, please visit the &lt;a href=&quot;/wiki_apis/entry/cubrid-nhibernate-support&quot;&gt;CUBRID NHibernate home page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;References&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;
&lt;table class=&quot;MsoTableLightGridAccent1&quot; style=&quot;border-collapse: collapse; mso-table-layout-alt: fixed; border: none; mso-border-alt: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;&quot; border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-irow: -1; mso-yfti-firstrow: yes;&quot;&gt;
&lt;td style=&quot;width: 42.1%; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-bottom: solid #4F81BD 2.25pt; mso-border-bottom-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;42%&quot;&gt;
&lt;p style=&quot;mso-yfti-cnfc: 5;&quot;&gt;Resource&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 57.9%; border-top: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; border-left: none; border-bottom: solid #4F81BD 2.25pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;57%&quot;&gt;
&lt;p style=&quot;mso-yfti-cnfc: 1;&quot;&gt;Address&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 0;&quot;&gt;
&lt;td style=&quot;width: 42.1%; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;42%&quot;&gt;
&lt;p style=&quot;mso-yfti-cnfc: 68;&quot;&gt;NHibernate Mapping Generator&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 57.9%; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;57%&quot;&gt;
&lt;p style=&quot;mso-yfti-cnfc: 64;&quot;&gt;&lt;a href=&quot;http://nmg.codeplex.com/&quot;&gt;nmg.codeplex.com/&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 1;&quot;&gt;
&lt;td style=&quot;width: 42.1%; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;42%&quot;&gt;
&lt;p style=&quot;mso-yfti-cnfc: 132;&quot;&gt;CUBRID NHibernate source code&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 57.9%; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;57%&quot;&gt;
&lt;p style=&quot;mso-yfti-cnfc: 128;&quot;&gt;&lt;a href=&quot;http://svn.cubrid.org/cubridapis/NHibernate&quot;&gt;http://svn.cubrid.org/cubridapis/NHibernate&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 2; mso-yfti-lastrow: yes;&quot;&gt;
&lt;td style=&quot;width: 42.1%; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;42%&quot;&gt;
&lt;p style=&quot;mso-yfti-cnfc: 68;&quot;&gt;CUBRID NHibernate Wiki page&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 57.9%; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;&quot; valign=&quot;top&quot; width=&quot;57%&quot;&gt;
&lt;p style=&quot;mso-yfti-cnfc: 64;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/using-cubrid-and-nhibernate&quot;&gt;http://www.cubrid.org/wiki_apis/entry/using-cubrid-and-nhibernate&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!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Thank you!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The CUBRID API team&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="NMG"/>
            <category term="nhibernate"/>
            
   </entry>
   <entry>
      <title>Test Automation using Hudson and Selenium at NHN Services</title>
      <id>http://www.cubrid.org/675619</id>
      <published>2013-06-10T21:25:57-07:00</published>
      <updated>2013-06-11T17:11:23-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/675619"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/675619#comment"/>
      <author>
         <name>Hyehwan Ahn</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;/blog/tags/NHN&quot;&gt;NHN&lt;/a&gt;, the company behind &lt;a href=&quot;/wiki_tutorials/entry/important-facts-to-know-about-cubrid&quot;&gt;CUBRID&lt;/a&gt; open source database development, is automating tests for diverse browsers (Chrome, Firefox, Internet Explorer, Opera, iOS Safari and Android) that run on a variety of operating systems (Linux, Microsoft Windows, Mac OS, iOS and Android) with a set of test codes by using Hudson and Selenium WebDriver.&amp;nbsp;In this article, I will briefly summarize the test automation process we use at NHN&apos;s NAVER portal and the benefits of Hudson and Selenium WebDriver for automation.&lt;/p&gt;
&lt;h2&gt;How to Automate Tests&lt;/h2&gt;
&lt;p&gt;I registered a test code to &lt;a href=&quot;http://hudson-ci.org/&quot;&gt;Hudson&lt;/a&gt;, Continuous Integration (CI) tool, and set the test code to be executed by using Selenium WebDriver and JUnit whenever source is committed in SVN. It takes about 2 seconds to test a browser. When a problem occurs, the problem is reported within 10 minutes.&lt;/p&gt;
&lt;p&gt;Hudson is commonly used in most development departments of NHN. By clicking &lt;strong&gt;Build Now&lt;/strong&gt;, users can view the test progress status. The report system provides a good environment for &quot;Fast Fail, Fast Feedback&quot;.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img height=&quot;423&quot; width=&quot;570&quot; alt=&quot;multi_browser_test_with_one_set_of_test_code.png&quot; src=&quot;/files/attach/images/220547/619/675/multi_browser_test_with_one_set_of_test_code.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;Figure 1: Multi-browser Test with One Set of Test Code.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Automating Firefox Test in Linux&lt;/h3&gt;
&lt;p&gt;Install &lt;b&gt;xserver&lt;/b&gt; package on Linux server with Hudson. Modify &lt;b&gt;run level&lt;/b&gt; to &lt;b&gt;5&lt;/b&gt; and then add the following setting to an account where CI runs in order to execute a browser in a text console.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;Xvfb :1 -screen 0 1024x768x24 &amp;gt; /home1/irteam/log/xvfb.log &amp;amp;&lt;/pre&gt;
&lt;p&gt;Install the latest Firefox version under the &lt;strong&gt;/usr/lib64&lt;/strong&gt; directory and replace the symbolic link. Now you can execute automation tests by running Firefox in Hudson.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=jxq4p8GXmK0&amp;amp;feature=g-upl&quot;&gt;Firefox Test Automation Demo Video&lt;/a&gt;&amp;nbsp;(Youtube)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Automating iPhone and iPad Tests in Mac OS X and Simulator&lt;/h3&gt;
&lt;p&gt;For tests, install Hudson on Mac OS X. It requires the iPhone or iPad Simulator, so you should install Xcode in advance.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://youtu.be/pyk58vRZuaU&quot;&gt;iPhone Test Automation Demo Video by Using Simulator&lt;/a&gt;&amp;nbsp;(Youtube)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Automating Internet Explorer and Opera Tests in Microsoft Windows&lt;/h3&gt;
&lt;p&gt;For more details on how to automate tests in Microsoft Windows, see &lt;a href=&quot;http://seleniumhq.org/docs/03_webdriver.html&quot;&gt;http://seleniumhq.org/docs/03_webdriver.html&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Why Is Browser Test Automation with Hudson Required?&lt;/h2&gt;
&lt;p&gt;If tests for several browsers are automatically executed whenever a source code is changed, it would clearly help developers to reduce bugs and keep the source tree that can be released anytime. In addition, QA time can be significantly reduced. There are many benefits of browser tests with Hudson, in addition to quality and cost. The following are the benefits of Hudson.&lt;/p&gt;
&lt;h3&gt;Keeping a Living Document and Building up Domain Knowledge&lt;/h3&gt;
&lt;p&gt;Whenever performing a test in Hudson, a document with illustration and description can be automatically generated by using Javadoc &lt;i&gt;package.htm&lt;/i&gt; in the test code. This document is called a &quot;&lt;b&gt;living document&lt;/b&gt;&quot; which is continuously updated and used by operators, developers and QAers for a variety of purposes such as hand-off of domain knowledge and preservation of revision history.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;img src=&quot;/files/attach/images/220547/619/675/javadoc_document_created_from_tests.png&quot; alt=&quot;javadoc_document_created_from_tests.png&quot; width=&quot;305&quot; height=&quot;304&quot; /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;Figure 2: Javadoc Document Created from Tests.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Visualizing Service Quality by Browser and Domain Knowledge&lt;/h3&gt;
&lt;p&gt;Anyone who clicks &lt;strong&gt;Build Now&lt;/strong&gt; in Hudson can check the service quality by browser.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;/files/attach/images/220547/619/675/verifying_mobile_news_service_in_firefox.png&quot; alt=&quot;verifying_mobile_news_service_in_firefox.png&quot; width=&quot;520&quot; height=&quot;304&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;Figure 3: Verifying Mobile News Service in Firefox.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For example, in some cases, the news service should be provided differently by day due to the service characteristics. It is very difficult to hand off all domain information to all related staffs. For example, the KOSPI/KOSDAQ indexes are not showed on the news on weekends but after the opening of the market on Monday morning. Anyone who clicks the &lt;strong&gt;Build Now&lt;/strong&gt; button can see the news service operation process by status.&lt;/p&gt;
&lt;p&gt;Tests with Hudson help users to hand off domain knowledge and build up the information as well as enhance quality and cut costs.&lt;/p&gt;
&lt;h3&gt;Best Practices and Examples&lt;/h3&gt;
&lt;p&gt;We once needed to update the version of Spring Framework used for the mobile news service. We modified the version information in the pom.xml file of Maven and performed the unit test and the integration test for web server source, and the result was no problem. Developers opened some new web pages by running the web server and checked that all of them were fine.&lt;/p&gt;
&lt;p&gt;However, there were more than 80 runtime errors. Fortunately, we had the multi-browser test in Hudson test, so we could fix all bugs and problems before releasing the service.&lt;/p&gt;
&lt;h2&gt;Selenium WebDriver&lt;/h2&gt;
&lt;h3&gt;Why Selenium WebDriver?&lt;/h3&gt;
&lt;p&gt;We use Selenium WebDriver because of its reliable quality through a version up process for a long time, and it is easy-to-use. The test is performed by running a browser, so it is easy to perform UI test by browser.&lt;/p&gt;
&lt;p&gt;The virtual browser test such as &lt;a href=&quot;http://htmlunit.sourceforge.net/&quot;&gt;HtmlUnit&lt;/a&gt; cannot support a variety of browser versions (it is limited to Firefox 3.6 and lower and Internet Explorer 8 and lower). In addition, it does not support mobile browsers. Therefore, I recommend Selenium WebDriver over HtmlUnit, even though Selenium WebDriver requires more effort.&lt;/p&gt;
&lt;p&gt;With Java API provided by Selenium WebDriver at the JUnit test code, you can easily produce the browser test code. &lt;b&gt;Code 1&lt;/b&gt; below is now used for the mobile news service test.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;Code 1. News Service Test Code.&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:java&quot;  title=&quot;&quot;&gt;@Test(timeout = 1000 * 60)
public void 뉴스홈에_최근3일_최종편집시간이_표시된다() {
    Driver.get(driver, &quot;http://m.news.naver.com/home.nhn&quot;);
    String expectedResult = &quot;최종편집&quot;;
    String result = Driver.getTextByClass(driver, &quot;last_update&quot;);
    assertThat(result.startsWith(expectedResult), is(true));
}&lt;/pre&gt;
&lt;h3&gt;Benefits of Selenium WebDriver&lt;/h3&gt;
&lt;p&gt;Benefits of Selenium WebDriver are various: it allows developers to produce the test code with a variety of languages (Java, C#, Python, PHP, Ruby, Perl) and provides fast feedback by using the implicit wait function. The following are the benefits of Selenium WebDriver.&lt;/p&gt;
&lt;h4&gt;Test by Specifying ID/Class/XPath&lt;/h4&gt;
&lt;p&gt;If considering HTML maintenance, ID is the best choice to specify HTML/CSS elements, the second best is Class, and finally, XPath. Selenium WebDriver supports all three.&lt;/p&gt;
&lt;h4&gt;Multi-browser Tests with One Set of Test Code&lt;/h4&gt;
&lt;p&gt;You can test several browsers with one set of test code because you can change the test browser by replacing WebDriver only. As of 2012, WebDriver supports Firefox, Internet Explorer, Chrome, Opera, iPhone Safari, iPad Safari and Android browsers.&amp;nbsp;&lt;b&gt;Code 2&lt;/b&gt; below is a part of code that creates WebDriver.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;Code 2. Example of Creating WebDriver.&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:java&quot;  title=&quot;&quot;&gt;public WebDriverFactory() throws Exception {
    String browsetype = TestConfigParam.getBrowseType();

    if (&quot;firefox&quot;.equals(browsetype)) {
        this.driver = new FirefoxDriver();
    } else if (&quot;chrome&quot;.equals(browsetype)) {
        this.driver = new ChromeDriver();
    } else if (&quot;ie&quot;.equals(browsetype)) {
        this.driver = new InternetExplorerDriver();
    } else if (&quot;iphone&quot;.equals(browsetype)) {
        this.driver = new IPhoneDriver();
    } else if (&quot;ie&quot;.equals(browsetype)) {
        this.driver = new InternetExplorerDriver();
    } else if (&quot;android&quot;.equals(browsetype)) {
        this.driver = new AndroidDriver();
    } else if (&quot;htmlunit&quot;.equals(browsetype)) {
        this.driver = new HtmlUnitDriver(false);
    } else {
        this.driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(Driver.TIMEOUT, TimeUnit.SECONDS);
    }
}&lt;/pre&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;So far, we have reviewed test automation applied to NAVER services. NHN has already automated tests for many services by using Hudson and Selenium WebDriver. I guess other companies have automated tests in the similar ways. Therefore, I hope this article to be a chance to communicate with others to create a Best Practice, rather than showing it for test methods.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;By Hyehwan Ahn, Software Engineer at News Service Development Team, NHN Corporation.&lt;/i&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;I am a developer who is interested in automation of routine tasks in releasing Alpha/Beta/QA/Distribution phases to improve efficiency.&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;</content>
                  <category term="test automation"/>
            <category term="browser"/>
            <category term="Hudson"/>
            <category term="Selenium"/>
            <category term="Selenium WebDrive"/>
            <category term="NHN"/>
            <category term="NAVER"/>
            
   </entry>
   <entry>
      <title>CUBRID ADO.NET Tutorials</title>
      <id>http://www.cubrid.org/251323</id>
      <published>2012-01-03T23:01:41-08:00</published>
      <updated>2013-06-11T05:50:40-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/251323"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/251323#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h3&gt;&lt;span style=&quot;font-size: 1.17em;&quot;&gt;Installation Instructions&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[CUBRID ADO.NET Driver Installation Guide]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;CUBRID ADO.NET TestCases&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[ADO.NET TestCases] - Find Out How To Use ADO.NET Driver with CUBRID&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Guides and Tutorials&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[A Simple Query/Retrieve Code] &lt;/li&gt;
&lt;li&gt;[Batch Commands]&lt;/li&gt;
&lt;li&gt;[Connection Options]&lt;/li&gt;
&lt;li&gt;[Connection String]&lt;/li&gt;
&lt;li&gt;[CUBRID Collections]&lt;/li&gt;
&lt;li&gt;[CUBRID LOBs]&lt;/li&gt;
&lt;li&gt;[CUBRID Metadata support]&lt;/li&gt;
&lt;li&gt;[CUBRID NHibernate Support]&lt;/li&gt;
&lt;li&gt;[CUBRID OIDs]&lt;/li&gt;
&lt;li&gt;[DataTable Support] &lt;/li&gt;
&lt;li&gt;[Transactions]&lt;/li&gt;
&lt;li&gt;[Working With Parameters]&lt;/li&gt;
&lt;li&gt;[CUBRID ADO.NET Error Codes and Messages]&lt;/li&gt;
&lt;li&gt;Sample&lt;br /&gt; 
&lt;ul&gt;
&lt;li&gt;[How to using the CUBRID ADO.NET Data Provider?]&lt;/li&gt;
&lt;li&gt;[Connect to CUBRID Database]&lt;/li&gt;
&lt;li&gt;[Manage Table: A sample using CUBRID Ado.net Driver] &lt;/li&gt;
&lt;li&gt;[CUBRID ADO.NET Schema Provider]&lt;/li&gt;
&lt;li&gt;[How to add multiple rows of data using CUBRID ADO.net Driver?]&lt;/li&gt;
&lt;li&gt;[How to calling Java Stored Function/Procedure(C#)?]&lt;/li&gt;
&lt;li&gt;[How to using ENUM data type in C#?]&lt;/li&gt;
&lt;li&gt;[Using DataSets in CUBRID ADO.NET]        
&lt;ul&gt;
&lt;li&gt;[Creating a DataSet]&lt;/li&gt;
&lt;li&gt;[Populating a DataSet from a DataAdapter]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[Modifying Data in CUBRID ADO.NET]    
&lt;ul&gt;
&lt;li&gt;[Updating Data Sources with Commands]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://msdn.microsoft.com/en-us/library/e80y5yhx%28v=vs.80%29.aspx&quot;&gt;ADO.NET MSDN Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href=&quot;/questions&quot;&gt;Questions and Answers&lt;/a&gt;&lt;/h3&gt;&lt;/div&gt;</content>
                  <category term="ado.net"/>
            <category term="driver"/>
            <category term="tutorial"/>
            
   </entry>
   <entry>
      <title>CUBRID Migration Toolkit Release Notes</title>
      <id>http://www.cubrid.org/223590</id>
      <published>2011-09-15T00:20:44-07:00</published>
      <updated>2013-06-10T09:45:43-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/223590"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/223590#comment"/>
      <author>
         <name>newpcraft</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;[CUBRID Migration Toolkit Release Note Summary|Release Note Summary]&lt;/p&gt;
&lt;h2&gt;CUBRID Migration Toolkit 2013.05 build 4227 (2013-06-07)&lt;/h2&gt;
&lt;h3&gt;New Feature&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3094&quot;&gt;TOOLS-3094&lt;/a&gt;] -         Users can re-open migration with migration history. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3132&quot;&gt;TOOLS-3132&lt;/a&gt;] -         Add &quot;Select migration type page&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3078&quot;&gt;TOOLS-3078&lt;/a&gt;] -         Support multi-reservation task setting &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3130&quot;&gt;TOOLS-3130&lt;/a&gt;] -         Should display the step number of the migration wizard for easy to know the current position. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3133&quot;&gt;TOOLS-3133&lt;/a&gt;] -         Improve data source selection of migration wizard &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3134&quot;&gt;TOOLS-3134&lt;/a&gt;] -         Improve destination selection page of the migration wizard &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3169&quot;&gt;TOOLS-3169&lt;/a&gt;] -         Spec-out cms ftp loaddb function &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3173&quot;&gt;TOOLS-3173&lt;/a&gt;] -         Fixed renewal CMT UI &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3190&quot;&gt;TOOLS-3190&lt;/a&gt;] -         If there are error records in a committed batch, try to insert them one by one &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2907&quot;&gt;TOOLS-2907&lt;/a&gt;] -         CMT editing SQL has an error when using LIMIT caluse &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3125&quot;&gt;TOOLS-3125&lt;/a&gt;] -         CSV importing error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3129&quot;&gt;TOOLS-3129&lt;/a&gt;] -         Whenever it shows the confirm dialog after clicking Next button. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3131&quot;&gt;TOOLS-3131&lt;/a&gt;] -         The notice widget goes wrong when the window is maximized. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3141&quot;&gt;TOOLS-3141&lt;/a&gt;] -         The checkbox of migration history is disable. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3143&quot;&gt;TOOLS-3143&lt;/a&gt;] -         After choose a wrong xml from &quot;Local mysql xml dump file&quot; to any target database, it will has an error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3144&quot;&gt;TOOLS-3144&lt;/a&gt;] -         File not found exception. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3149&quot;&gt;TOOLS-3149&lt;/a&gt;] -         Cannot migrate date,time,timestamp,datetime type. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3163&quot;&gt;TOOLS-3163&lt;/a&gt;] -         When the column name is not correct ,cannot go back to step3:Database Object Mapping. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3164&quot;&gt;TOOLS-3164&lt;/a&gt;] -         After &quot;Cancle reservation&quot; ,it is still enable. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3165&quot;&gt;TOOLS-3165&lt;/a&gt;] -         It will migrate un-selected view/serial. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3171&quot;&gt;TOOLS-3171&lt;/a&gt;] -         Argument cannot be null &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3174&quot;&gt;TOOLS-3174&lt;/a&gt;] -         Can&apos;t find the source SQL schema &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3175&quot;&gt;TOOLS-3175&lt;/a&gt;] -         Cannot choose SQL when migrate xml to CUBRID. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3176&quot;&gt;TOOLS-3176&lt;/a&gt;] -         Target column will change to Data type. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3177&quot;&gt;TOOLS-3177&lt;/a&gt;] -         &quot;Max count&quot; is disable. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3178&quot;&gt;TOOLS-3178&lt;/a&gt;] -         &apos;One table one file&apos; option will be lost. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3179&quot;&gt;TOOLS-3179&lt;/a&gt;] -         The migration wizard page cannot show completely. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3180&quot;&gt;TOOLS-3180&lt;/a&gt;] -         Cannot use the &quot;open migration scripts files&quot; on the menu bar. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3181&quot;&gt;TOOLS-3181&lt;/a&gt;] -         Change separating character  ,it will have an error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3183&quot;&gt;TOOLS-3183&lt;/a&gt;] -         java.lang.NullPointerException &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3186&quot;&gt;TOOLS-3186&lt;/a&gt;] -         After refresh database ,it is still show &quot;table not in database&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3187&quot;&gt;TOOLS-3187&lt;/a&gt;] -         When not start CUBRID service ,the error message is not correct. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3194&quot;&gt;TOOLS-3194&lt;/a&gt;] -         Cannot delete migration history. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3195&quot;&gt;TOOLS-3195&lt;/a&gt;] -         The error message of Charset is not correct. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3197&quot;&gt;TOOLS-3197&lt;/a&gt;] -         Start migration failed &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3198&quot;&gt;TOOLS-3198&lt;/a&gt;] -         The content of index and schema file is reverse. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3199&quot;&gt;TOOLS-3199&lt;/a&gt;] -         jxl.read.biff.BiffException: Unable to recognize OLE stream &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3205&quot;&gt;TOOLS-3205&lt;/a&gt;] -         The confirm dialog will show twice. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3207&quot;&gt;TOOLS-3207&lt;/a&gt;] -         The input count is not correct. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;margin-right: 0px;&quot; dir=&quot;ltr&quot;&gt;CUBRID Migration Toolkit 2013.03 patch 2 build 4168 (2013-04-29)&lt;/h2&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-3000&quot;&gt;TOOLS-3000&lt;/a&gt;] - csv importing bug&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2968&quot;&gt;TOOLS-2968&lt;/a&gt;] - Migration Console Tool Improvement: Only fetch the schemas in configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;margin-right: 0px;&quot; dir=&quot;ltr&quot;&gt;CUBRID Migration Toolkit 2013.03 patch 1 build 4167 (2013-04-19)&lt;/h2&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2951&quot;&gt;TOOLS-2951&lt;/a&gt;] - CHAR/VARCHAR length problem when you migrate MySQL,Oracle to CUBRID&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2950&quot;&gt;TOOLS-2950&lt;/a&gt;] -         Performance problem when it export table data on CUBRID 8.2.x, 8.3.x&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;margin-right: 0px;&quot; dir=&quot;ltr&quot;&gt;CUBRID Migration Toolkit 2013.03 build 4161 (2013-04-02)&lt;/h2&gt;
&lt;h3&gt;1.New Feature&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-109&quot;&gt;TOOLS-109&lt;/a&gt;] -         CMT supports *.sql format and *.csv format &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2703&quot;&gt;TOOLS-2703&lt;/a&gt;] -         Migration step 3: support import .sql files in SQL tables management view &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2748&quot;&gt;TOOLS-2748&lt;/a&gt;] -         Add data files&apos; max record count when exporting to files &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2.Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1174&quot;&gt;TOOLS-1174&lt;/a&gt;] -         Improve the report information of Migration console tool &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2027&quot;&gt;TOOLS-2027&lt;/a&gt;] -         Cannot create database on old version of CUBRID databases &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2623&quot;&gt;TOOLS-2623&lt;/a&gt;] -         User defined SQL in table mapping view supports multi-SQL statements. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2633&quot;&gt;TOOLS-2633&lt;/a&gt;] -         Auto check target CUBRID database is running in HA mode. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2637&quot;&gt;TOOLS-2637&lt;/a&gt;] -         Auto refresh target DB after online migration &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2687&quot;&gt;TOOLS-2687&lt;/a&gt;] -         Move SQL table manager view to the top mapping view. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2722&quot;&gt;TOOLS-2722&lt;/a&gt;] -         Users can choose starting migration now or setting a reservation after migration wizard finished. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2872&quot;&gt;TOOLS-2872&lt;/a&gt;] -         When migrate csv to cubrid and don&apos;t migrate the first row, please change the tartget column to same name with column name. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1207&quot;&gt;TOOLS-1207&lt;/a&gt;] -         Unclear CMT preferences &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3.Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1164&quot;&gt;TOOLS-1164&lt;/a&gt;] -         Migrate blob data type from mysql to cubrid, some blob cannot migrate to CUBRID8.4.2.0027 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1940&quot;&gt;TOOLS-1940&lt;/a&gt;] -         Cannot migrate partition table from mysql to cubrid. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2412&quot;&gt;TOOLS-2412&lt;/a&gt;] -         The CMT check the invalid table name still when I don&apos;t select the table. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2442&quot;&gt;TOOLS-2442&lt;/a&gt;] -         Migrating data from oracle to cubrid can&apos;t be success fully. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2735&quot;&gt;TOOLS-2735&lt;/a&gt;] -         Sometimes error &quot;Column xxx in table xxx has no mapping column&quot; will be raised in SQL table management &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2855&quot;&gt;TOOLS-2855&lt;/a&gt;] -         Shoud be shown the sub menu items when the user click &quot;New Migration&quot; button. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2863&quot;&gt;TOOLS-2863&lt;/a&gt;] -         When migrate patition table to cubrid, it will pop error when the partition column is keyword. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2864&quot;&gt;TOOLS-2864&lt;/a&gt;] -         When copy the history of console to CMT/report directory, the record row display in red. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2865&quot;&gt;TOOLS-2865&lt;/a&gt;] -         There is no error message when multi-SQL statement is not correct. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2866&quot;&gt;TOOLS-2866&lt;/a&gt;] -         Chineses will be shown as &quot;unrecognizable Code&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2867&quot;&gt;TOOLS-2867&lt;/a&gt;] -         Error &quot;Column xxx in table xxx has no mapping column&quot; will be raised in SQL table management. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2868&quot;&gt;TOOLS-2868&lt;/a&gt;] -         When migrate sql ,the charset hasn&apos;t work &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2869&quot;&gt;TOOLS-2869&lt;/a&gt;] -         When click back, it will pop nullpointerexception &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2870&quot;&gt;TOOLS-2870&lt;/a&gt;] -         When new script, advanced settings hasn&apos;t been saved. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2871&quot;&gt;TOOLS-2871&lt;/a&gt;] -         When migrate the csv file, the column name isn&apos;t clear &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2873&quot;&gt;TOOLS-2873&lt;/a&gt;] -         When migrate from csv to CUBRID, it will pop NullPointerException &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2874&quot;&gt;TOOLS-2874&lt;/a&gt;] -         The timezone cannot display all the word. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2875&quot;&gt;TOOLS-2875&lt;/a&gt;] -         After change column data type and don&apos;t choose &quot;import first row&quot;, it will display error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2876&quot;&gt;TOOLS-2876&lt;/a&gt;] -         After modify data type, modify &quot;import first row&quot;, the data type has been changed again &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2877&quot;&gt;TOOLS-2877&lt;/a&gt;] -         Cannot import xls and xlsx &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2878&quot;&gt;TOOLS-2878&lt;/a&gt;] -         When migrate from csv to CUBRID, set other character to null, it doesn&apos;t work. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2882&quot;&gt;TOOLS-2882&lt;/a&gt;] -         Error in Import SQL tables management view. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2883&quot;&gt;TOOLS-2883&lt;/a&gt;] -         There is no error window when import wrong SQL tables. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2884&quot;&gt;TOOLS-2884&lt;/a&gt;] -         When source database have unique constraint, target database still can import repeated values. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2889&quot;&gt;TOOLS-2889&lt;/a&gt;] -         When migrate csv to cubrid, there are two same target column, the  warning message isn&apos;t right. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2890&quot;&gt;TOOLS-2890&lt;/a&gt;] -         Migrate csv from CM, then migrate to CUBRID, it cannot be migrated successfully. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2891&quot;&gt;TOOLS-2891&lt;/a&gt;] -         When migrate xml to CUBRID, add sql on step3, do migration, it cannot migrate &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2892&quot;&gt;TOOLS-2892&lt;/a&gt;] -         After run migrate from csv,mysql to CUBRID via console, it hasn&apos;t genarated report. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2893&quot;&gt;TOOLS-2893&lt;/a&gt;] -         After migrate from csv to CUBRID via console, the history display error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2894&quot;&gt;TOOLS-2894&lt;/a&gt;] -         In script, it hasn&apos;t save the import sqls. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2896&quot;&gt;TOOLS-2896&lt;/a&gt;] -         When migrate from import sql to CUBRID via console, the record in history isn&apos;t right. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2897&quot;&gt;TOOLS-2897&lt;/a&gt;] -         Goto step2, choose csv, click csv setting, the defult values isn&apos;t right. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2899&quot;&gt;TOOLS-2899&lt;/a&gt;] -         Error with settings when import csv file. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;margin-right: 0px;&quot; dir=&quot;ltr&quot;&gt;CUBRID Migration Toolkit 8.4.3.201301 build 4097 (2013-02-07)&lt;/h2&gt;
&lt;h3&gt;1. [New Features of CMT 8.4.3.201301|Introduce New Features]&lt;/h3&gt;
&lt;h3&gt;2. New Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2037&quot;&gt;TOOLS-2037&lt;/a&gt;] -         And add perforence settings to migration wizard &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2399&quot;&gt;TOOLS-2399&lt;/a&gt;] -         CMT can&apos;t connect oracle RAC &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2572&quot;&gt;TOOLS-2572&lt;/a&gt;] -         Export XLS format feature &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2579&quot;&gt;TOOLS-2579&lt;/a&gt;] -         Supporting definiting column default as an expression in wizard step 3. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2485&quot;&gt;TOOLS-2485&lt;/a&gt;] -         Support CLOB to Varchar migration in Oracle &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2591&quot;&gt;TOOLS-2591&lt;/a&gt;] -         Auto add connection parameters to local DB list if the connection parameter is not avaliable. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2601&quot;&gt;TOOLS-2601&lt;/a&gt;] -         When select database unload in step2, check-box &apos;Replace Table&apos; is out of action in step3. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2172&quot;&gt;TOOLS-2172&lt;/a&gt;] -         ERROR:Too few input host variables provided &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2435&quot;&gt;TOOLS-2435&lt;/a&gt;] -         Existing a correct table A1 and correct view A1, the CMT show error duplicate table or view. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2502&quot;&gt;TOOLS-2502&lt;/a&gt;] -         Can&apos;t create index when do MySQL to CUBRID migration &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2580&quot;&gt;TOOLS-2580&lt;/a&gt;] -         Handling Mysql &quot;UNKNOWN&quot; data type &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2598&quot;&gt;TOOLS-2598&lt;/a&gt;] -         If changed File Repository in Step 2, the type of Schema file and index,data will changed into xls. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2599&quot;&gt;TOOLS-2599&lt;/a&gt;] -         Nonsupport objects list twice. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2600&quot;&gt;TOOLS-2600&lt;/a&gt;] -         In step3, Rename the target table name.It doesn&apos;t work. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2602&quot;&gt;TOOLS-2602&lt;/a&gt;] -         When import sql in step 3,files of type is .xls/.xlsx, it should be .sql. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2603&quot;&gt;TOOLS-2603&lt;/a&gt;] -         When copy migration script,the Enter key doesn&apos;t work. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2615&quot;&gt;TOOLS-2615&lt;/a&gt;] -         In step3, FK&apos;s icon is lost. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;margin-right: 0px;&quot; dir=&quot;ltr&quot;&gt;CUBRID Migration Toolkit 8.4.3.201212 build 4047 (2012-12-31)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.2.2.x ~ CUBRID 8.4.3.0146&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;New Feature&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2212&quot;&gt;TOOLS-2212&lt;/a&gt;] -         CMT task Reservation &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2294&quot;&gt;TOOLS-2294&lt;/a&gt;] -         Error records can be written into some local files &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2295&quot;&gt;TOOLS-2295&lt;/a&gt;] -         Import SQL scripts to Online CUBRID databases &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2328&quot;&gt;TOOLS-2328&lt;/a&gt;] -         Change the order of table columns &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2387&quot;&gt;TOOLS-2387&lt;/a&gt;] -         User defined SQL in the table mapping view. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2211&quot;&gt;TOOLS-2211&lt;/a&gt;] -         Add a progress dialog before starting migration process. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2229&quot;&gt;TOOLS-2229&lt;/a&gt;] -         If user has closed CM/CQB/CMT in full screen, next time open window in full screen &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2236&quot;&gt;TOOLS-2236&lt;/a&gt;] -         Improve performance during fetching meta data on CUBRID &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2237&quot;&gt;TOOLS-2237&lt;/a&gt;] -         Improve performance to execute COUNT(*) sql without derived query &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2327&quot;&gt;TOOLS-2327&lt;/a&gt;] -         Improve fetching data performance when cmt use online database mode of the source database &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2331&quot;&gt;TOOLS-2331&lt;/a&gt;] -         rename script supporting enter key. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2397&quot;&gt;TOOLS-2397&lt;/a&gt;] -         The CMT won&apos;t load all tables and views if there is incorrect or invalid view in views of oracle database. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2401&quot;&gt;TOOLS-2401&lt;/a&gt;] -         The inputed incorrect time values &quot;000-000 0:0&quot;, &quot;0-000 000:0&quot;,&quot;55-66 99:99&quot;  were converted to other values and have no error message. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2402&quot;&gt;TOOLS-2402&lt;/a&gt;] -         Add the start time with crontab format unsuccessfully and have no error message. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2414&quot;&gt;TOOLS-2414&lt;/a&gt;] -         Console migration can be supported MySQL2CUBRID customized setting. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2417&quot;&gt;TOOLS-2417&lt;/a&gt;] -         The start time of crontab format should be limited. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2418&quot;&gt;TOOLS-2418&lt;/a&gt;] -         When migratio fail,decimal type data isn&apos;t exact in errorsqls &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2419&quot;&gt;TOOLS-2419&lt;/a&gt;] -         When migratio fail,some decimal points is redundant &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2422&quot;&gt;TOOLS-2422&lt;/a&gt;] -         Clicking editing and deleting button have no response without selecting SQL item in Step3. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2423&quot;&gt;TOOLS-2423&lt;/a&gt;] -         The adding and editing SQL label should include only &quot;SELECT sql script&quot;. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2426&quot;&gt;TOOLS-2426&lt;/a&gt;] -         Import SQL File(s) doesn&apos;t import sql in order. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2433&quot;&gt;TOOLS-2433&lt;/a&gt;] -         CMT can&apos;t connect to CUBRID 8.3.1.2003 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2438&quot;&gt;TOOLS-2438&lt;/a&gt;] -         Even I didn&apos;t select view ,it also check view in Step 3. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2439&quot;&gt;TOOLS-2439&lt;/a&gt;] -         Doesn&apos;t list the information of Database in &apos;Configuration History&apos; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2440&quot;&gt;TOOLS-2440&lt;/a&gt;] -         The  PARTITION table from MYSQL to CUBRID is wrong. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2441&quot;&gt;TOOLS-2441&lt;/a&gt;] -         When I open a existed migration script with including custom SQL and change  source to mysql xml, the errors about SQL show and the SQL items of left list can&apos;t be delete. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2451&quot;&gt;TOOLS-2451&lt;/a&gt;] -         It shouldn&apos;t create partition tables. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;margin-right: 0px;&quot; dir=&quot;ltr&quot;&gt;CUBRID Migration Toolkit 8.4.3.201211 build 4000 (2012-11-16)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.2.2.x ~ CUBRID 8.4.3.0146&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2211&quot;&gt;TOOLS-2211&lt;/a&gt;] -         Add a progress dialog before starting migration process &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2234&quot;&gt;TOOLS-2234&lt;/a&gt;] -         CMT console support more parameters &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2237&quot;&gt;TOOLS-2237&lt;/a&gt;] -         Improve performance to execute COUNT(*) sql without derived query. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2236&quot;&gt;TOOLS-2236&lt;/a&gt;] -         Improve performance during fetching meta data on CUBRID. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;margin-right: 0px;&quot; dir=&quot;ltr&quot;&gt;CUBRID Migration Toolkit 8.4.1.201211 build 3095 (2012-11-09)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.2.2.x ~ CUBRID 8.4.1.7007&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;New Feature&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2100&quot;&gt;TOOLS-2100&lt;/a&gt;] -         Using Excel file to import SQL tables in migration wizard &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2105&quot;&gt;TOOLS-2105&lt;/a&gt;] -         Export source database into CSV/SQL files &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2190&quot;&gt;TOOLS-2190&lt;/a&gt;] -         Support reuse_oid option at creating cubrid tables &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2120&quot;&gt;TOOLS-2120&lt;/a&gt;] -         Support for the target HA database &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2138&quot;&gt;TOOLS-2138&lt;/a&gt;] -         When import sql, please add process bar. Or it like hasn&apos;t import. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2139&quot;&gt;TOOLS-2139&lt;/a&gt;] -         When migrate function sql, it isn&apos;t good &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2180&quot;&gt;TOOLS-2180&lt;/a&gt;] -         Cannot migrate to HA master via offline. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2085&quot;&gt;TOOLS-2085&lt;/a&gt;] -         Handle target file format in different OS in Migration console &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1153&quot;&gt;TOOLS-1153&lt;/a&gt;] -         After online migration, the shared become to default. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2075&quot;&gt;TOOLS-2075&lt;/a&gt;] -         CMT can&apos;t connect the server with CUBRID JDBC 9.0.0 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2127&quot;&gt;TOOLS-2127&lt;/a&gt;] -         When export from mysql to csv, the datatime doesn&apos;t good. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2131&quot;&gt;TOOLS-2131&lt;/a&gt;] -         After add online database in step2, it cannot click next &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2133&quot;&gt;TOOLS-2133&lt;/a&gt;] -         When change the xml to error xml, it cannot import and haven&apos;t any warning. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2136&quot;&gt;TOOLS-2136&lt;/a&gt;] -         When migrate sql to target database and choose replace, it will still  pop the table exist. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2137&quot;&gt;TOOLS-2137&lt;/a&gt;] -         When import sqls from excel, some sqls will be lost &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2140&quot;&gt;TOOLS-2140&lt;/a&gt;] -         After delete sqls, click sql table, it will pop error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2141&quot;&gt;TOOLS-2141&lt;/a&gt;] -         The cancel doesn&apos;t work in preference. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2143&quot;&gt;TOOLS-2143&lt;/a&gt;] -         The function of save current tab and save all of Migration Report has problem &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2145&quot;&gt;TOOLS-2145&lt;/a&gt;] -         When there are two sqls which has different sqlid and same sql, it hasn&apos;t any warning. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2146&quot;&gt;TOOLS-2146&lt;/a&gt;] -         When run CMT on linux by vnc, it will pop JDBC driver can&apos;t be null &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2150&quot;&gt;TOOLS-2150&lt;/a&gt;] -         When migrate database to sql, and choose one table one file, the file is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2153&quot;&gt;TOOLS-2153&lt;/a&gt;]  -         When migrate one database to file, then back to step1, change  database, goto step2, the file name hasn&apos;t been changed. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2154&quot;&gt;TOOLS-2154&lt;/a&gt;] -         When migrate database to sql, if the column name has blank, the sql isn&apos;t right. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2158&quot;&gt;TOOLS-2158&lt;/a&gt;] -         When migrate bigint to csv, the data has been changed. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2162&quot;&gt;TOOLS-2162&lt;/a&gt;] -         When migrate float type from oracle to sql, the data isn&apos;t right. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2163&quot;&gt;TOOLS-2163&lt;/a&gt;] -         When migrate interval day to second to sql, the data isn&apos;t right. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2170&quot;&gt;TOOLS-2170&lt;/a&gt;] -         Multiset(INTEGER) migration from 8.4.1.7007 to9.0.0.0478 has error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2171&quot;&gt;TOOLS-2171&lt;/a&gt;] -         After migrate from online to offline, the script is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2178&quot;&gt;TOOLS-2178&lt;/a&gt;] -         When there are two index which orders are different, one will cannot be migrated. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2182&quot;&gt;TOOLS-2182&lt;/a&gt;] -         When migrate from cubrid to cubrid, change the source database, goto step2,the database display error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2185&quot;&gt;TOOLS-2185&lt;/a&gt;] -         Error:Semantic: Cannot coerce host var to type numeric &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2187&quot;&gt;TOOLS-2187&lt;/a&gt;] -         When migrate auto increment from CUBRID8.4.1.7007 to CUBRID9.0.0, the current value is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2191&quot;&gt;TOOLS-2191&lt;/a&gt;] -         When migrate reuseoid, it cannot migrated. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2195&quot;&gt;TOOLS-2195&lt;/a&gt;] -         Not Null lose &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2196&quot;&gt;TOOLS-2196&lt;/a&gt;] -         JavaNullPointException &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2198&quot;&gt;TOOLS-2198&lt;/a&gt;] -         CLONE - Multiset(INTEGER) migration from 8.4.1.7007 to9.0.0.0478 has error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2200&quot;&gt;TOOLS-2200&lt;/a&gt;] -         The data of Set type has error after migration &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2203&quot;&gt;TOOLS-2203&lt;/a&gt;] -         When migrate from CUBRID8.4.0 to CUBRID8.4.1, the values are error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2206&quot;&gt;TOOLS-2206&lt;/a&gt;] -         Windows:NullPointerException &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2207&quot;&gt;TOOLS-2207&lt;/a&gt;] -         When migrate one table which has two fk, one fk will be lost &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2209&quot;&gt;TOOLS-2209&lt;/a&gt;] -         When only migrate data,  don&apos;t migrate schema, if the schema has error, it will pop warning too.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;margin-right: 0px;&quot; dir=&quot;ltr&quot;&gt;CUBRID Migration Toolkit 8.4.1.201209 build 3051 (2012-09-19)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.2.2.x ~ CUBRID 8.4.1.6004&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1323&quot;&gt;TOOLS-1323&lt;/a&gt;] - CMT UI improvements&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-781&quot;&gt;TOOLS-781&lt;/a&gt;] - There isn&apos;t warning in partition tab in step4.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1324&quot;&gt;TOOLS-1324&lt;/a&gt;] - Support n:1 migration&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1927&quot;&gt;TOOLS-1927&lt;/a&gt;] - When click table name, please display the General tab.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1934&quot;&gt;TOOLS-1934&lt;/a&gt;] - When there is error view, it will pop error, and cannot delete the error view&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1950&quot;&gt;TOOLS-1950&lt;/a&gt;] - Suggest put PK to table UI&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1951&quot;&gt;TOOLS-1951&lt;/a&gt;] - Suggest data, create, replace will be choosed default in step3.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1958&quot;&gt;TOOLS-1958&lt;/a&gt;] - Now cannot migrate many sql to one table.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1960&quot;&gt;TOOLS-1960&lt;/a&gt;] - When hasn&apos;t choose any column, click default X1, and multiplicate, it hasn&apos;t any warning.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1963&quot;&gt;TOOLS-1963&lt;/a&gt;] - When the data type aren&apos;t same for two columns of two table, the data type is used the column of target table &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1964&quot;&gt;TOOLS-1964&lt;/a&gt;] - When don&apos;t choose migrate data, only choose create and replace. The progress isn&apos;t good&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1969&quot;&gt;TOOLS-1969&lt;/a&gt;] - When migrate to file, please set the file name to dbname_*&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1973&quot;&gt;TOOLS-1973&lt;/a&gt;] - Please add pk mark in column of source table.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1975&quot;&gt;TOOLS-1975&lt;/a&gt;] - Now it doesn&apos;t display the column of sql statement.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1997&quot;&gt;TOOLS-1997&lt;/a&gt;] - The error warning isn&apos;t clearly.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2012&quot;&gt;TOOLS-2012&lt;/a&gt;] - Now  change the jdbc and file path, we need change many directory.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2024&quot;&gt;TOOLS-2024&lt;/a&gt;] - When there are warning for replace, and the warning for error length. the pop order isn&apos;t good.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2025&quot;&gt;TOOLS-2025&lt;/a&gt;] - Console need verify absolute matching for jdbc directory.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1885&quot;&gt;TOOLS-1885&lt;/a&gt;] - Create Window menu and add maximize and minimize actions in CUBRID Tools for Mac&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-450&quot;&gt;TOOLS-450&lt;/a&gt;] - When change the data type length, it will be error&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-573&quot;&gt;TOOLS-573&lt;/a&gt;] - After migrated, pk has been changed.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1039&quot;&gt;TOOLS-1039&lt;/a&gt;] - The message is error when migrate one sql to the target database which has one view which name is same as the sql name.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1150&quot;&gt;TOOLS-1150&lt;/a&gt;] - When migration partition from CUBRID to CUBRID, there are error&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1153&quot;&gt;TOOLS-1153&lt;/a&gt;] - After online migration, the shared become to default.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1613&quot;&gt;TOOLS-1613&lt;/a&gt;] - CMT edit SQL table bugs&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1838&quot;&gt;TOOLS-1838&lt;/a&gt;] - Had folders of duplicated meaning on installed directory&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1929&quot;&gt;TOOLS-1929&lt;/a&gt;] - When choose migrate table in table UI, cannot choose pk, but can choose fk.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1930&quot;&gt;TOOLS-1930&lt;/a&gt;] - When input error password, it can pass in offline UI&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1933&quot;&gt;TOOLS-1933&lt;/a&gt;] - When there are two table which names are same, the logs is error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1935&quot;&gt;TOOLS-1935&lt;/a&gt;] - After delete error view, hasn&apos;t refresh the data of source db.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1936&quot;&gt;TOOLS-1936&lt;/a&gt;] - The fk name of oracle has been lost. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1937&quot;&gt;TOOLS-1937&lt;/a&gt;] - When do migration without fk, it will pop nullpointer&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1938&quot;&gt;TOOLS-1938&lt;/a&gt;] - When migrate to file, and choose export to one file for table.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1939&quot;&gt;TOOLS-1939&lt;/a&gt;] - When migration from oracle by console, haven&apos;t choose sequencese,but migrate it.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1941&quot;&gt;TOOLS-1941&lt;/a&gt;] - Cannot migrate xml file successfully.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1944&quot;&gt;TOOLS-1944&lt;/a&gt;] - When change table name, then click other place, some target column will be lost&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1945&quot;&gt;TOOLS-1945&lt;/a&gt;] - When migrate two tables to one table, and the two tables columns aren&apos;t same, the data cannot be migrated.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1946&quot;&gt;TOOLS-1946&lt;/a&gt;] - When assign the target column, it will add not null attribute default.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1947&quot;&gt;TOOLS-1947&lt;/a&gt;] - The exit button is error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1948&quot;&gt;TOOLS-1948&lt;/a&gt;] - Now set trim column values for one column, all the columns of database will be choosed.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1949&quot;&gt;TOOLS-1949&lt;/a&gt;] - When migrate partition table and don&apos;t choose the column of partition, it will failed.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1952&quot;&gt;TOOLS-1952&lt;/a&gt;] - When change sql statement, it cannot change target name.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1953&quot;&gt;TOOLS-1953&lt;/a&gt;] - When migrate two table to one table which has pk, it will create pk twice.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1954&quot;&gt;TOOLS-1954&lt;/a&gt;] - When migrate two partition table to one table, the partition hasn&apos;t been merged.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1955&quot;&gt;TOOLS-1955&lt;/a&gt;] - Cannot migrate some sql statement with different columns to one table&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1956&quot;&gt;TOOLS-1956&lt;/a&gt;] - The progress of migration is error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1959&quot;&gt;TOOLS-1959&lt;/a&gt;] - Now the column in advanced is all tables. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1961&quot;&gt;TOOLS-1961&lt;/a&gt;] - The PK is easy to be lost.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1962&quot;&gt;TOOLS-1962&lt;/a&gt;] - The create tables in total UI and in table UI aren&apos;t identical.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1965&quot;&gt;TOOLS-1965&lt;/a&gt;] - Click clear all ,hasn&apos;t deleted the choose of source table column.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1966&quot;&gt;TOOLS-1966&lt;/a&gt;] - When click the default X1, the data type will be become to uppercase.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1968&quot;&gt;TOOLS-1968&lt;/a&gt;] - When migrate partition table, don&apos;t create partition, it will fail.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1970&quot;&gt;TOOLS-1970&lt;/a&gt;] - The summary of report is error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1971&quot;&gt;TOOLS-1971&lt;/a&gt;] - When migrate from history which only migrate sql statement, the column name will be choosed too.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1972&quot;&gt;TOOLS-1972&lt;/a&gt;] - The db records isn&apos;t right, when migrate some tables.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1974&quot;&gt;TOOLS-1974&lt;/a&gt;] - After migration, the index order become to error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1976&quot;&gt;TOOLS-1976&lt;/a&gt;] - When migrate sequence of oracle, the max value will be lost&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1977&quot;&gt;TOOLS-1977&lt;/a&gt;] - When there are two tables which names are same, it will pop fk cannot found &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1978&quot;&gt;TOOLS-1978&lt;/a&gt;] - When migrate from online to file by console bat, the setting is error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1981&quot;&gt;TOOLS-1981&lt;/a&gt;] - The reverse of index hasn&apos;t work&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1983&quot;&gt;TOOLS-1983&lt;/a&gt;] - When input error sql, then change to right sql, it will be pop error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1984&quot;&gt;TOOLS-1984&lt;/a&gt;] - The replace cannot be saved when click other tree node.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1985&quot;&gt;TOOLS-1985&lt;/a&gt;] - When only migrate data, it will pop there isn&apos;t the table in target db.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1986&quot;&gt;TOOLS-1986&lt;/a&gt;] - When there is colon in replaced data and be replaced data, it cannot be replaced.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1987&quot;&gt;TOOLS-1987&lt;/a&gt;] - When click migrate data, the create pk option will be choosed.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1991&quot;&gt;TOOLS-1991&lt;/a&gt;] - Cannot loaddb from the file by  migrated.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1992&quot;&gt;TOOLS-1992&lt;/a&gt;] - When migrate inf from cubrid8.4.1.2003 to cubrid 8.4.1.6004, it will be error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1993&quot;&gt;TOOLS-1993&lt;/a&gt;] - When choose create table in table UI, the partition hasn&apos;t been choosed.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1995&quot;&gt;TOOLS-1995&lt;/a&gt;] - The percent of migration has error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1996&quot;&gt;TOOLS-1996&lt;/a&gt;] - The one table one file hasn&apos;t been saved in migration history&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1998&quot;&gt;TOOLS-1998&lt;/a&gt;] - After delete blank space of column, it will add one record. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1999&quot;&gt;TOOLS-1999&lt;/a&gt;] - If the capital word of table name is number, it cannot be replaced.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2000&quot;&gt;TOOLS-2000&lt;/a&gt;] - When migrate big database, it will not responsed.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2001&quot;&gt;TOOLS-2001&lt;/a&gt;] - Cannot migrate from online to online&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2002&quot;&gt;TOOLS-2002&lt;/a&gt;] - When do migration for big database, some data will be lost.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2003&quot;&gt;TOOLS-2003&lt;/a&gt;] - Nullable and unique option hasn&apos;t been worked.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2005&quot;&gt;TOOLS-2005&lt;/a&gt;] - According some order, The UI will be error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2011&quot;&gt;TOOLS-2011&lt;/a&gt;] - When click create table ,hasn&apos;t choose fk, index&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2013&quot;&gt;TOOLS-2013&lt;/a&gt;] - When migrate to file and one table one file, the report isn&apos;t right.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2014&quot;&gt;TOOLS-2014&lt;/a&gt;] - When change fk name, it will add some column.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2015&quot;&gt;TOOLS-2015&lt;/a&gt;] - The warning cannot see which table is error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2016&quot;&gt;TOOLS-2016&lt;/a&gt;] - The index warning isn&apos;t good  when migrate from oracle to cubrid&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2017&quot;&gt;TOOLS-2017&lt;/a&gt;] - Cannot import the blob data to varchar&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2018&quot;&gt;TOOLS-2018&lt;/a&gt;] - Now choose create table in tables UI, it hasn&apos;t choose fk.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2019&quot;&gt;TOOLS-2019&lt;/a&gt;] - When click close in warning, the UI needn&apos;t goto next UI.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2020&quot;&gt;TOOLS-2020&lt;/a&gt;] - Now merge table ,it will pop error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2022&quot;&gt;TOOLS-2022&lt;/a&gt;] - When migrate two table to one table which is in target DB, the warning isn&apos;t good.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2023&quot;&gt;TOOLS-2023&lt;/a&gt;] - When migrate to old version than CUBRID8.4.1, we need cmt server, suggest give related warning.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2026&quot;&gt;TOOLS-2026&lt;/a&gt;] - After change CMT directory, double click history in CMT, it will pop error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2028&quot;&gt;TOOLS-2028&lt;/a&gt;] - When choose fk which is on update cascade on total UI, the warning doesn&apos;t display.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-2031&quot;&gt;TOOLS-2031&lt;/a&gt;] - When use the Offline File repository, if it has already selected a database on jdbc tab, it will be fetched schema information.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;margin-right: 0px;&quot; dir=&quot;ltr&quot;&gt;CUBRID Migration Toolkit 8.4.1.201207 build 2039 (2012-08-06)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.2.2.x ~ CUBRID 8.4.1.2039&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1630&quot;&gt;TOOLS-1630&lt;/a&gt;] - The default CUBRID broker port should be a 33000 not a 30000.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1629&quot;&gt;TOOLS-1629&lt;/a&gt;]  - If you rename a target table name on the edit sql of the migration  wizard step 3, it may be caused errors when it is migrating. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1628&quot;&gt;TOOLS-1628&lt;/a&gt;] - Can&apos;t see full sql if it has line feed character. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1627&quot;&gt;TOOLS-1627&lt;/a&gt;] - Can&apos;t use a sql with group by clause &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1626&quot;&gt;TOOLS-1626&lt;/a&gt;] - Problem of XpressEngine&apos;s index name after migration &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1625&quot;&gt;TOOLS-1625&lt;/a&gt;] - Problem of the file separator on selected folder name &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1206&quot;&gt;TOOLS-1206&lt;/a&gt;] - CMT for Mac: Nothing happens when &quot;Preferences&quot; or &quot;About CUBRID Migration Toolkit&quot; menus are clicked. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1631&quot;&gt;TOOLS-1631&lt;/a&gt;] - The confirmation message should be needed when you click &quot;Run script&quot; on the context menu of the left tree.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;margin-right: 0px;&quot; dir=&quot;ltr&quot;&gt;CUBRID Migration Toolkit 8.4.1.201205&amp;nbsp;build 2029 (2012-05-31)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.2.2.x ~ CUBRID 8.4.1.2032&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;New Feature&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-840&quot;&gt;TOOLS-840&lt;/a&gt;] -         CMT Console tool &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-910&quot;&gt;TOOLS-910&lt;/a&gt;] -         Support BLOB to Varchar migration &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-950&quot;&gt;TOOLS-950&lt;/a&gt;] -         Add total information and message area control function of migration progress monitor &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-952&quot;&gt;TOOLS-952&lt;/a&gt;] -          A dialog which can make changing the length of the columns which data type  are char more conveniently. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-92&quot;&gt;TOOLS-92&lt;/a&gt;] -         CMT test should cover at leart 100G sized data migration to CUBRID &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-98&quot;&gt;TOOLS-98&lt;/a&gt;] -         인덱스 타입에 따른 결과값 리포팅 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-510&quot;&gt;TOOLS-510&lt;/a&gt;] -         The button of &quot;Default(1X)&quot; should be grey when the tables have no char/varchar columns. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-841&quot;&gt;TOOLS-841&lt;/a&gt;] -         To improve performance,  the FTP interface will not be used if the target database is localhost and offline. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-842&quot;&gt;TOOLS-842&lt;/a&gt;] -         Package the migration report files to make them easy to manage &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-845&quot;&gt;TOOLS-845&lt;/a&gt;] -         Improve offline migration performance &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-915&quot;&gt;TOOLS-915&lt;/a&gt;] -&amp;nbsp;Diplay index tree. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1005&quot;&gt;TOOLS-1005&lt;/a&gt;] -         Support Zip file transportation when using offline migration &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1037&quot;&gt;TOOLS-1037&lt;/a&gt;] - Cannot only migrate the sequence in cmt &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1062&quot;&gt;TOOLS-1062&lt;/a&gt;]&amp;nbsp;- Migration rate isn&apos;t right after migration. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1084&quot;&gt;TOOLS-1084&lt;/a&gt;] - Cannot migrate to new database when there isn&apos;t the db. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1085&quot;&gt;TOOLS-1085&lt;/a&gt;] - It will display migration is finished. it hasn&apos;t display any error when there is error in migration. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1111&quot;&gt;TOOLS-1111&lt;/a&gt;] - The lob file path isn&apos;t same which generated after offline migration and generated after online migration. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-224&quot;&gt;TOOLS-224&lt;/a&gt;] -         CMT ORACLE sequnce 에 대하여 serial 이 생성되지 않습니다 / CMT ORACLE sequnce 无法生成serial &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-171&quot;&gt;TOOLS-171&lt;/a&gt;] -         Reuse the connection information in the CMT &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-284&quot;&gt;TOOLS-284&lt;/a&gt;] -&amp;nbsp;From oracle to CUBRID, the FK migration is not right. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-438&quot;&gt;TOOLS-438&lt;/a&gt;] -&amp;nbsp;The form of data is inconsistent when migrating &quot;decimal unsigned(20,10)&quot; to &quot;character varying(30)&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-511&quot;&gt;TOOLS-511&lt;/a&gt;] -         There is some unreadable code in log and the information can&apos;t be displayed completely because of it. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-535&quot;&gt;TOOLS-535&lt;/a&gt;] -&amp;nbsp;Do migration using XE template, goto step5, target index doesn&apos;t been added prefix. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-555&quot;&gt;TOOLS-555&lt;/a&gt;] -&amp;nbsp;Migrate blob to bit varying, the data cannot be migrated. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-584&quot;&gt;TOOLS-584&lt;/a&gt;] -&amp;nbsp;When do migration of sequence, haven&apos;t delete previous sequence. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-796&quot;&gt;TOOLS-796&lt;/a&gt;] -&amp;nbsp;In migration, it is error that has judge the sql name with the source table which hasn&apos;t been migrated. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-797&quot;&gt;TOOLS-797&lt;/a&gt;] -&amp;nbsp;When the name of sql statement is same with target db, it hasn&apos;t warning. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-809&quot;&gt;TOOLS-809&lt;/a&gt;] - When do online migration and choose &quot;Replace existed tables&quot; ,  change the target table name to one which is existed in target db, it will pop duplication. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-817&quot;&gt;TOOLS-817&lt;/a&gt;] - There will be connect failed sometime. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-828&quot;&gt;TOOLS-828&lt;/a&gt;] -&amp;nbsp;&amp;nbsp;After change two same index name to different index name, it will need to click next again. It is not good. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-886&quot;&gt;TOOLS-886&lt;/a&gt;] -         Migrating large online mysql database may rise out of memory errors &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1038&quot;&gt;TOOLS-1038&lt;/a&gt;] - Cannot migrate the data to the table which name is same as sql name. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1049&quot;&gt;TOOLS-1049&lt;/a&gt;] - When change sql, the column isn&apos;t right in advanced , . &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1050&quot;&gt;TOOLS-1050&lt;/a&gt;] - The data type of sql is error in advanced &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1051&quot;&gt;TOOLS-1051&lt;/a&gt;] - When only migrate sql and there are char in the sql, the default(1x) and multiplication and advanced are disable. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1057&quot;&gt;TOOLS-1057&lt;/a&gt;] -&amp;nbsp;The warning is error when the target table isn&apos;t same as migrating table &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1058&quot;&gt;TOOLS-1058&lt;/a&gt;] -&amp;nbsp;Cannot run the xml which path has blank space. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1074&quot;&gt;TOOLS-1074&lt;/a&gt;] -&amp;nbsp;When migrate from blob to varchar, the chinese data change to messy code. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1087&quot;&gt;TOOLS-1087&lt;/a&gt;] -&amp;nbsp;It will pop error when migrate view which source table doesn&apos;t existed in target DB. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1088&quot;&gt;TOOLS-1088&lt;/a&gt;] -&amp;nbsp;When delete the source xml, it will pop error in migration &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1089&quot;&gt;TOOLS-1089&lt;/a&gt;] -&amp;nbsp;When do migration via command, the migration history has lost &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1098&quot;&gt;TOOLS-1098&lt;/a&gt;] - It will pop error too when there delete the blank space of column &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1103&quot;&gt;TOOLS-1103&lt;/a&gt;] - Tinyint convert to numeric is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1107&quot;&gt;TOOLS-1107&lt;/a&gt;] - When migrate int to numeric, it will pop error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1108&quot;&gt;TOOLS-1108&lt;/a&gt;] -&amp;nbsp;Bit is migrated to bit, it is error via offline migration &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1110&quot;&gt;TOOLS-1110&lt;/a&gt;] -&amp;nbsp;There isn&apos;t data in smallint, it will become 0 after do online migration. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1115&quot;&gt;TOOLS-1115&lt;/a&gt;] - When migrate from oracle to cubrid, the intervaldaytosecond data type is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1116&quot;&gt;TOOLS-1116&lt;/a&gt;] -&amp;nbsp;Migrate blob to varchar, it will pop error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1117&quot;&gt;TOOLS-1117&lt;/a&gt;] -&amp;nbsp;When change the target host, it will pop error. &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font: 13px/17px Arial, FreeSans, Helvetica, sans-serif; color: #000000; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; float: none; display: inline !important; white-space: normal; orphans: 2; widows: 2; background-color: #ffffff;&quot;&gt;[&lt;/span&gt;&lt;a style=&quot;font: 13px/17px Arial, FreeSans, Helvetica, sans-serif; color: #3c78b5; text-transform: none; text-indent: 0px; letter-spacing: normal; text-decoration: none; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2; background-color: #ffffff;&quot; href=&quot;http://www.jira.cubrid.org/browse/TOOLS-1158&quot;&gt;TOOLS-1158&lt;/a&gt;&lt;span style=&quot;font: 13px/17px Arial, FreeSans, Helvetica, sans-serif; color: #000000; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; float: none; display: inline !important; white-space: normal; orphans: 2; widows: 2; background-color: #ffffff;&quot;&gt;] - Cannot connect CMS when there isn&apos;t demodb in new server&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CUBRID Migration Toolkit 8.4.1.201204 Hot fix build 2004 (2012-04-16)&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.2.2.x ~ CUBRID 8.4.1.2032&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-919&quot;&gt;TOOLS-919&lt;/a&gt;] - Remove duplicated index names checking at the stage 4 of migration wizard &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-886&quot;&gt;TOOLS-886&lt;/a&gt;] - Migrating large online mysql database may rise out of memory errors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CUBRID Migration Toolkit 8.4.1.201203&lt;/h2&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.2.2.x ~ CUBRID 8.4.1.0558&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;New Feature&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-512&quot;&gt;TOOLS-512&lt;/a&gt;] - Auto update support (using eclipse p2) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-807&quot;&gt;TOOLS-807&lt;/a&gt;] - Add the update url to install new software &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-622&quot;&gt;TOOLS-622&lt;/a&gt;] - Typo in english messages &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-626&quot;&gt;TOOLS-626&lt;/a&gt;] - Commit unit : 500 is too low for new version tools and engine. Let&apos;s find optimized value. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-691&quot;&gt;TOOLS-691&lt;/a&gt;] - When create new JDBC connection in step 2 of migration wizard, the default database type is CUBRID and the driver is the newest version. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-707&quot;&gt;TOOLS-707&lt;/a&gt;] - Improve the performance of FTP &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-723&quot;&gt;TOOLS-723&lt;/a&gt;] - The database type have to be selected CUBRID Database in New Database connection dialog of Migration Wizard Step 2 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-740&quot;&gt;TOOLS-740&lt;/a&gt;] - Modify name of Wizard Step two &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-760&quot;&gt;TOOLS-760&lt;/a&gt;] - Cannot migrate number partition table to CUBRID via CMT &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-782&quot;&gt;TOOLS-782&lt;/a&gt;] - Cannot support migrate sub partition from oracle to cubrid. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-346&quot;&gt;TOOLS-346&lt;/a&gt;] - Modify cms user, the database display error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-360&quot;&gt;TOOLS-360&lt;/a&gt;] - When the index name are same in two tables,goto step4, the index&apos;s table is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-361&quot;&gt;TOOLS-361&lt;/a&gt;] - When do offline migration, the directory of loaddb log is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-412&quot;&gt;TOOLS-412&lt;/a&gt;] - From xml to CUBRID, bit data type convert is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-472&quot;&gt;TOOLS-472&lt;/a&gt;] - Do migration view, there is different in migrate to online db and file. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-498&quot;&gt;TOOLS-498&lt;/a&gt;] - In step2, change online db to EUC-KR, save XE. Then change the online db&apos;s charset to UTF-8. Use the XE, charset cannot be modified. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-500&quot;&gt;TOOLS-500&lt;/a&gt;] - the data is inconsistent after migrating binary type to bit type(or varbinary type to bit varying type) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-501&quot;&gt;TOOLS-501&lt;/a&gt;] - the data is inconsistent after migrating binary type to character type(xml migration) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-505&quot;&gt;TOOLS-505&lt;/a&gt;] - In step5, please change dafult timezone to actual data &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-519&quot;&gt;TOOLS-519&lt;/a&gt;] - The order of columns of tables having more than one columns is wrong(it is opposite) after convering DB with offline form. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-543&quot;&gt;TOOLS-543&lt;/a&gt;] - When there is one table has double quotation marks, cannot do migration. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-572&quot;&gt;TOOLS-572&lt;/a&gt;] - When migrated some data type to nvarchar, please add the confirm info. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-599&quot;&gt;TOOLS-599&lt;/a&gt;] - Migrate to windows server, it will be error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-602&quot;&gt;TOOLS-602&lt;/a&gt;] - When there are same name in select statements, the target column name will be lost &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-604&quot;&gt;TOOLS-604&lt;/a&gt;] - In DB Records of migration report, the align of - is not same. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-610&quot;&gt;TOOLS-610&lt;/a&gt;] - When start oracle after login CMT, connect oracle server in step1, it cannot connect. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-621&quot;&gt;TOOLS-621&lt;/a&gt;] - Does not like to port some tables from database - keyword problem? &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-731&quot;&gt;TOOLS-731&lt;/a&gt;] - When there are two table name is same, there are two warning. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-741&quot;&gt;TOOLS-741&lt;/a&gt;] - When migrate the partition table, it has been migrated, but there display error in migration report. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-745&quot;&gt;TOOLS-745&lt;/a&gt;] - When migrate the table which name has &quot;&quot;, the table can be migrated successfully, but the data has been lost &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-749&quot;&gt;TOOLS-749&lt;/a&gt;] - When connect to mysql database, cannot connect the database in upper case &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-750&quot;&gt;TOOLS-750&lt;/a&gt;] - There isn&apos;t distinguish upper case and lower case in step3. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-754&quot;&gt;TOOLS-754&lt;/a&gt;] - Creating new database can be canceled. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-755&quot;&gt;TOOLS-755&lt;/a&gt;] - When do offline migration to create new database via CMT, the process blocked. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-758&quot;&gt;TOOLS-758&lt;/a&gt;] - When load the txt which are migrated from mysql to file, some object cannot be loaded. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-761&quot;&gt;TOOLS-761&lt;/a&gt;] - Do migration from numer to varchar, it will pop warning &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-762&quot;&gt;TOOLS-762&lt;/a&gt;] - When do migration from xml to offline cubrid, It will lost partition &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-763&quot;&gt;TOOLS-763&lt;/a&gt;] - When migrate two table which have same name, click back,delete one table, the duplicate judgement still exist. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-767&quot;&gt;TOOLS-767&lt;/a&gt;] - When there are two table name is same and one has fk, it will be pop error in migration process. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-770&quot;&gt;TOOLS-770&lt;/a&gt;] - When add two connection in step1, one is upper case, the other is lower case,it will display one. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-784&quot;&gt;TOOLS-784&lt;/a&gt;] - When migrate partition to CUBRID, please add &quot; &quot; on the partition filed &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-785&quot;&gt;TOOLS-785&lt;/a&gt;] - When the server is run in standalone mode, there will be pop user and password incorrect. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-786&quot;&gt;TOOLS-786&lt;/a&gt;] - There doesn&apos;t display the referenced table name in step 4. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-788&quot;&gt;TOOLS-788&lt;/a&gt;] - When there are two index in one table, change to same index name in migration,it will be error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-789&quot;&gt;TOOLS-789&lt;/a&gt;] - When there are two table name is same and one has fk, the referenced table will be lost in step4 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-792&quot;&gt;TOOLS-792&lt;/a&gt;] - When copy one url to install other software UI, it will pop error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-798&quot;&gt;TOOLS-798&lt;/a&gt;] - When migrate from oracle, there is untidy of tables. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-800&quot;&gt;TOOLS-800&lt;/a&gt;] - When migrate from XE template, the partition ddl will be lost in step4 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-801&quot;&gt;TOOLS-801&lt;/a&gt;] - Do migration from oracle, when there are two tables which name is same. The data migration is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-802&quot;&gt;TOOLS-802&lt;/a&gt;] - When do migration from oracle to cubrid, it will pop error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-803&quot;&gt;TOOLS-803&lt;/a&gt;] - When create new database via cmt use the other user, it cannot be login with dba. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-806&quot;&gt;TOOLS-806&lt;/a&gt;] - Check for update doesn&apos;t work &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-812&quot;&gt;TOOLS-812&lt;/a&gt;] - When do migration use XE(migrate to file), cannot migrate. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-816&quot;&gt;TOOLS-816&lt;/a&gt;] - There will be pop error in migration, but it doesn&apos;t display every time. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-825&quot;&gt;TOOLS-825&lt;/a&gt;] - Don&apos;t choose XE serial in XE ui, but it migrate the xe serial in migration &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-829&quot;&gt;TOOLS-829&lt;/a&gt;] - When generate XE to change file name in database unload UI. The file name isn&apos;t saved. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Task&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-460&quot;&gt;TOOLS-460&lt;/a&gt;] - Migrate partition table in mysql to database, the partition will be lost &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-513&quot;&gt;TOOLS-513&lt;/a&gt;] - The parser of MYSQL XML dump file can read the invalid XML characters correctly &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-747&quot;&gt;TOOLS-747&lt;/a&gt;] - Migrate source code from svn.platform.nhncorp.cn to dev.nave.com &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-394&quot;&gt;TOOLS-394&lt;/a&gt;] - the object for checking new version is wrong(it is for cubrid in this version, not for cubridmigration) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-532&quot;&gt;TOOLS-532&lt;/a&gt;] - Change cubridmigration.exe icon to new icon. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-603&quot;&gt;TOOLS-603&lt;/a&gt;] - The char &apos; &apos; in the XML dump file will be lost during migration &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CUBRID Migration Toolkit 8.4.1&lt;/h2&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h3&gt;Supported CUBRID version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID 8.2.2.x ~ CUBRID 8.4.1.0558&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul style=&quot;font-size: 13px; font-weight: normal;&quot;&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-95&quot;&gt;TOOLS-95&lt;/a&gt;] - human readable/editable template file&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-96&quot;&gt;TOOLS-96&lt;/a&gt;] - increase performance of MySQL dump file parsing&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-121&quot;&gt;TOOLS-121&lt;/a&gt;] - support cancel migration task even which run on server side as standalone process&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-228&quot;&gt;TOOLS-228&lt;/a&gt;] - CM server improvements&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-337&quot;&gt;TOOLS-337&lt;/a&gt;] - There is error in migration, the migration progress bar isn&apos;t finished&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-355&quot;&gt;TOOLS-355&lt;/a&gt;] - Please add one summary which is like step5 to migration history&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-358&quot;&gt;TOOLS-358&lt;/a&gt;] - Goto step4, don&apos;t choose create new table and data migration for one table, goto report, the table will display error, please add some error infor&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-490&quot;&gt;TOOLS-490&lt;/a&gt;] - Add charset in file repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Task&lt;/h3&gt;
&lt;ul style=&quot;font-size: 13px; font-weight: normal;&quot;&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-110&quot;&gt;TOOLS-110&lt;/a&gt;] - Improve migration working engine&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-111&quot;&gt;TOOLS-111&lt;/a&gt;] - Data transform engine&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-112&quot;&gt;TOOLS-112&lt;/a&gt;] - Improve migration wizard UI&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-569&quot;&gt;TOOLS-569&lt;/a&gt;] - To support CUBRID 8.4.1 and prepare release build&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-600&quot;&gt;TOOLS-600&lt;/a&gt;] - It is needed a brandnew version string that it easily support for CUBRID compatibility.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-306&quot;&gt;TOOLS-306&lt;/a&gt;] - In step2, click off line, database should display offline database. But there is all database. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-309&quot;&gt;TOOLS-309&lt;/a&gt;] - After migration, the process bar isn&apos;t finished &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-310&quot;&gt;TOOLS-310&lt;/a&gt;] - Offline migration to online database, it can do migration. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-314&quot;&gt;TOOLS-314&lt;/a&gt;] - In step2, connect one online server, then stop the server, do migration, the result is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-321&quot;&gt;TOOLS-321&lt;/a&gt;] - XML to cubrid, datetime data type transfer error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-322&quot;&gt;TOOLS-322&lt;/a&gt;] - When there are two index which has same name in xml, one index will be error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-324&quot;&gt;TOOLS-324&lt;/a&gt;] - XE template saved can&apos;t reproduce former step(that is step 2:select target database) when using the converting form: online-&amp;gt;file repository. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-341&quot;&gt;TOOLS-341&lt;/a&gt;] - Migrate to file repository, the file hasn&apos;t override the target files &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-345&quot;&gt;TOOLS-345&lt;/a&gt;] - After do offline migration, the target database hasn&apos;t data. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-351&quot;&gt;TOOLS-351&lt;/a&gt;] - Migrated FK from Mysql to CUBRID, if one table has primary key, the FK will became index &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-353&quot;&gt;TOOLS-353&lt;/a&gt;] - When multitype in tables, the view hasn&apos;t multitype. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-354&quot;&gt;TOOLS-354&lt;/a&gt;] - Export migration report to excel. The sheet is ambiguous. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-356&quot;&gt;TOOLS-356&lt;/a&gt;] - The progress bar is not complete when converting database. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-359&quot;&gt;TOOLS-359&lt;/a&gt;] - the index of type &quot;unique&quot; can not be converted to type of &quot;reverse unique&quot; or &quot;reverse index&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-362&quot;&gt;TOOLS-362&lt;/a&gt;] - Multiplication should be decided by the charset target database. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-363&quot;&gt;TOOLS-363&lt;/a&gt;] - Changed charset in step1, the index, PK migrated failed &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-368&quot;&gt;TOOLS-368&lt;/a&gt;] - There is no effect for step 4 when be back to step 3 from step 4 to edit the &quot;select statement&quot; table name. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-369&quot;&gt;TOOLS-369&lt;/a&gt;] - There is no effect for &quot;ok&quot; button when selecting other charset from default. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-371&quot;&gt;TOOLS-371&lt;/a&gt;] - In step4,choose don&apos;t create table, goto migration report, display migrate table error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-377&quot;&gt;TOOLS-377&lt;/a&gt;] - Bit(1) cannot migrate to target database. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-378&quot;&gt;TOOLS-378&lt;/a&gt;] - The time form in log is inconsistent. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-379&quot;&gt;TOOLS-379&lt;/a&gt;] - Only choose some fields to do migration, the cut is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-385&quot;&gt;TOOLS-385&lt;/a&gt;] - After migration, binary(255) cannot be migrated &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-386&quot;&gt;TOOLS-386&lt;/a&gt;] - After convert blob to bit, the target data is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-388&quot;&gt;TOOLS-388&lt;/a&gt;] - bool and boolean convert is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-389&quot;&gt;TOOLS-389&lt;/a&gt;] - the index of type &quot;unique&quot; can not be converted to type of &quot;reverse unique&quot; or &quot;reverse index&quot;(mysql-&amp;gt;offline db) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-391&quot;&gt;TOOLS-391&lt;/a&gt;] - In date data type migration, it will be error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-392&quot;&gt;TOOLS-392&lt;/a&gt;] - The form of time is 12h(I think it should be 24h) and the statement should not be ended &quot;;&quot;. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-393&quot;&gt;TOOLS-393&lt;/a&gt;] - the hint in the status bar of help system is wrong. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-397&quot;&gt;TOOLS-397&lt;/a&gt;] - Migrated from online db view to file, the report and the file contents isn&apos;t consistent. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-400&quot;&gt;TOOLS-400&lt;/a&gt;] - Migrated decimal to numeric, it will be error in migration. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-401&quot;&gt;TOOLS-401&lt;/a&gt;] - When migrating from db to online database, stop db server. In migration &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-404&quot;&gt;TOOLS-404&lt;/a&gt;] - Enum type can&apos;t migrated to target type successfully when changing target column name &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-405&quot;&gt;TOOLS-405&lt;/a&gt;] - Longtext type can&apos;t be migrated to target type successfully when changing the target column name. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-406&quot;&gt;TOOLS-406&lt;/a&gt;] - Migrated float , it will be error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-410&quot;&gt;TOOLS-410&lt;/a&gt;] - Save XE to one exist xml, it will pop failed. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-413&quot;&gt;TOOLS-413&lt;/a&gt;] - In migration from xml to file, datatime is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-414&quot;&gt;TOOLS-414&lt;/a&gt;] - Migrated from online db to cubrid, datetime convert is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-415&quot;&gt;TOOLS-415&lt;/a&gt;] - In sometime, the log will be combined. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-419&quot;&gt;TOOLS-419&lt;/a&gt;] - When migrate varbinary(65532) to bit varying, the big value cannot be migrated. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-420&quot;&gt;TOOLS-420&lt;/a&gt;] - When migrate the data type about int error, the report error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-422&quot;&gt;TOOLS-422&lt;/a&gt;] - The function of &quot;Data Migration&quot; has no effect &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-425&quot;&gt;TOOLS-425&lt;/a&gt;] - When do xml to cubrid migration, if change the source charset, it will migrate error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-428&quot;&gt;TOOLS-428&lt;/a&gt;] - In report,click the canceled DB Objects, it hasn&apos;t display name. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-429&quot;&gt;TOOLS-429&lt;/a&gt;] - The view ddl in the file migrated display is not good &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-432&quot;&gt;TOOLS-432&lt;/a&gt;] - there is an error when migrating a table of year type. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-437&quot;&gt;TOOLS-437&lt;/a&gt;] - When multiplicated in tables, the view hasn&apos;t been multiplicated. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-440&quot;&gt;TOOLS-440&lt;/a&gt;] - Choose the replace table in step3, haven&apos;t delete index. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-441&quot;&gt;TOOLS-441&lt;/a&gt;] - Migrated the table which has two fk will error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-443&quot;&gt;TOOLS-443&lt;/a&gt;] - In step4, can change view sql, but when migrate, it will be error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-445&quot;&gt;TOOLS-445&lt;/a&gt;] - the prompt of &quot;Save current tab to file&quot; is not exact and should be like another prompt &quot;Save all tabs to an excel file&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-448&quot;&gt;TOOLS-448&lt;/a&gt;] - When choose something, it will pop nullpointerException. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-451&quot;&gt;TOOLS-451&lt;/a&gt;] - the parameter of &quot;NULL&quot; about time in migration parameters of Preferences has no effect &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-452&quot;&gt;TOOLS-452&lt;/a&gt;] - the parameter of &quot;Replace with&quot; about time in migration parameters of Preferences has no effect &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-453&quot;&gt;TOOLS-453&lt;/a&gt;] - the parameter of &quot;NULL&quot; about date in migration parameters of Preferences has no effect &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-455&quot;&gt;TOOLS-455&lt;/a&gt;] - the parameter of &quot;Replace with&quot; about date in migration parameters of Preferences has no effect &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-456&quot;&gt;TOOLS-456&lt;/a&gt;] - the parameter of &quot;NULL&quot; about timestamp in migration parameters of Preferences has no effect &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-457&quot;&gt;TOOLS-457&lt;/a&gt;] - the parameter of &quot;Replace with&quot; about timestamp in migration parameters of Preferences has no effect &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-459&quot;&gt;TOOLS-459&lt;/a&gt;] - The default XE template cannot be used &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-462&quot;&gt;TOOLS-462&lt;/a&gt;] - the table of type converting can be edit to anything(please do some limit when editing them) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-463&quot;&gt;TOOLS-463&lt;/a&gt;] - Migrated datetime from xml and online database, it&apos;s different. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-466&quot;&gt;TOOLS-466&lt;/a&gt;] - Migrate xml charset is not utf8, it will be error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-467&quot;&gt;TOOLS-467&lt;/a&gt;] - the &quot;0&quot;(zero) in the data(the &quot;0&quot; is in the end) will be lost when converting binary to bit. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-469&quot;&gt;TOOLS-469&lt;/a&gt;] - there is an error when two user migrate two different databases to the same target database concurrently &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-470&quot;&gt;TOOLS-470&lt;/a&gt;] - In the new version, do migration from online db to new db, many tables cannot be migrated &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-471&quot;&gt;TOOLS-471&lt;/a&gt;] - the negative number and zero will be converted to &quot;0&quot; and positive number will be converted to &quot;1&quot; when converting bool type to smallint type. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-473&quot;&gt;TOOLS-473&lt;/a&gt;] - the data is inconsistent when migrating date type to date type &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-474&quot;&gt;TOOLS-474&lt;/a&gt;] - Migrate xml to online cubrid, bit data is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-475&quot;&gt;TOOLS-475&lt;/a&gt;] - Migrate bit(1) from xml to online database, it doesn&apos;t work &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-476&quot;&gt;TOOLS-476&lt;/a&gt;] - Migrate numeric to numeric,some data hasn&apos;t been migrated &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-477&quot;&gt;TOOLS-477&lt;/a&gt;] - Do migration from loaddb, the blob content directory cannot found. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-478&quot;&gt;TOOLS-478&lt;/a&gt;] - the data is inconsistent when migrating datetime type to datetime type &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-479&quot;&gt;TOOLS-479&lt;/a&gt;] - Migrated from xml to new DB and from mysql DB to new DB,the data of bool data type isn&apos;t same. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-480&quot;&gt;TOOLS-480&lt;/a&gt;] - the data is inconsistent when migrating double type to double type &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-481&quot;&gt;TOOLS-481&lt;/a&gt;] - the window of &quot;preferences&quot; can not be closed when you click &quot;close&quot; icon first time under certain conditions. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-482&quot;&gt;TOOLS-482&lt;/a&gt;] - Migrated from xml to offline db, timezone from default to default, timestamp is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-483&quot;&gt;TOOLS-483&lt;/a&gt;] - the data is inconsistent when migrating double unsigned type to double unsigned type &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-484&quot;&gt;TOOLS-484&lt;/a&gt;] - Migrate xml to online cubrid, datetime,time,timestamp data is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-485&quot;&gt;TOOLS-485&lt;/a&gt;] - the data is inconsistent when migrating float type to double type &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-486&quot;&gt;TOOLS-486&lt;/a&gt;] - the data is inconsistent when migrating float unsigned type to double type &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-487&quot;&gt;TOOLS-487&lt;/a&gt;] - the migration of converting longblob type to blob type is failed &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-489&quot;&gt;TOOLS-489&lt;/a&gt;] - the data is not what we expects it to be when migrating numeric(20,10) type to numeric(20,8) type &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-491&quot;&gt;TOOLS-491&lt;/a&gt;] - In step2, choose timezone in file repository. Save XE, &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-493&quot;&gt;TOOLS-493&lt;/a&gt;] - Choose all in step3, save XE, the sequences cannot been saved &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-494&quot;&gt;TOOLS-494&lt;/a&gt;] - the data is inconsistent when migrating year type to character type &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-496&quot;&gt;TOOLS-496&lt;/a&gt;] - By some way, XE cannot be used. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-503&quot;&gt;TOOLS-503&lt;/a&gt;] - Use XE which is export mysql DB to online DB, delete online DB, it will pop &quot;Failed to connect database server&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-504&quot;&gt;TOOLS-504&lt;/a&gt;] - Migrate online to file ,it will pop java.lang.NullPointerException &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-506&quot;&gt;TOOLS-506&lt;/a&gt;] - When delete migration history, please give confirm info. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-507&quot;&gt;TOOLS-507&lt;/a&gt;] - Use XE, &quot;add prefix to index names&quot; doesn&apos;t work &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-508&quot;&gt;TOOLS-508&lt;/a&gt;] - After some operation, it will pop NullPointerException &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-509&quot;&gt;TOOLS-509&lt;/a&gt;] - the parameter of &quot;Replace with&quot; about time in migration parameters of Preferences has wrong effect &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-515&quot;&gt;TOOLS-515&lt;/a&gt;] - There is some error about display in ubuntu 64 bit or windows &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-517&quot;&gt;TOOLS-517&lt;/a&gt;] - There is an error after migrating a big xml(but having no error after migrating the same xml) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-523&quot;&gt;TOOLS-523&lt;/a&gt;] - The index name of target DB is not the same with the name in the field of &quot;Target Index Name&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-524&quot;&gt;TOOLS-524&lt;/a&gt;] - The function of &quot;Replace Existed Tables&quot; has some errors when replacing table which have FKs(you must notice the order of deleting these tables) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-527&quot;&gt;TOOLS-527&lt;/a&gt;] - After extract the new version, login cmt, in the copyright of CUBRID Migration Toolkit, there are Chinese word. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-529&quot;&gt;TOOLS-529&lt;/a&gt;] - Migrate blob data type to file, it record the absolute path &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-533&quot;&gt;TOOLS-533&lt;/a&gt;] - Migrate big xml (test.xml) to file, will have some index will be canceled. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-534&quot;&gt;TOOLS-534&lt;/a&gt;] - When do migration from big xml to offline, sometimes pop &quot;listen:Address already in use &amp;lt;end&amp;gt; &quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-539&quot;&gt;TOOLS-539&lt;/a&gt;] - Migrate bfile data type, the default glo is not defined &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-540&quot;&gt;TOOLS-540&lt;/a&gt;] - When get data from source database, the waring word in Chinese is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-541&quot;&gt;TOOLS-541&lt;/a&gt;] - When there are composite primary key, it will be error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-542&quot;&gt;TOOLS-542&lt;/a&gt;] - Migrated from oracle to cubrid, there is clob data type, it cannot migrated. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-544&quot;&gt;TOOLS-544&lt;/a&gt;] - Migrate from oracle to cubrid, the migration from timestamp withe local time zone and time stamp with time zone to datetime is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-545&quot;&gt;TOOLS-545&lt;/a&gt;] - Migrated from bfile to blob, it hasn&apos;t been migrated &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-546&quot;&gt;TOOLS-546&lt;/a&gt;] - Migrate from blob to blob,clob to clob, nclob to nclob the data hasn&apos;t been migrated &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-548&quot;&gt;TOOLS-548&lt;/a&gt;] - The data of the two type &quot;INTERVAL YEAR TO MONTH&quot; and &quot;INT,INTERVAL DAY TO SECOND&quot; will be converted to &quot;NULL&quot; when using the converting form Oracle DB-&amp;gt;online &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-549&quot;&gt;TOOLS-549&lt;/a&gt;] - The record of long type cannot be converted(oracle db-&amp;gt;online) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-550&quot;&gt;TOOLS-550&lt;/a&gt;] - Migrate from date date type to date, it will lost time. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-551&quot;&gt;TOOLS-551&lt;/a&gt;] - Migrated date 0000-0-0 to date, it became 4713-01-01 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-553&quot;&gt;TOOLS-553&lt;/a&gt;] - Migrate from urowid to varchar, the value is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-554&quot;&gt;TOOLS-554&lt;/a&gt;] - Migrate long raw to bit varying(1073741823), it isn&apos;t same as raw to bit varying &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-556&quot;&gt;TOOLS-556&lt;/a&gt;] - Migrate int to int, some data cannot be migrated. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-558&quot;&gt;TOOLS-558&lt;/a&gt;] - The record of number type cannot be converted(oracle db-&amp;gt;online) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-561&quot;&gt;TOOLS-561&lt;/a&gt;] - The data migration from decimal, number to number is different in migration from oracle and mysql &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-563&quot;&gt;TOOLS-563&lt;/a&gt;] - Migrate from interval_day_to_second to varchar, the data is not good &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-564&quot;&gt;TOOLS-564&lt;/a&gt;] - Migrate interval to Varchar, the data type is constant , but it times 3. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-565&quot;&gt;TOOLS-565&lt;/a&gt;] - Migrate from real to float, the data cannot be migrated &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-566&quot;&gt;TOOLS-566&lt;/a&gt;] - Migrate int to numeric(38,0), the data cannot be migrated. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-568&quot;&gt;TOOLS-568&lt;/a&gt;] - Migrate from date to datetime, the data is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-577&quot;&gt;TOOLS-577&lt;/a&gt;] - In migration, there is pk and unique index, the unique constraint will be lost. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-578&quot;&gt;TOOLS-578&lt;/a&gt;] - Migrate FK on delete no action from oracle to cubrid, the action change from no action to restrict. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-581&quot;&gt;TOOLS-581&lt;/a&gt;] - Normal index cannot be migrated from oracle to cubrid. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-583&quot;&gt;TOOLS-583&lt;/a&gt;] - When there are procedure, trigger, function in oracle db, migrate from oracle to cubrid, the nonsupport objects is error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-585&quot;&gt;TOOLS-585&lt;/a&gt;] - SQL statement hasn&apos;t multiply. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-586&quot;&gt;TOOLS-586&lt;/a&gt;] - There is a help mark(?) in the interface of &quot;Preferences&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-587&quot;&gt;TOOLS-587&lt;/a&gt;] - There is an extra word in the sentence &quot;To File Repository Commit Count&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-589&quot;&gt;TOOLS-589&lt;/a&gt;] - Migrate date data type to offline db, datetime changed too. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-590&quot;&gt;TOOLS-590&lt;/a&gt;] - Oracle has change timezone to GMT+04:00, but in step5 in migration, it display GMT+08:00 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-591&quot;&gt;TOOLS-591&lt;/a&gt;] - When do big xml migration, there are wait long time sometimes. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-592&quot;&gt;TOOLS-592&lt;/a&gt;] - There is a wrong word in &quot;Preferences&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-595&quot;&gt;TOOLS-595&lt;/a&gt;] - In xe, the index hasn&apos;t be saved. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-597&quot;&gt;TOOLS-597&lt;/a&gt;] - The primary key can not be created when migrating mysql db to offline db.. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-598&quot;&gt;TOOLS-598&lt;/a&gt;] - When do migration use XE, the sequence will be error&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;h2&gt;CUBRID Migration Toolkit 1.5.5&lt;/h2&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-165&quot;&gt;TOOLS-165&lt;/a&gt;] - Display referential ations on &quot;FK&quot; and apply that option a user chooses to tables by asking &quot;you want to apply the option to all tables?&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-212&quot;&gt;TOOLS-212&lt;/a&gt;] - Migrate partition table to CUBRID8.4.0 successfully. But the table is migrated to CUBRID8.4.1 is error. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-229&quot;&gt;TOOLS-229&lt;/a&gt;] - Use XE to do migration, go to step5 , then back to step1, omit XE, goto step3, only display the table which in XE &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-255&quot;&gt;TOOLS-255&lt;/a&gt;] - The csql error is occurred when click the Check Owner with no-inputted User name and Password form on the migration wizard step 4&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-267&quot;&gt;TOOLS-267&lt;/a&gt;] - When using &quot;Load Migration Script&quot; menu, target table name is always empty in the SQL tab in the step 5.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-268&quot;&gt;TOOLS-268&lt;/a&gt;] - In step4, after choose &quot;Skip Check of the exist database name and the owner name&quot;, then choose Create new database, the warning is error&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-273&quot;&gt;TOOLS-273&lt;/a&gt;] - After migrate the source database to txt file, the import record count of migration statistic report display exported &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-274&quot;&gt;TOOLS-274&lt;/a&gt;] - Migrate decimal data type to CUBRID, the target data type is error&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-282&quot;&gt;TOOLS-282&lt;/a&gt;] - From mysql to CUBRID, the FK migration is not right.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-286&quot;&gt;TOOLS-286&lt;/a&gt;] - Migrated FK from Mysql to CUBRID, if one table has primary key, the FK will became index&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-291&quot;&gt;TOOLS-291&lt;/a&gt;] - When we choose the XE, click next. It cannot goto step 2&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-292&quot;&gt;TOOLS-292&lt;/a&gt;] - The same xml migrated to old version and new version, the result is not same.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-293&quot;&gt;TOOLS-293&lt;/a&gt;] - Use XE, do migration, goto step 6, the UI is error. The result of step 7 is error too.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-296&quot;&gt;TOOLS-296&lt;/a&gt;] - It occur a error sometimes when using customized XE template because it didn&apos;t create new database.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-297&quot;&gt;TOOLS-297&lt;/a&gt;] - After add the attention of alert of the no logging option using, has error.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-298&quot;&gt;TOOLS-298&lt;/a&gt;] - In some times, the import record count will display error&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-299&quot;&gt;TOOLS-299&lt;/a&gt;] - Use XE, migrated xml, if the xml has fk, the fk become to index, and the index hasn&apos;t been choosed. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-166&quot;&gt;TOOLS-166&lt;/a&gt;] - In the wizard 1, it should nitoce the user that CMT server should be installed in the CUBRID server &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-253&quot;&gt;TOOLS-253&lt;/a&gt;] - A default values of a database volumn auto extends option is not same of CMT and CM (CMT와 CM 에서의 데이터베이스 생성시의 Default화면이 다릅니다)&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-264&quot;&gt;TOOLS-264&lt;/a&gt;] - Improve a multibyte charset supports.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-265&quot;&gt;TOOLS-265&lt;/a&gt;] - Users difficult to know whether change to resize when a database has multi-bytes character set.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-266&quot;&gt;TOOLS-266&lt;/a&gt;] - For users convenience, some of the menu needs to be put on the toolbar.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-295&quot;&gt;TOOLS-295&lt;/a&gt;] - Need to show a alert dialog when using a --no-logging option in the migration step 6.&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-288&quot;&gt;TOOLS-288&lt;/a&gt;] - Include a recent driver of CUBRID 8.4.0 in CMT 1.5.5&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;New Feature&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-262&quot;&gt;TOOLS-262&lt;/a&gt;] - Can create the loaddb type data files without a database import&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-263&quot;&gt;TOOLS-263&lt;/a&gt;] - Add to select a table method with a file of a table name list in wizard step 3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CUBRID Migration Toolkit 1.5.4&lt;/h2&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-143&quot;&gt;TOOLS-143&lt;/a&gt;] - In migration history, cannot choose any record, click delete button. It will prompt &quot;Are you sure to delete the migration history&quot; &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-144&quot;&gt;TOOLS-144&lt;/a&gt;] - When new database connection, the JDBC driver hasn&apos;t display order by version desc &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-145&quot;&gt;TOOLS-145&lt;/a&gt;] - In step1, when choose use default XE, click next. It will pop a process windows, but the cancel button is disable. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-148&quot;&gt;TOOLS-148&lt;/a&gt;] - Input a not available remote migration server ip , It can go next from step 1 to step 2 when you use an available IP to test connection before &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-163&quot;&gt;TOOLS-163&lt;/a&gt;] - When loading table schem with default values, it quotes the values of some (randomly) &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-164&quot;&gt;TOOLS-164&lt;/a&gt;] - CMT automatically increases the size to2X or 3X depending on CHARSET to handle the multi-byte characters. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-167&quot;&gt;TOOLS-167&lt;/a&gt;] - In migration, if import data is less than export, there isn&apos;t warning. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-169&quot;&gt;TOOLS-169&lt;/a&gt;] - CMT returns no error when checking the option &quot;creating a new database&quot; on the wizard 4 in the localhost without installing cubrid server &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-170&quot;&gt;TOOLS-170&lt;/a&gt;] - When SELECT statement are entered to extract part of records only from the source DB, CMT doesn&apos;t work well. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-189&quot;&gt;TOOLS-189&lt;/a&gt;] - JDBC 드라이버 오류로 인한 오라클 삭제된 테이블 조회되는 오류 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-190&quot;&gt;TOOLS-190&lt;/a&gt;] - In step1, input error ip, it will pop null &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-196&quot;&gt;TOOLS-196&lt;/a&gt;] - Slowly sub-query issue while checking SQLs syntax &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-210&quot;&gt;TOOLS-210&lt;/a&gt;] - When SELECT statement are entered to extract part of records only from the source DB, CMT doesn&apos;t work well. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-216&quot;&gt;TOOLS-216&lt;/a&gt;] - In migration report wizard,the load a xml file time error &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-222&quot;&gt;TOOLS-222&lt;/a&gt;] - change the checkbox(change all the solumn size of char .....)in the migration wizard step 2,the step 5 page&apos;s content don&apos;t update. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-223&quot;&gt;TOOLS-223&lt;/a&gt;] - Do migration by XE template, migrate xml file, it will pop error sometimes. &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-226&quot;&gt;TOOLS-226&lt;/a&gt;] - In windows64, there is a charset of cp1252 in step 4 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-227&quot;&gt;TOOLS-227&lt;/a&gt;] - Use XE to create XE, found the table will be lost &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Improvement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-24&quot;&gt;TOOLS-24&lt;/a&gt;] - CMT 용어 개선 및 설명 &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-102&quot;&gt;TOOLS-102&lt;/a&gt;] - CMT supports Mac OS &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;New Feature&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-23&quot;&gt;TOOLS-23&lt;/a&gt;] - CMT 인댁스 수 Before/after 비교하기 &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CUBRID Migration Toolkit 1.5.3&lt;/h2&gt;
&lt;h3&gt;Improvements and bug fixes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-76&quot;&gt;TOOLS-76&lt;/a&gt;] - CMT report improved&lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-96&quot;&gt;TOOLS-96&lt;/a&gt;] - There is a big improvement of parsing MySQL dump file . &lt;/li&gt;
&lt;li&gt;[&lt;a href=&quot;http://www.jira.cubrid.org/browse/TOOLS-97&quot;&gt;TOOLS-97&lt;/a&gt;] - If data source is xml file, the condition input cell will be read-only. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CUBRID Migration Toolkit 1.5.0&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=238308&amp;amp;sid=f4d346c5b9c501256230a90cf4649810&quot;&gt;CUBRID Migration Toolkit 1.5.0 Release Note_en.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="CMT"/>
            <category term="release note"/>
            
   </entry>
   <entry>
      <title>New Features of CMT 2013.05</title>
      <id>http://www.cubrid.org/671639</id>
      <published>2013-06-04T22:31:42-07:00</published>
      <updated>2013-06-10T09:33:54-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/671639"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/671639#comment"/>
      <author>
         <name>newpcraft</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h2&gt;1. Redesigned migration wizard: added a selecting migration type page&lt;/h2&gt;
&lt;p&gt;SQL importing wizard and CSV importing wizard were integrated into migration wizard.&lt;/p&gt;
&lt;p&gt;A new page was added to the start of migration wizard and users should select the migration type on this page firstly.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194378/639/671/1_1.png&quot; alt=&quot;1_1.png&quot; width=&quot;710&quot; height=&quot;460&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;2. Mutil-reservation supported.&lt;/h2&gt;
&lt;p&gt;Now, CMT supports users to regist several reservation tasks, but only one migration task can be executed at same time.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/ef_02.png&quot; width=&quot;589&quot; height=&quot;320&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can make a reservation by One time only, Repeat Every Day or Advanced(If you familiar with unix/linux crontab). However, you should beaware of overlapping another schedules.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/ef_03.png&quot; width=&quot;416&quot; height=&quot;314&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The second way to reserve is clicking &quot;Reservation&quot; button.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/ef_06.png&quot; width=&quot;336&quot; height=&quot;204&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can see the execution history or cancel this reservation.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/ef_05.png&quot; width=&quot;293&quot; height=&quot;254&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;3. Open migration wizard with failed schemas and data by a migration history&lt;/h2&gt;
&lt;p&gt;Now, there is able to migrate with failed tables and data by &quot;Restart migration&quot; funtion.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/ef_09.png&quot; width=&quot;612&quot; height=&quot;346&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If there are some table were not migrated successfully in the migration history, a dialog will be popped to ask users how to re-open the migration wizard.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/ef_08_1.png&quot; width=&quot;633&quot; height=&quot;283&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;nnormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;The first option means: Reserving all the history&amp;rsquo;s migration settings when opening migration wizard with current history.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;nnormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;The second option means: In the object mapping step, selecting schemas and all data of the tables which were not migrated successfully.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 10.0pt; font-family: &amp;amp;quot;Arial&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;&quot; lang=&quot;EN-US&quot;&gt;The second option means: In the object mapping step, only selecting all data of the tables which were not migrated successfully.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 10.0pt; font-family: &amp;amp;quot;Arial&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;&quot; lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;4. Users can name a JDBC connection.&lt;/h2&gt;
&lt;p&gt;In the JDBC connection management, users can specify a name to a JDBC connection for easy to remember them.&lt;/p&gt;
&lt;p&gt;And the name can&apos;t be duplicated.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/194378/639/671/3_1.png&quot; alt=&quot;3_1.png&quot; width=&quot;710&quot; height=&quot;476&quot; /&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="CMT"/>
            
   </entry>
   <entry>
      <title>New Features of CMT 2013.05_kr</title>
      <id>http://www.cubrid.org/673168</id>
      <published>2013-06-06T18:58:13-07:00</published>
      <updated>2013-06-10T09:30:42-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/673168"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/673168#comment"/>
      <author>
         <name>newpcraft</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;1. 마이그레이션 마법사 UI 개선&lt;/h2&gt;
&lt;p&gt;기존 SQL/CSV 마이그레이션이 마이그레이션 마법사에 통합되었습니다. 통합된 마이그레이션 마법사로 원본, 대상 유형을 더 쉽게 선택하고 마이그레이션할 수 있게 되었습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_01.png&quot; width=&quot;710&quot; height=&quot;525&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;2. 다중 예약 지원&lt;/h2&gt;
&lt;p&gt;기존 버전에는 1개의 예약만 지원하였으나 이제는 여러개를 동시에 예약해둘 수 있습니다. &amp;nbsp;그러나, 동시에 실행되지 않기 때문에 동일 시간으로 예약될 경우 다른 동일시간에 예약된 작업은 실행되지 않습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예약방법은 두 가지 방법으로 할 수 있는데, 마이그레이션 마법사 5단계에서 &quot;시작하기&quot;를 누르면 나오는 &quot;예약하기&quot; 버튼으로 예약할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;315&quot; width=&quot;661&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_07.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;아래의 창에서 1회 실행 또는 반복 실행 및 고급(Unix/Linux의 CRON에 익숙할 경우)을 사용하여 실행 예약을 할 수 있습니다. 예약할 경우 다른 예약과 시간이 겹치지 않도록 주의가 필요합니다.&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;313&quot; width=&quot;416&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_08.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;두번째 방법은 이미 생성된 스크립트를 선택하고 &quot;스크립트 예약&quot; 버튼을 누르면 위의 화면처럼 예약하는 창이 출력됩니다.&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;203&quot; width=&quot;305&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_09.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;스크립트 선택후 마우스 오른쪽 버튼으로 예약된 스크립트 실행 이력을 보거나 예약 취소를 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;245&quot; width=&quot;331&quot; src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_10.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;3. 실패한 테이블만 다시 마이그레이션&lt;/h2&gt;
&lt;p&gt;마이그레이션 완료후 아래 그림처럼 실패한 마이그레이션이 있을 때 기존에는 실패한 테이블을 하나 하나 선택한 후 마이그레이션을 해야 했습니다. 그러나 실패한 테이블만 다시 마이그레이션할 수 있도록 &quot;마이그레이션 재실행&quot; 기능을 마이그레이션 이력에 추가하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_03_1.png&quot; width=&quot;419&quot; height=&quot;346&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&quot;전체 테이블 + 전체 데이터&quot;, &quot;실패한 테이블 + 실패한 테이블의 전체 데이터&quot;, &quot;실패한 데이터의 전체 데이터&quot;를 옵션으로 선택할 수 있습니다. 그러나 실패한 데이터만 별도로 입력하는 기능은 아직 지원되지 않으며 실패한 테이블의 모든 데이터를 다시 마이그레이션을 합니다 (차기 버전에 실패한 데이터만 별도로 입력 기능 지원 예정).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_04_1.png&quot; width=&quot;606&quot; height=&quot;317&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;4. JDBC 연결 정보에 설정 추가&lt;/h2&gt;
&lt;p&gt;마이그레이션 마법사에서 사용한 접속 정보는 다시 마이그레이션할 때 편리하도록 재활용되기 때문에 접속명에 사용자가 알아볼 수 있도록 설명을 달 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ftp.cubrid.org/CUBRID_Docs/CMT/images/manual/201305/nf_05.png&quot; width=&quot;710&quot; height=&quot;527&quot; /&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="CMT"/>
            
   </entry>
   <entry>
      <title>Where can I find a list of DB Optimisations that are there in CUBRID</title>
      <id>http://www.cubrid.org/673738</id>
      <published>2013-06-07T15:37:55-07:00</published>
      <updated>2013-06-10T03:09:19-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/673738"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/673738#comment"/>
      <author>
         <name>dievs</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am working to create a custom version of CUBRID Database.&lt;/p&gt;
&lt;p&gt;As part of this, I would like to work on and improve CUBRID by applying DB optimisation logic and code to CUBRID&apos;s code. I am well versed in most such (commonly used) optimisations that are part of MySQL. I am referring to not only SQL code optimisation - I am also referring to algorithms/strategies used by CUBRID DB server itself to improve performance/reduce CPU/RAM usage etc.&lt;/p&gt;
&lt;p&gt;What I wish to know is this - where can I find such a detailed list of optimisations that are already there in CUBRID--&amp;gt; so that then I can check off one by one those optimisations that I wish to apply (on CUBRID) and finally be left with only those optimisations that are not already there in CUBRID?&lt;/p&gt;
&lt;p&gt;This would be far more easy than going through CUBRID&apos;s source and finding/searching for such optimisations/algorithms that are implemented in CUBRID.&lt;/p&gt;
&lt;p&gt;Yours sincerely,&lt;/p&gt;
&lt;p&gt;Arvind.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="OPTIMIZE"/>
            <category term="optimization"/>
            
   </entry>
   <entry>
      <title>Embrace SQL with CUBRID and jOOQ</title>
      <id>http://www.cubrid.org/674747</id>
      <published>2013-06-09T23:55:25-07:00</published>
      <updated>2013-06-10T02:05:13-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/674747"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/674747#comment"/>
      <author>
         <name>Lukas Eder</name>
                  <uri>http://www.jooq.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;em&gt;This is a guest post by Lukas Eder, the creator of jOOQ open source Java API for typesafe SQL modeling.&amp;nbsp;&lt;/em&gt;&lt;em&gt;&lt;b&gt;If you develop or use an open source application&lt;/b&gt;&amp;nbsp;and would like to tell the world about it, CUBRID open source database project is&amp;nbsp;&lt;a href=&quot;/blog/cubrid-life/tell-about-your-open-source-project-on-cubrid-blog/&quot; title=&quot;Tell about your open source project on CUBRID Blog. We&apos;ll pay for Facebook Ads.&quot;&gt;accepting guest posts&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Big Data, the Web and SQL&lt;/h2&gt;
&lt;p&gt;In recent years, software companies have started to raise millions up to billions of dollars getting acquired by a big player, such as Google, Facebook, Yahoo! or Microsoft. Very often, the assumed value of such deals lay in the fact that &lt;em&gt;Big Data&lt;/em&gt; could be purchased along with such acquisitions. &quot;Social&quot; &lt;em&gt;Big Data&lt;/em&gt; was generated by millions of users over the web. It seemed too big to fit in classic relational databases, which is why the purchases also included buying the proprietary, rather short-lived technologies used to maintain &lt;em&gt;Big Data&lt;/em&gt;. Most of the new companies thus experimented with &lt;em&gt;NoSQL&lt;/em&gt; in one form or another.&lt;/p&gt;
&lt;p&gt;SQL, on the other hand, has come a long way. SQL is a very expressive and powerful language used to model queries against any type of data, albeit mostly relational. At the same time, SQL is standardised and quite open. CUBRID is a good example of an object-relational database, which combines the expressiveness of SQL with high availability, sharding, and many other features needed to manage &lt;em&gt;Big Data&lt;/em&gt;! In other words, CUBRID is the proof that SQL can be an adequate technology for the modern web.&lt;/p&gt;
&lt;h2&gt;Querying CUBRID with jOOQ&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jooq.org&quot;&gt;jOOQ&lt;/a&gt; is a Java API modelling SQL as an internal domain-specific language directly in Java. It features a built-in code generator to generate Java classes from your database model. These generated classes can then be used to create typesafe SQL queries directly in Java. A simple example of how this works with CUBRID can be seen in this &lt;a href=&quot;/wiki_apps/entry/jooq-cubrid-tutorial&quot;&gt;jOOQ CUBRID tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The idea of creating fluent APIs in Java is not new. Usually, Martin Fowler takes most credits for his &lt;a href=&quot;http://martinfowler.com/bliki/FluentInterface.html&quot;&gt;elaborations on the subject&lt;/a&gt;. After that, many approaches towards building internal domain-specific languages have surfaced, mostly in unit testing environments (e.g. &lt;a href=&quot;http://jmock.org&quot;&gt;JMock&lt;/a&gt; and &lt;a href=&quot;https://code.google.com/p/mockito&quot;&gt;Mockito&lt;/a&gt;). Apart from &lt;a href=&quot;http://www.jooq.org&quot;&gt;jOOQ&lt;/a&gt;, there are also a couple of fluent APIs that model SQL as a language in Java. These include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.h2database.com/html/jaqu.html&quot;&gt;JaQu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://onewebsql.com&quot;&gt;OneWebSQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://quaere.codehaus.org&quot;&gt;Quaere&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.querydsl.com&quot;&gt;QueryDSL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://java.net/projects/squill&quot;&gt;Squill&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Among the above, QueryDSL is the only other API with a comparable traction to &lt;a href=&quot;http://www.jooq.org&quot;&gt;jOOQ&lt;/a&gt;&apos;s. While QueryDSL hides the full SQL expressiveness behind a &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/vstudio/bb397926.aspx&quot;&gt;LINQesque API&lt;/a&gt;, jOOQ strongly focuses on SQL only. Unlike any of the above SQL abstraction APIs, jOOQ combines these features:&lt;/p&gt;
&lt;h3&gt;A BNF defines jOOQ&apos;s fluent API&lt;/h3&gt;
&lt;p&gt;jOOQ uses next generation techniques to implement its fluent API. These techniques involve a formal &lt;a href=&quot;http://blog.jooq.org/2012/01/19/jooqs-fluent-api-in-bnf-notation&quot;&gt;BNF notation&lt;/a&gt; specifying API type and method hierarchies:&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; height=&quot;441&quot; width=&quot;700&quot; alt=&quot;jooq-select-02.png&quot; src=&quot;/files/attach/images/220547/747/674/jooq-select-02.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;With a formal BNF, jOOQ&apos;s fluent API is much more robust and typesafe, as it will dictate syntax correctness in a more formal way than ordinary builder APIs.&lt;/p&gt;
&lt;h3&gt;jOOQ embraces usage of stored procedures&lt;/h3&gt;
&lt;p&gt;When closely coupling with your favourite relational database, you will likely want to make use of stored procedures and functions, directly in your SQL. jOOQ embraces this fact and allows for &lt;a href=&quot;http://www.jooq.org/doc/3.0/manual/sql-execution/stored-procedures&quot;&gt;typesafe embedding of stored functions&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;jOOQ embraces usage of row value expressions&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jooq.org/doc/3.0/manual/sql-building/column-expressions/row-value-expressions&quot;&gt;Row value expressions&lt;/a&gt; (also called tuples, records) are at the heart of SQL. Few libraries outside of the SQL world will be able to model the fact that the following predicates are type-safe:&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;SELECT * FROM t1 WHERE t1.a = (SELECT t2.a FROM t2)
-- Types must match:   ^^^^           ^^^^

SELECT * FROM t1 WHERE (t1.a, t1.b) IN (SELECT t2.a, t2.b FROM t2)
-- Types must match:   ^^^^^^^^^^^^            ^^^^^^^^^^

SELECT t1.a, t1.b FROM t1 UNION SELECT t2.a, t2.b FROM t2
--     ^^^^^^^^^^ Types must match     ^^^^^^^^^^&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;jOOQ will leverage the Java compiler to help you check the above:&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;select().from(t1).where(t1.a.eq(select(t2.a).from(t2));
// Type-check here: -----------------&amp;gt; ^^^^

select().from(t1).where(row(t1.a, t1.b).in(select(t2.a, t2.b).from(t2)));
// Type-check here: ----------------------------&amp;gt; ^^^^^^^^^^

select(t1.a, t1.b).from(t1).union(select(t2.a, t2.b).from(t2));
// Type-check here: -------------------&amp;gt; ^^^^^^^^^^&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;jOOQ emulates built-in functions and SQL clauses&lt;/h3&gt;
&lt;p&gt;Providing support for simple SQL clauses is easy: &lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;DISTINCT&lt;/code&gt;, &lt;code&gt;FROM&lt;/code&gt;, &lt;code&gt;JOIN&lt;/code&gt;, &lt;code&gt;GROUP BY&lt;/code&gt;, etc. Implementing &quot;real&quot; SQL is much harder, though. Take the above row value expressions, for instance. They are currently not supported in CUBRID, but you can use them nonetheless with jOOQ. jOOQ emulates missing functions and SQL clauses for you as can be seen &lt;a href=&quot;http://java.dzone.com/articles/sql-query-transformation-fun&quot;&gt;in this syndicated blog post&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;jOOQ renders specialised SQL for 14 major RDBMS vendors&lt;/h3&gt;
&lt;p&gt;Instead of generalising and abstracting advanced standard and vendor-specific SQL features, such as JPA and tools built upon JPA, jOOQ sees good things in each vendor-specific syntax element. You know your database well, so you want to leverage it, not abstract it.&lt;/p&gt;
&lt;h3&gt;jOOQ is a platform&lt;/h3&gt;
&lt;p&gt;jOOQ is much more than just a SQL library. For example, it features the very useful &lt;a href=&quot;http://www.jooq.org/doc/3.0/manual/tools/jooq-console&quot;&gt;jOOQ Console&lt;/a&gt;, which helps you debug and profile your jOOQ-generated SQL statements in any environment, without the need for expensive third-party tools:&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; height=&quot;525&quot; width=&quot;700&quot; alt=&quot;jooq-console-01.png&quot; src=&quot;/files/attach/images/220547/747/674/jooq-console-01.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The jOOQ Console also includes on-the-fly SQL editing tools as well as breakpoint capability for advanced debugging.&lt;/p&gt;
&lt;h3&gt;More feature comparisons&lt;/h3&gt;
&lt;p&gt;More feature comparisons can be found here, &lt;a href=&quot;http://blog.jooq.org/2012/05/17/onewebsql-another-competitor-in-the-sql-schema-generation-business&quot;&gt;in this blog post&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Getting productive with jOOQ&lt;/h2&gt;
&lt;p&gt;jOOQ is a vision where SQL matters again to the Java developer. While some have called ORM to be the &lt;a href=&quot;http://www.codinghorror.com/blog/2006/06/object-relational-mapping-is-the-vietnam-of-computer-science.html&quot;&gt;Vietnam of Computer Science&lt;/a&gt;, jOOQ is the &lt;a href=&quot;http://www.jooq.org&quot;&gt;Peace Treaty Between SQL and Java&lt;/a&gt;. Using the above and many more features, you can be productive again when writing high-performing, specialised SQL against your favourite database directly in Java, typesafely compiled by your Java compiler.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;By Lukas Eder, the creator of jOOQ.&amp;nbsp;&lt;/em&gt;&lt;em&gt;Follow him on Twitter&amp;nbsp;&lt;a href=&quot;https://twitter.com/JavaOOQ&quot;&gt;@JavaOOQ&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;I&apos;m a Java and SQL enthusiast developer currently contracting for Adobe Systems in Basel, Switzerland. Originating from the E-Banking field, I have a strong Oracle SQL background. I&apos;m the creator of jOOQ, a comprehensive SQL library for Java.&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;</content>
                  <category term="jOOQ"/>
            <category term="Java"/>
            <category term="API"/>
            <category term="ORM"/>
            <category term="ActiveRecord"/>
            <category term="SQL"/>
            <category term="CUBRID Affiliates"/>
            
   </entry>
   <entry>
      <title>ApiAxle - open source API management and analytics proxy</title>
      <id>http://www.cubrid.org/674524</id>
      <published>2013-06-09T20:43:54-07:00</published>
      <updated>2013-06-10T02:03:36-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/674524"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/674524#comment"/>
      <author>
         <name>Phil Jackson</name>
                  <uri>http://apiaxle.com</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;img src=&quot;/files/attach/images/220547/524/674/apiaxle-fp-diagram.png&quot; alt=&quot;apiaxle-fp-diagram.png&quot; width=&quot;438&quot; height=&quot;323&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is a guest post by Phil Jackson, the creator of ApiAxle open source API management and analytics solution.&amp;nbsp;&lt;/em&gt;&lt;em&gt;&lt;b&gt;If you develop or use an open source application&lt;/b&gt; and would like to tell the world about it, CUBRID open source database project is &lt;a href=&quot;/blog/cubrid-life/tell-about-your-open-source-project-on-cubrid-blog/&quot; title=&quot;Tell about your open source project on CUBRID Blog. We&apos;ll pay for Facebook Ads.&quot;&gt;accepting guest posts&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://apiaxle.com/&quot;&gt;ApiAxle&lt;/a&gt; is an API management solution which is open source and free. The basic premise is that you build your API, put ApiAxle in front of it and it will handle user authentication, rate limiting, statistics, etc. I represent a business which generates a revenue through support and consultancy, but first and foremost I am a developer who loves APIs and the idea of companies exposing their data to enable people to build some brilliant things. As a company we are enjoying building a great product and watching it gain traction amongst fellow hackers.&lt;/p&gt;
&lt;h2 id=&quot;theproblem&quot;&gt;The API problem&lt;/h2&gt;
&lt;p&gt;We noticed a space in the market for an open source, on-premise proxy which did not cost the earth and did not involve sending your data over multiple, high-latency hops out into the cloud.&lt;/p&gt;
&lt;p&gt;Where a developer these days can type &lt;code&gt;apt-get install nginx&lt;/code&gt; to get a solid webserver, there was not really an equivalent for an API management system. Building out the features we provide can be a time-consuming, monotonous and error-prone process that we really hope people do not keep having to perform.&lt;/p&gt;
&lt;h2 id=&quot;thesolution&quot;&gt;The solution&lt;/h2&gt;
&lt;p&gt;That is where we come in. We want to bury our head in security documentation and RFCs so that you can concentrate on making a great API. With a few &lt;a href=&quot;http://apiaxle.com/products.html&quot;&gt;simple commands&lt;/a&gt; you can be up and running within 20 minutes. Within 30 you can be on-boarding customers, authenticating them and getting detailed statistics about their usage. You will also get &lt;a href=&quot;http://apiaxle.com/docs/caching/&quot;&gt;caching&lt;/a&gt;, rate limiting, HTTPS support and a highly configurable logging system.&lt;/p&gt;
&lt;h2 id=&quot;howitworks&quot;&gt;How it works&lt;/h2&gt;
&lt;p&gt;There are three components in ApiAxle:&lt;/p&gt;
&lt;h3 id=&quot;therepl&quot;&gt;The REPL&lt;/h3&gt;
&lt;p&gt;You probably want this first. The repl allows you to configure ApiAxle from the command line. Setting up an API and API keys ready for the proxy to work with is easy. It fires up an instance of ApiAxle&amp;rsquo;s own HTTP API in the background and uses that to modify aspects of the system. Anything you can do in the REPL you can do programmatically with the API too.&lt;/p&gt;
&lt;p&gt;Install:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ sudo npm install apiaxle-repl&lt;/pre&gt;
&lt;p&gt;Start:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ apiaxle&lt;/pre&gt;
&lt;p&gt;Configure an API and a new key to use the API with:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;axle&amp;gt; key &quot;05050c14643dc&quot; create
axle&amp;gt; api &quot;acme&quot; create endPoint=&quot;localhost:81&quot;
axle&amp;gt; api &quot;acme&quot; linkkey &quot;05050c14643dc&quot;&lt;/pre&gt;
&lt;h3 id=&quot;theproxy&quot;&gt;The Proxy&lt;/h3&gt;
&lt;p&gt;The kernel of the system. This goes between the Internet and your API and does the authentication, throttling, caching and statistics collection. It&amp;rsquo;is fast, secure and easy to setup. You will need either the REPL or the API to configure it first.&lt;/p&gt;
&lt;p&gt;It does not matter what your API actually outputs - ApiAxle never modifies the body of a response. With regards to errors (e.g. user over quota) you can tell ApiAxle what format they should be in. We support XML or JSON. If you have Node.js installed, installation is as simple as:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ sudo npm install apiaxle-proxy&lt;/pre&gt;
&lt;p&gt;Then start the proxy with:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ apiaxle-proxy&lt;/pre&gt;
&lt;h3 id=&quot;theapi&quot;&gt;The API&lt;/h3&gt;
&lt;p&gt;Bear with me, this gets a bit meta. This is ApiAxle&amp;rsquo;s own HTTP API which gives you full control over your APIs and the API keys and keyrings used to access them. You can view statistics about individual APIs and API keys from week long granularities right down to&amp;nbsp;near-real-time hits at a single second granularity.&lt;/p&gt;
&lt;p&gt;Install:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ sudo npm install apiaxle-api&lt;/pre&gt;
&lt;p&gt;Start:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ apiaxle-api&lt;/pre&gt;
&lt;p&gt;Find out which APIs you have configured:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ curl &quot;localhost:3000/v1/apis&quot;&lt;/pre&gt;
&lt;h2 id=&quot;wherewereheaded&quot;&gt;Where we are headed to&lt;/h2&gt;
&lt;p&gt;We have lots planned, to summarise:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Client drivers for the API. Demand is high for PHP and Ruby so we will get them done ASAP.&lt;/li&gt;
&lt;li&gt;Now that OAuth2 has been ratified we will be working on getting that in as an authentication method.&lt;/li&gt;
&lt;li&gt;We are working on a dashboard which will give you a way to manage your APIs, keys, keyrings and give you a way to view real-time and historical statistics - this will be a paid-for service.&lt;/li&gt;
&lt;li&gt;We will be pushing out a user registration system soon so that you can on-board and bill customers without any manual intervention.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So the future is exciting. We are really looking forward to meeting more developers that are interested in APIs and the huge ecosystem that is formed around them. Please feel free to &lt;a href=&quot;mailto:phil@apiaxle.com&quot;&gt;get in touch&lt;/a&gt; with any questions or just to say hi!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;By Phil Jackson, the creator of ApiAxle. Follow him on Twitter &lt;a href=&quot;https://twitter.com/philjackson&quot;&gt;@philjackson&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;After receiving his computing degree from Teesside University, Phil became a software engineer. As he moved through industry, he found himself becoming increasingly fascinated with APIs and, after helping the BBC write their iPlayer API, founded Qwerly, a company that aggregated social profile information and offered it to companies for insight/marketing purposes. After selling Qwerly to a competitor, taking some time off, Phil wrote the code which would eventually make up ApiAxle. Now he&apos;s running ApiAxle full-time and hopes it will become the ubiquitous, open source tool for managing APIs.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;</content>
                  <category term="ApiAxle"/>
            <category term="API"/>
            <category term="analytics"/>
            <category term="proxy"/>
            <category term="CUBRID Affiliates"/>
            
   </entry>
   <entry>
      <title>LIKE 조건식</title>
      <id>http://www.cubrid.org/355694</id>
      <published>2012-05-22T03:33:39-07:00</published>
      <updated>2013-06-08T00:41:47-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/355694"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/355694#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h4&gt;LIKE 조건식&lt;/h4&gt;
&lt;h6&gt;설명&lt;/h6&gt;
&lt;p&gt;&lt;span class=&quot;keyword&quot;&gt;LIKE&lt;/span&gt; 조건식은 문자열 데이터 간의 패턴을 비교하는 연산을 수행하여, 검색어와 일치하는 패턴의 문자열이 검색되면 &lt;span class=&quot;keyword&quot;&gt;TRUE&lt;/span&gt;를 반환한다. 패턴 비교 대상이 되는 도메인은 &lt;span class=&quot;keyword&quot;&gt;CHAR&lt;/span&gt;, &lt;span class=&quot;keyword&quot;&gt;VARCHAR&lt;/span&gt;, &lt;span class=&quot;keyword&quot;&gt;STRING&lt;/span&gt;이며, &lt;span class=&quot;keyword&quot;&gt;NCHAR&lt;/span&gt; 또는 &lt;span class=&quot;keyword&quot;&gt;BIT&lt;/span&gt; 타입에 대해서는 &lt;span class=&quot;keyword&quot;&gt;LIKE&lt;/span&gt; 검색을 수행할 수 없다. &lt;span class=&quot;keyword&quot;&gt;LIKE&lt;/span&gt; 키워드 앞에 &lt;span class=&quot;keyword&quot;&gt;NOT&lt;/span&gt;이 있으면 &lt;span class=&quot;keyword&quot;&gt;LIKE&lt;/span&gt; 연산의 결과에 &lt;span class=&quot;keyword&quot;&gt;NOT&lt;/span&gt; 연산을 수행하여 결과를 반환한다.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;keyword&quot;&gt;LIKE&lt;/span&gt; 연산자 오른쪽에 오는 검색어에는 임의의 문자 또는 문자열에 대응되는 와일드 카드(wild card) 문자열을 포함할 수 있으며, &lt;span class=&quot;keyword&quot;&gt;%&lt;/span&gt;(percent)와 &lt;span class=&quot;keyword&quot;&gt;_&lt;/span&gt;(underscore)를 사용할 수 있다. &lt;span class=&quot;keyword&quot;&gt;%&lt;/span&gt;는 길이가 0 이상인 임의의 문자열에 대응되며, &lt;span class=&quot;keyword&quot;&gt;_&lt;/span&gt;는 1개의 문자에 대응된다. 또한, 이스케이프 문자(escape character)는 와일드 카드 문자 자체에 대한 검색을 수행할 때 사용되는 문자로서, 사용자에 의해 길이가 1인 다른 문자(&lt;span class=&quot;keyword&quot;&gt;NULL&lt;/span&gt;, 알파벳 또는 숫자)로 지정될 수 있다. 와일드 카드 문자 또는 이스케이프 문자를 포함하는 문자열을 검색어로 사용하는 예제는 아래를 참고한다.&lt;/p&gt;
&lt;h6&gt;구문&lt;/h6&gt;
&lt;p class=&quot;syntax&quot;&gt;&lt;span class=&quot;var&quot;&gt;expression&lt;/span&gt; [ &lt;span class=&quot;keyword&quot;&gt;NOT&lt;/span&gt; ] &lt;span class=&quot;keyword&quot;&gt;LIKE&lt;/span&gt; &lt;span class=&quot;var&quot;&gt;expression&lt;/span&gt; [ &lt;span class=&quot;keyword&quot;&gt;ESCAPE&lt;/span&gt; &lt;span class=&quot;var&quot;&gt;char&lt;/span&gt;]&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;var&quot;&gt;expression&lt;/span&gt; (left) : 문자열 데이터 타입 컬럼이 지정된다. 패턴 비교는 컬럼 값의 첫 번째 문자부터 시작되며, 대소문자를 구분한다.&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;var&quot;&gt;expression&lt;/span&gt; (right) : 검색어를 입력하며, 길이가 0 이상인 문자열이 된다. 이때, 검색어 패턴에는 와일드 카드 문자(&lt;span class=&quot;keyword&quot;&gt;%&lt;/span&gt; 또는 &lt;span class=&quot;keyword&quot;&gt;_&lt;/span&gt;)가 포함될 수 있다.&amp;nbsp;문자열의 길이는 0 이상이다.&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;ESCAPE&lt;/span&gt; &lt;span class=&quot;var&quot;&gt;char&lt;/span&gt; : &lt;span class=&quot;var&quot;&gt;char&lt;/span&gt;에 올 수 있는 문자는 &lt;span class=&quot;keyword&quot;&gt;NULL&lt;/span&gt;, 알파벳, 숫자이다. 만약 검색어의 문자열 패턴이 &quot;_&quot; 또는 &quot;%&quot; 자체를 포함하는 경우 이스케이프&amp;nbsp;문자가 반드시 지정되어야 한다. 예를 들어, 이스케이프&amp;nbsp;문자를 백슬래시(&amp;#92;)로 지정한 후 &apos;10%&apos;인 문자열을 검색하고자 한다면, &lt;span class=&quot;var&quot;&gt;expression&lt;/span&gt; (right)에 &apos;10&amp;#92;%&apos;을 지정해야 한다. 또한, &apos;C:&amp;#92;&apos;인 문자열을 검색하고자 한다면, &lt;span class=&quot;var&quot;&gt;expression&lt;/span&gt; (right)에 &apos;C:&amp;#92;&amp;#92; &apos;을 지정하면 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;참고 사항&lt;/h6&gt;
&lt;p&gt;&lt;span class=&quot;keyword&quot;&gt;LIKE&lt;/span&gt; 조건식은 대소문자를 구분한다. 대소문자를 구분하지 않게 하려면 &lt;a href=&quot;/manual/841/ko/RLIKE 조건식&quot;&gt;RLIKE 조건식&lt;/a&gt;을 이용한다.&lt;/p&gt;
&lt;p&gt;UTF-8과 같은 멀티바이트 문자 세트 환경에서 입력된 데이터에 대해서는 &lt;span class=&quot;keyword&quot;&gt;LIKE&lt;/span&gt; 검색 결과가 정상적이지 않을 수 있다. 이는 문자 세트에 따라 문자열 비교 연산을 수행하는 바이트 단위가 다르기 때문이며, 1바이트 단위로 문자열 비교를 수행하도록 하는 파라미터(&lt;span class=&quot;keyword&quot;&gt;single_byte_compare&lt;/span&gt;=yes)를 &lt;span class=&quot;keyword&quot;&gt;cubrid.conf&lt;/span&gt; 파일에 추가한 후 DB를 재가동하면 정상적인 검색 결과를 얻을 수 있다.&lt;/p&gt;
&lt;p&gt;CUBRID가 지원하는&amp;nbsp;문자 세트에 관한 상세한 설명은 &lt;a href=&quot;/syntax_datatype_string_def.htm&quot;&gt;문자열&amp;nbsp;데이터 타입&lt;/a&gt;을 참고하며, &lt;span class=&quot;keyword&quot;&gt;single_byte_compare&lt;/span&gt; 파라미터에 관한 상세한 설명은 &lt;a href=&quot;/pm/pm_db_classify_etc.htm&quot;&gt;기타 파라미터&lt;/a&gt;를 참고한다.&lt;/p&gt;
&lt;p&gt;LIKE 조건식의 이스케이프 문자 인식은 &lt;span class=&quot;keyword&quot;&gt;cubrid.conf&lt;/span&gt; 파일의 &lt;span class=&quot;keyword&quot;&gt;no_backslash_escapes&lt;/span&gt; 파라미터와 &lt;span class=&quot;keyword&quot;&gt;require_like_escape_character&lt;/span&gt; 파라미터의 설정에 따라 달라진다. 이에 대한 상세한 설명은 구문/타입 관련 파라미터를 참고한다.&lt;/p&gt;
&lt;h6&gt;예제&lt;/h6&gt;
&lt;p class=&quot;codep&quot;&gt;--selection rows where name contains lower case &apos;s&apos;, not upper case&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;SELECT * FROM condition_tbl WHERE name LIKE &apos;%s%&apos;;&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id &amp;nbsp;name &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dept_name &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;salary&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;======================================================================&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3 &amp;nbsp;&apos;Jones &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos;sales&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5400000&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;--selection rows where second letter is &apos;O&apos; or &apos;o&apos;&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;SELECT * FROM condition_tbl WHERE UPPER(name) LIKE &apos;_O%&apos;;&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id &amp;nbsp;name &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dept_name &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;salary&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;======================================================================&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2 &amp;nbsp;&apos;Moy &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos;sales&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3000000&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3 &amp;nbsp;&apos;Jones &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos;sales&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5400000&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;--selection rows where name is 3 characters&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;SELECT * FROM condition_tbl WHERE name LIKE &apos;___&apos;;&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id &amp;nbsp;name &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dept_name &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;salary&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;======================================================================&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 &amp;nbsp;&apos;Kim &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos;devel&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4000000&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2 &amp;nbsp;&apos;Moy &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos;sales&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3000000&lt;/p&gt;
&lt;p class=&quot;codep&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5 &amp;nbsp;&apos;Kim &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&apos;account&apos; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3800000&lt;/p&gt;&lt;/div&gt;</content>
                  
   </entry>
</feed> 
