gnomemm r1826 - in libgdamm/trunk: . libgda/src



Author: jhs
Date: Sun Dec  7 15:16:11 2008
New Revision: 1826
URL: http://svn.gnome.org/viewvc/gnomemm?rev=1826&view=rev

Log:
2008-12-07  Johannes Schmid  <jschmid openismus com>

	* libgda/src/connection.ccg:
	* libgda/src/connection.hg:
	Added helper methods to use sql directly instead of Gda::Statement

Modified:
   libgdamm/trunk/ChangeLog
   libgdamm/trunk/libgda/src/connection.ccg
   libgdamm/trunk/libgda/src/connection.hg

Modified: libgdamm/trunk/libgda/src/connection.ccg
==============================================================================
--- libgdamm/trunk/libgda/src/connection.ccg	(original)
+++ libgdamm/trunk/libgda/src/connection.ccg	Sun Dec  7 15:16:11 2008
@@ -25,6 +25,7 @@
 #include <libgda/gda-enum-types.h>
 #include <libgda/gda-connection.h>
 #include <libgda/libgda.h> //For GDA_GENERAL_ERROR
+#include <iostream>
 
 namespace Gnome
 {
@@ -124,6 +125,31 @@
 }
 
 #ifdef GLIBMM_EXCEPTIONS_ENABLED
+Glib::RefPtr<Glib::Object> Connection::statement_execute(const Glib::ustring& sql, StatementModelUsage model_usage)
+#else
+Glib::RefPtr<Glib::Object> Connection::statement_execute(const Glib::ustring& sql, StatementModelUsage model_usage, std::auto_ptr<Glib::Error>& error)
+#endif // GLIBMM_EXCEPTIONS_ENABLED
+{
+  Glib::RefPtr<SqlParser> parser = create_parser();
+  if (parser)
+  {
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+    Glib::RefPtr<Statement> stmt = parser->parse_string(sql);
+    if (!stmt)
+      return Glib::RefPtr<Object>(0);
+    return statement_execute (stmt, model_usage);
+#else
+    Glib::RefPtr<Statement> stmt = parser->parse_string(sql, error);
+    if (error || !stmt)
+      return Glib::RefPtr<Object>(0);
+    return statement_execute (stmt, model_usage, error);
+#endif
+  }
+  std::cerr << "Gda::Connection::statement_execute(): Couldn't create parser" << std::endl;
+  return Glib::RefPtr<Object>(0);
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
 int Connection::statement_execute_non_select(const Glib::RefPtr<Statement>& cmd, const Glib::RefPtr<Set>& params, Glib::RefPtr<Set>& last_inserted_row)
 #else
 int Connection::statement_execute_non_select(const Glib::RefPtr<Statement>& cmd, const Glib::RefPtr<Set>& params, Glib::RefPtr<Set>& last_inserted_row, std::auto_ptr<Glib::Error>& error)
@@ -165,6 +191,31 @@
 }
 
 #ifdef GLIBMM_EXCEPTIONS_ENABLED
+int Connection::statement_execute_non_select(const Glib::ustring& sql)
+#else
+int Connection::statement_execute_non_select(const Glib::ustring& sql, std::auto_ptr<Glib::Error>& error)
+#endif // GLIBMM_EXCEPTIONS_ENABLED
+{
+  Glib::RefPtr<SqlParser> parser = create_parser();
+  if (parser)
+  {
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+    Glib::RefPtr<Statement> stmt = parser->parse_string(sql);
+    if (!stmt)
+      return 0;
+    return statement_execute_non_select(stmt);
+#else
+    Glib::RefPtr<Statement> stmt = parser->parse_string(sql, error);
+    if (error || !stmt)
+      return 0;
+    return statement_execute_non_select(stmt, error);
+#endif
+  }
+  std::cerr << "Gda::Connection::statement_execute(): Couldn't create parser" << std::endl;
+  return 0;
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
 Glib::ustring Connection::statement_to_sql(const Glib::RefPtr<Statement>& statement, const Glib::RefPtr<Set>& params, StatementSqlFlag flags, std::list< Glib::RefPtr<Holder> >& params_used)
 #else
 Glib::ustring Connection::statement_to_sql(const Glib::RefPtr<Statement>& statement, const Glib::RefPtr<Set>& params, StatementSqlFlag flags, std::list< Glib::RefPtr<Holder> >& params_used, std::auto_ptr<Glib::Error>& error)
@@ -192,10 +243,43 @@
 
 }
 
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
 Glib::RefPtr<DataModel> Connection::statement_execute_select(const Glib::RefPtr<Statement>& stmt)
