| ... | ... | @@ -1458,7 +1458,7 @@ L<DBIx::Custom Wiki|https://github.com/yuki-kimoto/DBIx-Custom/wiki> | 
| 1458 | 1458 | my $cache = $dbi->cache; | 
| 1459 | 1459 | $dbi = $dbi->cache(1); | 
| 1460 | 1460 |  | 
| 1461 | -Enable caching of L<DBIx::Custom::Query>, | |
| 1461 | +Enable caching L<DBIx::Custom::Query>, | |
| 1462 | 1462 | default to 1. | 
| 1463 | 1463 |  | 
| 1464 | 1464 | =head2 C<data_source> | 
| ... | ... | @@ -1491,7 +1491,7 @@ default to the following values. | 
| 1491 | 1491 | } | 
| 1492 | 1492 |  | 
| 1493 | 1493 | You should not change C<AutoCommit> value directly | 
| 1494 | -to check if the process is in transaction correctly. | |
| 1494 | +to check if the process is in transaction. | |
| 1495 | 1495 | L<DBIx::Custom> determin the process is in transaction | 
| 1496 | 1496 | if AutoCommit is 0. | 
| 1497 | 1497 |  | 
| ... | ... | @@ -1571,6 +1571,13 @@ You can use three column name to apply filter to column data. | 
| 1571 | 1571 | 2. table.column : book.author | 
| 1572 | 1572 | 3. table__column : book__author | 
| 1573 | 1573 |  | 
| 1574 | +=head2 C<cache_method> | |
| 1575 | + | |
| 1576 | + $dbi = $dbi->cache_method(\&cache_method); | |
| 1577 | + $cache_method = $dbi->cache_method | |
| 1578 | + | |
| 1579 | +Method to set and get caches. | |
| 1580 | + | |
| 1574 | 1581 | =head2 C<connect> | 
| 1575 | 1582 |  | 
| 1576 | 1583 | my $dbi = DBIx::Custom->connect(data_source => "dbi:mysql:database=dbname", | 
| ... | ... | @@ -1616,87 +1623,246 @@ or the count of affected rows if insert, update, delete statement is executed. | 
| 1616 | 1623 |  | 
| 1617 | 1624 | =head2 C<delete> | 
| 1618 | 1625 |  | 
| 1619 | - $dbi->delete(table => $table, | |
| 1620 | - where => \%where, | |
| 1621 | - append => $append, | |
| 1622 | - filter => \@filter, | |
| 1623 | - query => 1); | |
| 1624 | - | |
| 1625 | -Execute delete statement. | |
| 1626 | -C<delete> method have C<table>, C<where>, C<append>, and C<filter> arguments. | |
| 1627 | -C<table> is a table name. | |
| 1628 | -C<where> is where clause. this must be hash reference. | |
| 1629 | -C<append> is a string added at the end of the SQL statement. | |
| 1630 | -C<filter> is filters when parameter binding is executed. | |
| 1631 | -C<query> is if you don't execute sql and get L<DBIx::Custom::Query> object as return value. | |
| 1632 | -default to 0. This is EXPERIMENTAL. | |
| 1633 | -Return value of C<delete()> is the count of affected rows. | |
| 1626 | +    $dbi->delete(table => 'book', where => {title => 'Perl'}); | |
| 1627 | + | |
| 1628 | +Delete statement. | |
| 1629 | + | |
| 1630 | +The following opitons are currently available. | |
| 1631 | + | |
| 1632 | +=item C<table> | |
| 1633 | + | |
| 1634 | +Table name. | |
| 1635 | + | |
| 1636 | + $dbi->delete(table => 'book'); | |
| 1637 | + | |
| 1638 | +=item C<where> | |
| 1639 | + | |
| 1640 | +Where clause. This is hash reference or L<DBIx::Custom::Where> object. | |
| 1641 | + | |
| 1642 | + # Hash reference | |
| 1643 | +    $dbi->delete(where => {title => 'Perl'}); | |
| 1644 | + | |
| 1645 | + # DBIx::Custom::Where object | |
| 1646 | + my $where = $dbi->where( | |
| 1647 | +        clause => ['and', '{= author}', '{like title}'], | |
| 1648 | +        param  => {author => 'Ken', title => '%Perl%'} | |
| 1649 | + ); | |
| 1650 | + $dbi->delete(where => $where); | |
| 1651 | + | |
| 1652 | +=item C<append> | |
| 1653 | + | |
| 1654 | +Append statement to last of SQL. This is string. | |
| 1655 | + | |
| 1656 | + $dbi->delete(append => 'order by title'); | |
| 1657 | + | |
| 1658 | +=item C<filter> | |
| 1659 | + | |
| 1660 | +Filter, executed before data is send to database. This is array reference. | |
| 1661 | +Filter value is code reference or | |
| 1662 | +filter name registerd by C<register_filter()>. | |
| 1663 | + | |
| 1664 | + # Basic | |
| 1665 | + $dbi->delete( | |
| 1666 | + filter => [ | |
| 1667 | +            title  => sub { uc $_[0] } | |
| 1668 | +            author => sub { uc $_[0] } | |
| 1669 | + ] | |
| 1670 | + ); | |
| 1671 | + | |
| 1672 | + # At once | |
| 1673 | + $dbi->delete( | |
| 1674 | + filter => [ | |
| 1675 | +            [qw/title author/]  => sub { uc $_[0] } | |
| 1676 | + ] | |
| 1677 | + ); | |
| 1678 | + | |
| 1679 | + # Filter name | |
| 1680 | + $dbi->delete( | |
| 1681 | + filter => [ | |
| 1682 | + title => 'upper_case', | |
| 1683 | + author => 'upper_case' | |
| 1684 | + ] | |
| 1685 | + ); | |
| 1686 | + | |
| 1687 | +These filters are added to the C<out> filters, set by C<apply_filter()>. | |
| 1688 | + | |
| 1689 | +=item C<query EXPERIMENTAL> | |
| 1690 | + | |
| 1691 | +Get L<DBIx::Custom::Query> object instead of executing SQL. | |
| 1692 | +This is true or false value. | |
| 1693 | + | |
| 1694 | + my $query = $dbi->delete(query => 1); | |
| 1695 | + | |
| 1696 | +You can check SQL. | |
| 1697 | + | |
| 1698 | + my $sql = $query->sql; | |
| 1634 | 1699 |  | 
| 1635 | 1700 | =head2 C<delete_all> | 
| 1636 | 1701 |  | 
| 1637 | 1702 | $dbi->delete_all(table => $table); | 
| 1638 | 1703 |  | 
| 1639 | -Execute delete statement to delete all rows. | |
| 1640 | -Arguments is same as C<delete> method, | |
| 1641 | -except that C<delete_all> don't have C<where> argument. | |
| 1642 | -Return value of C<delete_all()> is the count of affected rows. | |
| 1704 | +Delete statement to delete all rows. | |
| 1705 | +Options is same as C<delete()>. | |
| 1643 | 1706 |  | 
| 1644 | -=head3 C<delete_at() EXPERIMENTAL> | |
| 1707 | +=head2 C<delete_at() EXPERIMENTAL> | |
| 1645 | 1708 |  | 
| 1646 | -To delete row by using primary key, use C<delete_at()> | |
| 1709 | +Delete statement, using primary key. | |
| 1647 | 1710 |  | 
| 1648 | 1711 | $dbi->delete_at( | 
| 1649 | 1712 | table => 'book', | 
| 1650 | - primary_key => ['id'], | |
| 1651 | - where => ['123'] | |
| 1713 | + primary_key => 'id', | |
| 1714 | + where => '5' | |
| 1652 | 1715 | ); | 
| 1653 | 1716 |  | 
| 1654 | -In this example, row which id column is 123 is deleted. | |
| 1655 | -NOTE that you must pass array reference as C<where>. | |
| 1717 | +This method is same as C<delete()> exept that | |
| 1718 | +C<primary_key> is specified and C<where> is constant value or array refrence. | |
| 1719 | +all option of C<delete()> is available. | |
| 1656 | 1720 |  | 
| 1657 | -You can also write arguments like this. | |
| 1721 | +=head2 C<primary_key> | |
| 1658 | 1722 |  | 
| 1659 | - $dbi->delete_at( | |
| 1660 | - table => 'book', | |
| 1661 | - primary_key => ['id'], | |
| 1662 | -        param => {id => '123'} | |
| 1663 | - ); | |
| 1723 | +Primary key. This is constant value or array reference. | |
| 1724 | + | |
| 1725 | + # Constant value | |
| 1726 | + $dbi->delete(primary_key => 'id'); | |
| 1727 | + | |
| 1728 | + # Array reference | |
| 1729 | + $dbi->delete(primary_key => ['id1', 'id2' ]); | |
| 1730 | + | |
| 1731 | +This is used to create where clause. | |
| 1732 | + | |
| 1733 | +=head2 C<where> | |
| 1734 | + | |
| 1735 | +Where clause, created from primary key information. | |
| 1736 | +This is constant value or array reference. | |
| 1737 | + | |
| 1738 | + # Constant value | |
| 1739 | + $dbi->delete(where => 5); | |
| 1740 | + | |
| 1741 | + # Array reference | |
| 1742 | + $dbi->delete(where => [3, 5]); | |
| 1743 | + | |
| 1744 | +In first examle, the following SQL is created. | |
| 1745 | + | |
| 1746 | + delete from book where id = ?; | |
| 1747 | + | |
| 1748 | +Place holder is set to 5. | |
| 1664 | 1749 |  | 
| 1665 | 1750 | =head2 C<insert> | 
| 1666 | 1751 |  | 
| 1667 | - $dbi->insert(table => $table, | |
| 1668 | - param => \%param, | |
| 1669 | - append => $append, | |
| 1670 | - filter => \@filter, | |
| 1671 | - query => 1); | |
| 1752 | + $dbi->insert( | |
| 1753 | + table => 'book', | |
| 1754 | +        param  => {title => 'Perl', author => 'Ken'} | |
| 1755 | + ); | |
| 1756 | + | |
| 1757 | +Insert statement. | |
| 1758 | + | |
| 1759 | +The following opitons are currently available. | |
| 1760 | + | |
| 1761 | +=item C<table> | |
| 1762 | + | |
| 1763 | +Table name. | |
| 1764 | + | |
| 1765 | + $dbi->insert(table => 'book'); | |
| 1766 | + | |
| 1767 | +=item C<param> | |
| 1768 | + | |
| 1769 | +=item C<param> | |
| 1770 | + | |
| 1771 | +Insert data. This is hash reference. | |
| 1772 | + | |
| 1773 | +    $dbi->insert(param => {title => 'Perl'}); | |
| 1774 | + | |
| 1775 | +=item C<append> | |
| 1776 | + | |
| 1777 | +Append statement to last of SQL. This is string. | |
| 1778 | + | |
| 1779 | + $dbi->insert(append => 'order by title'); | |
| 1780 | + | |
| 1781 | +=item C<filter> | |
| 1782 | + | |
| 1783 | +Filter, executed before data is send to database. This is array reference. | |
| 1784 | +Filter value is code reference or | |
| 1785 | +filter name registerd by C<register_filter()>. | |
| 1786 | + | |
| 1787 | + # Basic | |
| 1788 | + $dbi->insert( | |
| 1789 | + filter => [ | |
| 1790 | +            title  => sub { uc $_[0] } | |
| 1791 | +            author => sub { uc $_[0] } | |
| 1792 | + ] | |
| 1793 | + ); | |
| 1794 | + | |
| 1795 | + # At once | |
| 1796 | + $dbi->insert( | |
| 1797 | + filter => [ | |
| 1798 | +            [qw/title author/]  => sub { uc $_[0] } | |
| 1799 | + ] | |
| 1800 | + ); | |
| 1801 | + | |
| 1802 | + # Filter name | |
| 1803 | + $dbi->insert( | |
| 1804 | + filter => [ | |
| 1805 | + title => 'upper_case', | |
| 1806 | + author => 'upper_case' | |
| 1807 | + ] | |
| 1808 | + ); | |
| 1809 | + | |
| 1810 | +These filters are added to the C<out> filters, set by C<apply_filter()>. | |
| 1811 | + | |
| 1812 | +=item C<query EXPERIMENTAL> | |
| 1813 | + | |
| 1814 | +Get L<DBIx::Custom::Query> object instead of executing SQL. | |
| 1815 | +This is true or false value. | |
| 1816 | + | |
| 1817 | + my $query = $dbi->insert(query => 1); | |
| 1672 | 1818 |  | 
| 1673 | -Execute insert statement. | |
| 1674 | -C<insert> method have C<table>, C<param>, C<append> | |
| 1675 | -and C<filter> arguments. | |
| 1676 | -C<table> is a table name. | |
| 1677 | -C<param> is the pairs of column name value. this must be hash reference. | |
| 1678 | -C<append> is a string added at the end of the SQL statement. | |
| 1679 | -C<filter> is filters when parameter binding is executed. | |
| 1680 | -C<query> is if you don't execute sql and get L<DBIx::Custom::Query> object as return value. | |
| 1681 | -default to 0. This is EXPERIMENTAL. | |
| 1682 | -This is overwrites C<default_bind_filter>. | |
| 1683 | -Return value of C<insert()> is the count of affected rows. | |
| 1819 | +You can check SQL. | |
| 1684 | 1820 |  | 
| 1685 | -=head3 C<insert_at() EXPERIMENTAL> | |
| 1821 | + my $sql = $query->sql; | |
| 1822 | + | |
| 1823 | +=head2 C<insert_at() EXPERIMENTAL> | |
| 1686 | 1824 |  | 
| 1687 | -To insert row by using primary key, use C<insert_at()> | |
| 1825 | +Insert statement, using primary key. | |
| 1688 | 1826 |  | 
| 1689 | 1827 | $dbi->insert_at( | 
| 1690 | 1828 | table => 'book', | 
| 1691 | - primary_key => ['id'], | |
| 1692 | - where => ['123'], | |
| 1693 | -        param => {name => 'Ken'} | |
| 1829 | + primary_key => 'id', | |
| 1830 | + where => '5', | |
| 1831 | +        param => {title => 'Perl'} | |
| 1694 | 1832 | ); | 
| 1695 | 1833 |  | 
| 1696 | -In this example, row which id column is 123 is inserted. | |
| 1697 | -NOTE that you must pass array reference as C<where>. | |
| 1698 | -If C<param> contains primary key, | |
| 1699 | -the key and value is delete from C<param>. | |
| 1834 | +This method is same as C<insert()> exept that | |
| 1835 | +C<primary_key> is specified and C<where> is constant value or array refrence. | |
| 1836 | +all option of C<insert()> is available. | |
| 1837 | + | |
| 1838 | +=head2 C<primary_key> | |
| 1839 | + | |
| 1840 | +Primary key. This is constant value or array reference. | |
| 1841 | + | |
| 1842 | + # Constant value | |
| 1843 | + $dbi->insert(primary_key => 'id'); | |
| 1844 | + | |
| 1845 | + # Array reference | |
| 1846 | + $dbi->insert(primary_key => ['id1', 'id2' ]); | |
| 1847 | + | |
| 1848 | +This is used to create parts of insert data. | |
| 1849 | + | |
| 1850 | +=head2 C<where> | |
| 1851 | + | |
| 1852 | +Parts of Insert data, create from primary key information. | |
| 1853 | +This is constant value or array reference. | |
| 1854 | + | |
| 1855 | + # Constant value | |
| 1856 | + $dbi->insert(where => 5); | |
| 1857 | + | |
| 1858 | + # Array reference | |
| 1859 | + $dbi->insert(where => [3, 5]); | |
| 1860 | + | |
| 1861 | +In first examle, the following SQL is created. | |
| 1862 | + | |
| 1863 | + insert into book (id, title) values (?, ?); | |
| 1864 | + | |
| 1865 | +Place holders are set to 5 and 'Perl'. | |
| 1700 | 1866 |  | 
| 1701 | 1867 | =head2 C<insert_param EXPERIMENTAL> | 
| 1702 | 1868 |  | 
| ... | ... | @@ -1944,14 +2110,14 @@ In above select, the following SQL is created. | 
| 1944 | 2110 |  | 
| 1945 | 2111 | =item C<append> | 
| 1946 | 2112 |  | 
| 1947 | -Appended statement to last of SQL. This is string. | |
| 2113 | +Append statement to last of SQL. This is string. | |
| 1948 | 2114 |  | 
| 1949 | 2115 | $dbi->select(append => 'order by title'); | 
| 1950 | 2116 |  | 
| 1951 | 2117 | =item C<filter> | 
| 1952 | 2118 |  | 
| 1953 | -Filter, executed before data is send to database. This is array reference | |
| 1954 | -and filter value is code reference or | |
| 2119 | +Filter, executed before data is send to database. This is array reference. | |
| 2120 | +Filter value is code reference or | |
| 1955 | 2121 | filter name registerd by C<register_filter()>. | 
| 1956 | 2122 |  | 
| 1957 | 2123 | # Basic | 
| ... | ... | @@ -1977,22 +2143,22 @@ filter name registerd by C<register_filter()>. | 
| 1977 | 2143 | ] | 
| 1978 | 2144 | ); | 
| 1979 | 2145 |  | 
| 1980 | -These filters are added to the C<out> filters set by C<apply_filter()>. | |
| 2146 | +These filters are added to the C<out> filters, set by C<apply_filter()>. | |
| 1981 | 2147 |  | 
| 1982 | 2148 | =item C<query EXPERIMENTAL> | 
| 1983 | 2149 |  | 
| 1984 | 2150 | Get L<DBIx::Custom::Query> object instead of executing SQL. | 
| 1985 | 2151 | This is true or false value. | 
| 1986 | 2152 |  | 
| 1987 | - my $query = $dbi->select(query => 1, ...); | |
| 2153 | + my $query = $dbi->select(query => 1); | |
| 1988 | 2154 |  | 
| 1989 | -You can check executing SQL by this object. | |
| 2155 | +You can check SQL. | |
| 1990 | 2156 |  | 
| 1991 | 2157 | my $sql = $query->sql; | 
| 1992 | 2158 |  | 
| 1993 | 2159 | =back | 
| 1994 | 2160 |  | 
| 1995 | -=head3 C<select_at() EXPERIMENTAL> | |
| 2161 | +=head2 C<select_at() EXPERIMENTAL> | |
| 1996 | 2162 |  | 
| 1997 | 2163 | Select statement, using primary key. | 
| 1998 | 2164 |  | 
| ... | ... | @@ -2002,8 +2168,8 @@ Select statement, using primary key. | 
| 2002 | 2168 | where => '5' | 
| 2003 | 2169 | ); | 
| 2004 | 2170 |  | 
| 2005 | -This method is same as select method exept that | |
| 2006 | -primary_key is specified and C<where> is array reference. | |
| 2171 | +This method is same as C<select()> exept that | |
| 2172 | +C<primary_key> is specified and C<where> is constant value or array refrence. | |
| 2007 | 2173 | all option of C<select()> is available. | 
| 2008 | 2174 |  | 
| 2009 | 2175 | =head2 C<primary_key> | 
| ... | ... | @@ -2016,9 +2182,11 @@ Primary key. This is constant value or array reference. | 
| 2016 | 2182 | # Array reference | 
| 2017 | 2183 | $dbi->select(primary_key => ['id1', 'id2' ]); | 
| 2018 | 2184 |  | 
| 2185 | +This is used to create where clause. | |
| 2186 | + | |
| 2019 | 2187 | =head2 C<where> | 
| 2020 | 2188 |  | 
| 2021 | -Where clause, created by primary key infromation. | |
| 2189 | +Where clause, created from primary key information. | |
| 2022 | 2190 | This is constant value or array reference. | 
| 2023 | 2191 |  | 
| 2024 | 2192 | # Constant value | 
| ... | ... | @@ -2035,33 +2203,78 @@ Place holder is set to 5. | 
| 2035 | 2203 |  | 
| 2036 | 2204 | =head2 C<update> | 
| 2037 | 2205 |  | 
| 2038 | - $dbi->update(table => $table, | |
| 2039 | - param => \%params, | |
| 2040 | - where => \%where, | |
| 2041 | - append => $append, | |
| 2042 | - filter => \@filter, | |
| 2043 | - query => 1) | |
| 2044 | - | |
| 2045 | -Execute update statement. | |
| 2046 | -C<update> method have C<table>, C<param>, C<where>, C<append> | |
| 2047 | -and C<filter> arguments. | |
| 2048 | -C<table> is a table name. | |
| 2049 | -C<param> is column-value pairs. this must be hash reference. | |
| 2050 | -C<where> is where clause. this must be hash reference. | |
| 2051 | -C<append> is a string added at the end of the SQL statement. | |
| 2052 | -C<filter> is filters when parameter binding is executed. | |
| 2053 | -C<query> is if you don't execute sql and get L<DBIx::Custom::Query> object as return value. | |
| 2054 | -default to 0. This is EXPERIMENTAL. | |
| 2055 | -This is overwrites C<default_bind_filter>. | |
| 2056 | -Return value of C<update()> is the count of affected rows. | |
| 2206 | + $dbi->update( | |
| 2207 | + table => 'book', | |
| 2208 | +        param  => {title => 'Perl'}, | |
| 2209 | +        where  => {id => 4} | |
| 2210 | + ); | |
| 2057 | 2211 |  | 
| 2058 | -=head2 C<update_param EXPERIMENTAL> | |
| 2212 | +Update statement. | |
| 2059 | 2213 |  | 
| 2060 | -    my $update_param = $dbi->update_param({title => 'a', age => 2}); | |
| 2214 | +The following opitons are currently available. | |
| 2061 | 2215 |  | 
| 2062 | -Create update parameter tag. | |
| 2216 | +=over 4 | |
| 2217 | + | |
| 2218 | +Table name. | |
| 2219 | + | |
| 2220 | + $dbi->update(table => 'book'); | |
| 2221 | + | |
| 2222 | +=item C<param> | |
| 2223 | + | |
| 2224 | +Update data. This is hash reference. | |
| 2225 | + | |
| 2226 | +    $dbi->update(param => {title => 'Perl'}); | |
| 2227 | + | |
| 2228 | +=item C<where> | |
| 2229 | + | |
| 2230 | +Where clause. This is hash reference or L<DBIx::Custom::Where> object. | |
| 2231 | + | |
| 2232 | + # Hash reference | |
| 2233 | +    $dbi->update(where => {author => 'Ken', 'title' => 'Perl'}); | |
| 2234 | + | |
| 2235 | + # DBIx::Custom::Where object | |
| 2236 | + my $where = $dbi->where( | |
| 2237 | +        clause => ['and', '{= author}', '{like title}'], | |
| 2238 | +        param  => {author => 'Ken', title => '%Perl%'} | |
| 2239 | + ); | |
| 2240 | + $dbi->update(where => $where); | |
| 2241 | + | |
| 2242 | +=item C<append> | |
| 2243 | + | |
| 2244 | +Append statement to last of SQL. This is string. | |
| 2245 | + | |
| 2246 | + $dbi->update(append => 'order by title'); | |
| 2247 | + | |
| 2248 | +=item C<filter> | |
| 2249 | + | |
| 2250 | +Filter, executed before data is send to database. This is array reference. | |
| 2251 | +Filter value is code reference or | |
| 2252 | +filter name registerd by C<register_filter()>. | |
| 2253 | + | |
| 2254 | + # Basic | |
| 2255 | + $dbi->update( | |
| 2256 | + filter => [ | |
| 2257 | +            title  => sub { uc $_[0] } | |
| 2258 | +            author => sub { uc $_[0] } | |
| 2259 | + ] | |
| 2260 | + ); | |
| 2261 | + | |
| 2262 | + # At once | |
| 2263 | + $dbi->update( | |
| 2264 | + filter => [ | |
| 2265 | +            [qw/title author/]  => sub { uc $_[0] } | |
| 2266 | + ] | |
| 2267 | + ); | |
| 2268 | + | |
| 2269 | + # Filter name | |
| 2270 | + $dbi->update( | |
| 2271 | + filter => [ | |
| 2272 | + title => 'upper_case', | |
| 2273 | + author => 'upper_case' | |
| 2274 | + ] | |
| 2275 | + ); | |
| 2063 | 2276 |  | 
| 2064 | -    {title => 'a', age => 2}   ->   {update_param title age} | |
| 2277 | +These filters are added to the C<out> filters, set by C<apply_filter()>. | |
| 2065 | 2278 |  | 
| 2066 | 2279 | =head2 C<model EXPERIMENTAL> | 
| 2067 | 2280 |  | 
| ... | ... | @@ -2074,40 +2287,75 @@ Create update parameter tag. | 
| 2074 | 2287 |  | 
| 2075 | 2288 | Set and get a L<DBIx::Custom::Model> object, | 
| 2076 | 2289 |  | 
| 2077 | -=head2 C<setup_model EXPERIMENTAL> | |
| 2290 | +=item C<query EXPERIMENTAL> | |
| 2078 | 2291 |  | 
| 2079 | - $dbi->setup_model; | |
| 2292 | +Get L<DBIx::Custom::Query> object instead of executing SQL. | |
| 2293 | +This is true or false value. | |
| 2080 | 2294 |  | 
| 2081 | -Setup all model objects. | |
| 2082 | -C<columns> and C<primary_key> is automatically set. | |
| 2295 | + my $query = $dbi->update(query => 1); | |
| 2296 | + | |
| 2297 | +You can check SQL. | |
| 2298 | + | |
| 2299 | + my $sql = $query->sql; | |
| 2083 | 2300 |  | 
| 2084 | 2301 | =head2 C<update_all> | 
| 2085 | 2302 |  | 
| 2086 | - $dbi->update_all(table => $table, | |
| 2087 | - param => \%params, | |
| 2088 | - filter => \@filter, | |
| 2089 | - append => $append); | |
| 2303 | +    $dbi->update_all(table => 'book', param => {title => 'Perl'}); | |
| 2090 | 2304 |  | 
| 2091 | -Execute update statement to update all rows. | |
| 2092 | -Arguments is same as C<update> method, | |
| 2093 | -except that C<update_all> don't have C<where> argument. | |
| 2094 | -Return value of C<update_all()> is the count of affected rows. | |
| 2305 | +Update statement to update all rows. | |
| 2306 | +Options is same as C<update()>. | |
| 2095 | 2307 |  | 
| 2096 | -=head3 C<update_at() EXPERIMENTAL> | |
| 2308 | +=head2 C<update_at() EXPERIMENTAL> | |
| 2097 | 2309 |  | 
| 2098 | -To update row by using primary key, use C<update_at()> | |
| 2310 | +Update statement, using primary key. | |
| 2099 | 2311 |  | 
| 2100 | 2312 | $dbi->update_at( | 
| 2101 | 2313 | table => 'book', | 
| 2102 | - primary_key => ['id'], | |
| 2103 | - where => ['123'], | |
| 2104 | -        param => {name => 'Ken'} | |
| 2314 | + primary_key => 'id', | |
| 2315 | + where => '5', | |
| 2316 | +        param => {title => 'Perl'} | |
| 2105 | 2317 | ); | 
| 2106 | 2318 |  | 
| 2107 | -In this example, row which id column is 123 is updated. | |
| 2108 | -NOTE that you must pass array reference as C<where>. | |
| 2109 | -If C<param> contains primary key, | |
| 2110 | -the key and value is delete from C<param>. | |
| 2319 | +This method is same as C<update()> exept that | |
| 2320 | +C<primary_key> is specified and C<where> is constant value or array refrence. | |
| 2321 | +all option of C<update()> is available. | |
| 2322 | + | |
| 2323 | +=head2 C<primary_key> | |
| 2324 | + | |
| 2325 | +Primary key. This is constant value or array reference. | |
| 2326 | + | |
| 2327 | + # Constant value | |
| 2328 | + $dbi->update(primary_key => 'id'); | |
| 2329 | + | |
| 2330 | + # Array reference | |
| 2331 | + $dbi->update(primary_key => ['id1', 'id2' ]); | |
| 2332 | + | |
| 2333 | +This is used to create where clause. | |
| 2334 | + | |
| 2335 | +=head2 C<where> | |
| 2336 | + | |
| 2337 | +Where clause, created from primary key information. | |
| 2338 | +This is constant value or array reference. | |
| 2339 | + | |
| 2340 | + # Constant value | |
| 2341 | + $dbi->update(where => 5); | |
| 2342 | + | |
| 2343 | + # Array reference | |
| 2344 | + $dbi->update(where => [3, 5]); | |
| 2345 | + | |
| 2346 | +In first examle, the following SQL is created. | |
| 2347 | + | |
| 2348 | + update book set title = ? where id = ? | |
| 2349 | + | |
| 2350 | +Place holders are set to 'Perl' and 5. | |
| 2351 | + | |
| 2352 | +=head2 C<update_param EXPERIMENTAL> | |
| 2353 | + | |
| 2354 | +    my $update_param = $dbi->update_param({title => 'a', age => 2}); | |
| 2355 | + | |
| 2356 | +Create update parameter tag. | |
| 2357 | + | |
| 2358 | +    {update_param title age} | |
| 2111 | 2359 |  | 
| 2112 | 2360 | =head2 C<where EXPERIMENTAL> | 
| 2113 | 2361 |  | 
| ... | ... | @@ -2118,12 +2366,12 @@ the key and value is delete from C<param>. | 
| 2118 | 2366 |  | 
| 2119 | 2367 | Create a new L<DBIx::Custom::Where> object. | 
| 2120 | 2368 |  | 
| 2121 | -=head2 C<cache_method> | |
| 2369 | +=head2 C<setup_model EXPERIMENTAL> | |
| 2122 | 2370 |  | 
| 2123 | - $dbi = $dbi->cache_method(\&cache_method); | |
| 2124 | - $cache_method = $dbi->cache_method | |
| 2371 | + $dbi->setup_model; | |
| 2125 | 2372 |  | 
| 2126 | -Method to set and get caches. | |
| 2373 | +Setup all model objects. | |
| 2374 | +C<columns> and C<primary_key> is automatically set. | |
| 2127 | 2375 |  | 
| 2128 | 2376 | =head1 Tags | 
| 2129 | 2377 |  |