From 418c76a798dc5c22a94b71af52ee4a6e96b88dfd Mon Sep 17 00:00:00 2001 From: cxl Date: Thu, 15 Dec 2011 10:28:58 +0000 Subject: [PATCH] Sql: Sql::Attach/Detach, SetSession git-svn-id: svn://ultimatepp.org/upp/trunk@4304 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Sql/Sql.cpp | 11 +++++++++-- uppsrc/Sql/Sqls.h | 6 ++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/uppsrc/Sql/Sql.cpp b/uppsrc/Sql/Sql.cpp index 33bd53ac5..71fa4d207 100644 --- a/uppsrc/Sql/Sql.cpp +++ b/uppsrc/Sql/Sql.cpp @@ -551,8 +551,8 @@ bool Sql::Update(Fields nf, SqlId table) { return Update(nf, (const char *)~table); } -void Sql::Assign(SqlSource& s) { - if(cn) delete cn; +void Sql::SetSession(SqlSource& s) { + Detach(); cn = s.CreateConnection(); } @@ -624,6 +624,13 @@ void Sql::Detach() { if(cn) delete cn; cn = NULL; + param.Clear(); +} + +void Sql::Attach(SqlConnection *connection) +{ + Detach(); + cn = connection; } Sql::~Sql() { diff --git a/uppsrc/Sql/Sqls.h b/uppsrc/Sql/Sqls.h index 46e072740..b7995ed50 100644 --- a/uppsrc/Sql/Sqls.h +++ b/uppsrc/Sql/Sqls.h @@ -92,12 +92,14 @@ class Sql { friend Sql& AppCursorR(); Value Select0(const String& what); - void Assign(SqlSource& src); - void Detach(); enum _NULLSQL { NULLSQL }; Sql(_NULLSQL) { cn = NULL; } public: + void SetSession(SqlSource& src); + void Attach(SqlConnection *connection); + void Detach(); + String Compile(const SqlStatement& s); void Clear();