+#else
+Glib::RefPtr<DataModel> Connection::statement_execute_select(const Glib::RefPtr<Statement>& stmt, std::auto_ptr<Glib::Error>& error)
+#endif
 {
   Glib::RefPtr<Set> set;
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
   return statement_execute_select (stmt, set);
+#else
+  return statement_execute_select (stmt, set, error);
+#endif
+}
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+Glib::RefPtr<DataModel> Connection::statement_execute_select(const Glib::ustring& sql)
+#else
+Glib::RefPtr<DataModel> Connection::statement_execute_select(const Glib::ustring& sql, std::auto_ptr<Glib::Error>& error)
+#endif // GLIBMM_EXCEPTIONS_ENABLED
+{
+  Glib::RefPtr<SqlParser> parser = create_parser();
+  if (parser)
+  {
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+    Glib::RefPtr<Statement> stmt = parser->parse_string(sql);
+    if (!stmt)
+      return Glib::RefPtr<DataModel>(0);
+    return statement_execute_select (stmt);
+#else
+    Glib::RefPtr<Statement> stmt = parser->parse_string(sql, error);
+    if (error || !stmt)
+      return Glib::RefPtr<DataModel>(0);
+    return statement_execute_select (stmt, error);
+#endif
+  }
+  std::cerr << "Gda::Connection::statement_execute(): Couldn't create parser" << std::endl;
+  return Glib::RefPtr<DataModel>(0);
 }
 
 #ifdef GLIBMM_EXCEPTIONS_ENABLED

Modified: libgdamm/trunk/libgda/src/connection.hg
==============================================================================
--- libgdamm/trunk/libgda/src/connection.hg	(original)
+++ libgdamm/trunk/libgda/src/connection.hg	Sun Dec  7 15:16:11 2008
@@ -121,13 +121,20 @@
 #endif // GLIBMM_EXCEPTIONS_ENABLED
 #ifdef GLIBMM_EXCEPTIONS_ENABLED
   Glib::RefPtr<Glib::Object> statement_execute(const Glib::RefPtr<Statement>& stmt, StatementModelUsage model_usage);
+  Glib::RefPtr<Glib::Object> statement_execute(const Glib::ustring& sql, StatementModelUsage model_usage);
 #else
   Glib::RefPtr<Glib::Object> statement_execute(const Glib::RefPtr<Statement>& stmt, StatementModelUsage model_usage, std::auto_ptr<Glib::Error>& error);
+  Glib::RefPtr<Glib::Object> statement_execute(const Glib::ustring& sql, StatementModelUsage model_usage, std::auto_ptr<Glib::Error>& error);
 #endif // GLIBMM_EXCEPTIONS_ENABLED
   
   _WRAP_METHOD(Glib::RefPtr<DataModel> statement_execute_select(const Glib::RefPtr<Statement>& stmt, const Glib::RefPtr<Set>& params), gda_connection_statement_execute_select, errthrow)
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
   Glib::RefPtr<DataModel> statement_execute_select(const Glib::RefPtr<Statement>& stmt);
-    
+  Glib::RefPtr<DataModel> statement_execute_select(const Glib::ustring& sql);
+#else
+  Glib::RefPtr<DataModel> statement_execute_select(const Glib::RefPtr<Statement>& stmt, std::auto_ptr<Glib::Error>& error);
+  Glib::RefPtr<DataModel> statement_execute_select(const Glib::ustring& sql, std::auto_ptr<Glib::Error>& error);
+#endif  
   #m4 _CONVERSION(`const Glib::ArrayHandle<GType>&', `GType*', `const_cast<GType*>(($3).data())')
   _WRAP_METHOD(Glib::RefPtr<DataModel> statement_execute_select_full(const Glib::RefPtr<Statement>& stmt, const Glib::RefPtr<Set>& params, StatementModelUsage model_usage, const Glib::ArrayHandle<GType>& col_types), gda_connection_statement_execute_select_full, errthrow)
   _IGNORE (gda_connection_statement_execute_select_fullv)
@@ -140,8 +147,10 @@
 #endif //GLIBMM_EXCEPTIONS_ENABLED  
 #ifdef GLIBMM_EXCEPTIONS_ENABLED
   int statement_execute_non_select(const Glib::RefPtr<Statement>& stmt);
+  int statement_execute_non_select(const Glib::ustring& sql);
 #else
   int statement_execute_non_select(const Glib::RefPtr<Statement>& stmt, std::auto_ptr<Glib::Error>& error);
+  int statement_execute_non_select(const Glib::ustring& sql, std::auto_ptr<Glib::Error>& error);
 #endif //GLIBMM_EXCEPTIONS_ENABLED  
   //Note that we do not add a non-const version of this because the documentation says that it should not be modified:
   _WRAP_METHOD(Glib::RefPtr<const TransactionStatus> get_transaction_status() const, gda_connection_get_transaction_status, errthrow, refreturn)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]