Samchon Framework for CPP  1.0.0
samchon::library::TSQLi Class Reference

A SQL interface for T-SQL. More...

#include <TSQLi.hpp>

Collaboration diagram for samchon::library::TSQLi:

Public Member Functions

 TSQLi (int port=1433)
 Construct from port. More...
- Public Member Functions inherited from samchon::library::SQLi
 SQLi (const std::string &driver, int port)
 Construct from driver name and port. More...
virtual auto createStatement () -> std::shared_ptr< SQLStatement >
 Factory method for creating SQLStatement. More...
virtual void connect (const std::string &ip, const std::string &db, const std::string &id, const std::string &pwd)
 Connect to the DBMS
. More...
virtual void disconnect ()
 Disconnect from DBMS. More...

Additional Inherited Members

- Protected Member Functions inherited from samchon::library::SQLi
virtual auto getErrorMessage (short type) const -> std::string
 Get error message. More...
- Protected Attributes inherited from samchon::library::SQLi
std::string driver
 Driver; name of DBMS used for connection. More...
int port
 Port number of DBMS. More...
bool connected
 Had connected to DBMS. More...

Detailed Description

A SQL interface for T-SQL.


SQLi is an abstract class managing connection (session) with a specific database and manages SQL statements are executed and results are returned within the context of a connection.

The reason why SQLStatement(s) are managed by SQLi is because of a principle of DBMS, DBMS system doesn't allow simultaneous query from a session (connection). Only a query (process0) is allowed at a time. If you try to simultaneous query from a SQLi, ODBC throws error. To avoid the error, an execute of query from SQLStatement will lock a mutex of SQLi to ensure exclusiveness.

Class Diagram

To ensure the exclusiveness, you've to make SQLStatement from SQLi. Do not make SQLStatement by yourself. call SQLi::createSQLStatement() instead. Even you make a derived class from SQLStatement, don't make its constructor to have public accessor.

Becuase execution of a sql statement causes lock on mutex in SQLi, you've to destruct the SQLStatement or call SQLStatement::free() method(). If you don't, the mutex will not be unlocked, thus you can't do anything by the SQLi.

Library - SQL Driver

Jeongho Nam

Definition at line 19 of file TSQLi.hpp.

Constructor & Destructor Documentation

samchon::library::TSQLi::TSQLi ( int  port = 1433)

Construct from port.

portPort number of T-SQL. default is 1433.

Definition at line 31 of file TSQLi.hpp.

The documentation for this class was generated from the following file: