4#ifndef _Stroika_Foundation_Database_SQL_Connection_h_
5#define _Stroika_Foundation_Database_SQL_Connection_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
12#include "Stroika/Foundation/Common/Property.h"
27namespace Stroika::Foundation::Database::SQL {
29 using Characters::String;
34 namespace Connection {
55 Ptr (
const shared_ptr<IRep>& src =
nullptr);
63 nonvirtual
Ptr& operator= (
const Ptr& src);
64 nonvirtual
Ptr& operator= (
Ptr&& src)
noexcept;
69 nonvirtual
IRep* operator->()
const noexcept;
105 nonvirtual
void Exec (
const String& sql)
const;
114 nonvirtual
auto operator== (
const Ptr& rhs)
const;
115 nonvirtual
bool operator== (nullptr_t)
const noexcept;
121 shared_ptr<IRep> _fRep;
129 class IRep :
public enable_shared_from_this<IRep> {
133 virtual ~IRep () =
default;
171#include "Connection.inl"
String is like std::u32string, except it is much easier to use, often much more space efficient,...
virtual Transaction mkTransaction()=0
virtual Statement mkStatement(const String &sql)=0
virtual void Exec(const String &sql)=0
virtual shared_ptr< const EngineProperties > GetEngineProperties() const =0
nonvirtual shared_ptr< const EngineProperties > GetEngineProperties() const
nonvirtual String ToString() const
nonvirtual Statement mkStatement(const String &sql)
nonvirtual Transaction mkTransaction()
nonvirtual void Exec(const String &sql) const
NOT a real mutex - just a debugging infrastructure support tool so in debug builds can be assured thr...