From 100ad2898313dae61281cfd4cca4d4e6e16e0e39 Mon Sep 17 00:00:00 2001 From: Myun2 Date: Mon, 16 Apr 2012 00:15:45 +0900 Subject: [PATCH] =?utf8?q?=E8=89=B2=E3=80=85=E4=BF=AE=E6=AD=A3=EF=BC=88?= =?utf8?q?=E3=81=A8=E3=82=8A=E3=81=82=E3=81=88=E3=81=9A=20db/sql/type.hpp?= =?utf8?q?=20=E3=81=BE=E3=81=A7=E3=81=AF=E9=80=9A=E3=82=8B=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- roast/include/roast/db/sql.hpp | 356 +---------------------- roast/include/roast/db/sql/sql.hpp | 1 + roast/include/roast/db/sql/type.hpp | 8 +- roast/test/roast_test_DB_sqlite/sqlite_test2.cpp | 4 + 4 files changed, 12 insertions(+), 357 deletions(-) diff --git a/roast/include/roast/db/sql.hpp b/roast/include/roast/db/sql.hpp index 9b34be6e..3ab8fd58 100644 --- a/roast/include/roast/db/sql.hpp +++ b/roast/include/roast/db/sql.hpp @@ -6,358 +6,6 @@ #ifndef __SFJP_ROAST__db__sql_HPP__ #define __SFJP_ROAST__db__sql_HPP__ -#include -#include -#include +#include "roast/db/sql/sql.hpp" -#define _ROAST_SQL_DEFULT_QUERY_BUFFER_LENGTH (256) -#define _ROAST_SQL_DEFULT_QUERY_BUFFER_LENGTH_LONG (512) - -namespace roast -{ - namespace sql - { - typedef ::std::string - _query_t, query_t, sql_query, _sql_query; - - /////////////////////////////////////////////////////////////////////////// - // - // CREATE TABLE - - // create_column_info - typedef struct _table_column_info - { - ::std::string name; - ::std::string type; - unsigned int length; - bool is_unsigned; - bool is_zerofill; - bool is_null_permit; - bool is_primary; - bool is_unique; - ::std::string default; - ::std::string mix; - ::std::string max; - ::std::string foreign_table; - ::std::string foreign_column; - bool auto_increment; - ::std::string comment; - ::std::string extensions; - - _table_column_info() - { - length = 0; - - is_unsigned = false; - is_zerofill = false; - is_null_permit = true; - is_primary = false; - is_unique = false; - - auto_increment = false; - } - } - table_column_info; - - // create_table_columns - typedef ::std::vector create_table_columns; - - ////////////////// - // gen_create_table_query() - - _query_t gen_create_table_query(const char* name, const create_table_columns& columns) - { - _query_t q; - q.resize(_ROAST_SQL_DEFULT_QUERY_BUFFER_LENGTH); - q = "CREATE TABLE "; - - q += name; - //q += ' '; - q += " ("; - - for(size_t i=0; i insert_into_map; - - //////////////////// - - // gen_insert_into_query() - _query_t gen_insert_into_query(const char* table_name, const insert_into_map& iimap) - { - _query_t q; - q.resize(_ROAST_SQL_DEFULT_QUERY_BUFFER_LENGTH); - q = "INSERT INTO "; - - q += table_name; - q += " ("; - - /////////////////////////////////// - insert_into_map::const_iterator it=iimap.begin(); - for(; it != iimap.end(); it++) - { - const char* key = it->first.c_str(); - - if ( it != iimap.begin() ) - q += ','; - q += key; - } - q += ") VALUES ("; - - /////////////////////////////////// - it=iimap.begin(); - for(; it != iimap.end(); it++) - { - const char* value = it->second.c_str(); - - if ( it != iimap.begin() ) - q += ','; - q += value; - } - q += ");"; - - return q; - }; - - - /////////////////////////////////////////////////////////////////////////// - // - // SELECT - - // select_table_reference - typedef struct - { - ::std::string name; - - } - select_table_reference; - - // select_columns - typedef ::std::vector<::std::string> select_columns; - - // select_as - typedef struct - { - ::std::string from; - ::std::string to; - } - select_as; - - // select_order_by - typedef struct _select_order_by - { - ::std::string name; - bool is_desc; - - _select_order_by() - { - is_desc = false; - } - } - select_order_by; - - /////////////////////////////////////////// - - // select_info - typedef struct _select_info - { - //::std::string column; - select_columns columns; - ::std::vector tables; - ::std::vector as; - ::std::string where; - ::std::vector<::std::string> group_by; - ::std::string having; - ::std::vector order_by; - - _select_info() - { - } - //////////////////////////////////////////// - - void add_column(const char* column_name) - { - columns.push_back(column_name); - } - - void set_where(const char* where_in) - { - where = where_in; - } - - void add_table(const char* table_name) - { - select_table_reference tblref; - tblref.name = table_name; - tables.push_back(tblref); - } - - void add_as(const char* from, const char* to) - { - select_as _as; - _as.from = from; - _as.to = to; - as.push_back(_as); - } - - void set_having(const char* hav) - { - having = hav; - } - - void add_group_by(const char* group) - { - group_by.push_back(group); - } - - void add_order_by(const char* name, bool is_desc=false) - { - select_order_by od; - od.name = name; - od.is_desc = is_desc; - order_by.push_back(od); - } - } - select_info; - - ///////////////////////////////////////// - // gen_select_query() - - _query_t gen_select_query(const select_info& sel) - { - size_t i; - _query_t q; - q.resize(_ROAST_SQL_DEFULT_QUERY_BUFFER_LENGTH_LONG); - q = "SELECT "; - - /////////////////////////////////////////////////////////////// - - // columns - const select_columns &columns = sel.columns; - if ( columns.size() == 0 ) - { - q += "* "; - } - else - { - const ::std::vector<::std::string> &columns = sel.columns; - for(i=0; ifirst.c_str(); - - if ( it != iimap.begin() ) - q += ','; - q += key; - } - q += ") VALUES ("; - - /////////////////////////////////// - it=iimap.begin(); - for(; it != iimap.end(); it++) - { - const char* value = it->second.c_str(); - - if ( it != iimap.begin() ) - q += ','; - q += value; - } - q += ");"; - */ - - return q; - }; - - /////////////////////////////////////////////////////////////////////////// - } -} - -#endif//__SFJP_ROAST__db__sqlite_HPP__ +#endif//__SFJP_ROAST__db__sql_HPP__ diff --git a/roast/include/roast/db/sql/sql.hpp b/roast/include/roast/db/sql/sql.hpp index 7c8c4cce..ce721d4a 100644 --- a/roast/include/roast/db/sql/sql.hpp +++ b/roast/include/roast/db/sql/sql.hpp @@ -6,6 +6,7 @@ #ifndef __SFJP_ROAST__db__sql__sql_HPP__ #define __SFJP_ROAST__db__sql__sql_HPP__ +#include "roast/db/sql/type.hpp" #include "roast/db/sql/table.hpp" #include "roast/db/sql/select.hpp" #include "roast/db/sql/insert_update.hpp" diff --git a/roast/include/roast/db/sql/type.hpp b/roast/include/roast/db/sql/type.hpp index a6985952..809de95e 100644 --- a/roast/include/roast/db/sql/type.hpp +++ b/roast/include/roast/db/sql/type.hpp @@ -6,6 +6,8 @@ #ifndef __SFJP_ROAST__db__sql__type_HPP__ #define __SFJP_ROAST__db__sql__type_HPP__ +#include + namespace roast { namespace sql @@ -80,9 +82,9 @@ namespace roast template struct varchar : _base<::std::string>{ static const unsigned int length = _Length; - character(){} - character(const char* v):_base(v){} - character(const ::std::string &v):_base(v){} + varchar(){} + varchar(const char* v):_base(v){} + varchar(const ::std::string &v):_base(v){} }; template struct text : varchar<_Length>{ diff --git a/roast/test/roast_test_DB_sqlite/sqlite_test2.cpp b/roast/test/roast_test_DB_sqlite/sqlite_test2.cpp index 16d185d2..fd7a8e13 100644 --- a/roast/test/roast_test_DB_sqlite/sqlite_test2.cpp +++ b/roast/test/roast_test_DB_sqlite/sqlite_test2.cpp @@ -1,8 +1,10 @@ #include #include "sqlite3.h" +#include "roast/db/sql.hpp" #include "roast/db/sqlite3.hpp" using namespace ::roast; +using namespace ::roast; int main() { @@ -10,6 +12,8 @@ int main() { ::roast::sqlite3::driver drv; + sql::type::smallint si; + drv.open("test.db"); drv.query("create table hoge"); } -- 2.11.0