30 # ifndef GUM_LEARNING_DB_INITILIALIZER_FROM_SQL_H 31 # define GUM_LEARNING_DB_INITILIALIZER_FROM_SQL_H 33 # include <agrum/agrum.h> 34 # include <agrum/tools/database/IDBInitializer.h> 35 # include <agrum/tools/database/nanodbcParser.h> 135 template <
template <
typename >
class ALLOC = std::allocator >
136 class DBInitializerFromSQL:
public IDBInitializer< ALLOC > {
139 using allocator_type = ALLOC< std::string >;
158 DBInitializerFromSQL(
const std::string& dataSource,
159 const std::string& login,
160 const std::string& password,
161 const std::string& query,
163 const allocator_type& alloc = allocator_type());
175 DBInitializerFromSQL(
const std::string& connection_string,
176 const std::string& query,
178 const allocator_type& alloc = allocator_type());
183 DBInitializerFromSQL(
const DBInitializerFromSQL< ALLOC >& from);
188 DBInitializerFromSQL(
const DBInitializerFromSQL< ALLOC >& from,
189 const allocator_type& alloc);
192 DBInitializerFromSQL(DBInitializerFromSQL< ALLOC >&& from);
195 DBInitializerFromSQL(DBInitializerFromSQL< ALLOC >&& from,
196 const allocator_type& alloc);
199 virtual DBInitializerFromSQL< ALLOC >* clone()
const;
202 virtual DBInitializerFromSQL< ALLOC >*
203 clone(
const allocator_type& alloc)
const;
206 virtual ~DBInitializerFromSQL();
220 DBInitializerFromSQL< ALLOC >&
221 operator=(
const DBInitializerFromSQL< ALLOC >& from);
226 DBInitializerFromSQL< ALLOC >&
227 operator=(DBInitializerFromSQL< ALLOC >&& from);
234 virtual std::vector< std::string, ALLOC< std::string > >
235 variableNames_() final;
238 virtual const std::vector< std::string, ALLOC< std::string > >&
239 currentStringRow_() final;
242 virtual bool nextRow_() final;
245 # ifndef DOXYGEN_SHOULD_SKIP_THIS 249 std::string connection_string__;
258 std::vector< std::string, ALLOC< std::string > > var_names__;
261 nanodbc::connection connection__;
264 NanodbcParser< ALLOC > parser__;
267 void connect__(
const std::string& connection_string,
long timeout);
278 # include <agrum/tools/database/DBInitializerFromSQL_tpl.h>