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,
const allocator_type& alloc);
191 DBInitializerFromSQL(DBInitializerFromSQL< ALLOC >&& from);
194 DBInitializerFromSQL(DBInitializerFromSQL< ALLOC >&& from,
const allocator_type& alloc);
197 virtual DBInitializerFromSQL< ALLOC >* clone()
const;
200 virtual DBInitializerFromSQL< ALLOC >* clone(
const allocator_type& alloc)
const;
203 virtual ~DBInitializerFromSQL();
217 DBInitializerFromSQL< ALLOC >& operator=(
const DBInitializerFromSQL< ALLOC >& from);
222 DBInitializerFromSQL< ALLOC >& operator=(DBInitializerFromSQL< ALLOC >&& from);
229 virtual std::vector< std::string, ALLOC< std::string > > variableNames_() final;
232 virtual const std::vector< std::string, ALLOC< std::string > >& currentStringRow_() final;
235 virtual bool nextRow_() final;
238 # ifndef DOXYGEN_SHOULD_SKIP_THIS 242 std::string _connection_string_;
251 std::vector< std::string, ALLOC< std::string > > _var_names_;
254 nanodbc::connection _connection_;
257 NanodbcParser< ALLOC > _parser_;
260 void _connect_(
const std::string& connection_string,
long timeout);
271 # include <agrum/tools/database/DBInitializerFromSQL_tpl.h>