2 #ifndef comfrm_SqlTableH
3 #define comfrm_SqlTableH
100 #include "libtools.h"
161 : mName(
""), mDescription(
""), mColumnType(ctOrdinary), mValueType(vtUnknown), mMaxLength(INT_MAX)
164 std::vector< std::string > mContent;
166 std::string mDescription;
169 unsigned int mMaxLength;
172 std::string m_domain;
180 std::string mRefSchema;
188 std::vector<std::string> m_primaryKeys;
190 bool isEmpty()
const {
return m_primaryKeys.empty();}
191 bool isPKEmpty()
const {
return m_primaryKeys.empty();}
201 std::string getTableName()
const;
204 std::string getSchemaName()
const;
207 std::string getDatabaseDescriptor()
const;
210 std::string getTableFullName()
const;
213 std::string getTableDescription()
const;
216 int getColumnsCount()
const;
219 int getRowsCount()
const;
222 std::string getContent(
int pCol,
int pRow)
const;
225 std::string getContent(
const std::string& pCol,
int pRow)
const;
228 std::string getColumnName(
int pCol)
const;
231 std::string getColumnFullName(
int pCol)
const;
234 const std::list<int>& getPKAttrIndexes()
const;
237 int getColumnIndexByName(
const std::string& pColName)
const;
240 std::string getColumnDescription(
int pCol)
const;
253 const ForeignKey & getForeignKey(
int pCol)
const;
256 std::list< int > find(
const std::map< int, std::string >& pParams)
const;
259 void setTableName(
const std::string& pTableName);
262 void setSchemaName(
const std::string& pSchemaName);
265 void setDatabaseDescriptor(
const std::string& dd);
268 void setTableDescription(
const std::string& pTableDescr);
271 void setFormat(
int pColumnsCount,
int pRowsCount,
bool pEmpty);
274 void setColumnName(
int p_col,
const std::string& p_name);
277 void setColumnType(
int p_col,
ColumnType p_colType);
280 void setValueType(
int p_col,
ValueType p_valType);
283 bool setColumnData(
int p_col,
const std::string& p_name,
ColumnType p_colType,
ValueType p_valType,
284 const std::string& p_domainName =
"",
int p_maxLen = INT_MAX,
const std::string& p_descr =
"" );
291 bool setContent(
int pCol,
int pRow,
const std::string& pValue);
294 bool setContent(
const std::string& p_col,
int p_row,
const std::string &p_value);
297 bool setContent(
int p_row, std::map< int, std::string >& p_values );
300 bool insertRow(
const std::map< int, std::string >& pValues );
306 bool insertColumn(
const std::string& pName,
const std::string& pDescription,
const std::string& pDomainName,
ColumnType pColumnType,
ValueType pValueType,
int pMaxLength);
316 int deleteRow(
int pRow);
319 std::string makeUpUpdateRequest(
int pRow,
const std::map< int, std::string >& pChangedValues);
322 std::string makeUpInsertRequest(
const std::map< int, std::string >& pValues);
325 std::string makeUpDeleteRequest(
int pRow);
328 std::string makeUpSelectRequest(
const std::map< int, std::string >& pValues);
333 int findRow(
const std::string& p_colName,
const std::string& p_value)
const;
336 int findRow(
const std::map<std::string,std::string>& p_attrsAndValues)
const;
339 int findRow(
const std::string& pCommaSeparatedPKValues)
const;
342 std::vector< int > findRows(
const std::string& p_colName,
const std::string& p_value)
const;
345 std::vector< int > findRows(
const std::map<std::string, std::string>& p_attrsAndValues)
const;
348 bool isEmpty()
const;
351 bool addAttrToPK(
const std::string& p_attrName);
354 void addForeignKey(
int p_col,
const std::string& p_refSchema,
const std::string& p_refTable,
int p_refCol);
357 int getPKCount()
const;
360 bool attrExists(
const std::string& p_attrName )
const;
363 std::string getColumnDomain(
int p_col )
const;
366 int getColumnLength(
int p_col )
const;
369 void removeEmptyValues( std::string& o_SQLRequest,
const std::string& p_empty_string_token);
372 std::vector< TableColumn > mContentRepresentation;
373 std::vector< ForeignKey > mForeignKeys;
374 std::list< int > mPrimaryKey;
375 std::string mSchemaName;
376 std::string mTableName;
377 std::string mDatabaseDescriptor;
378 std::string mTableDescription;
Модель SQL-таблицы
Definition: sqltable.h:132
Строка
Definition: sqltable.h:152
Definition: sqltable.h:186
Часть первичного ключа
Definition: sqltable.h:143
std::map< int, int > mRefCols
Таблица на которую ссылается внешний ключ
Definition: sqltable.h:183
ColumnType
Definition: sqltable.h:140
ValueType
Тип значение колонки
Definition: sqltable.h:148
Вещественное число
Definition: sqltable.h:151
Definition: sqltable.h:158
Время/дата
Definition: sqltable.h:154
Внешний ключ
Definition: sqltable.h:178
Булевский тип
Definition: sqltable.h:153
Неизвестный тип (строка подразумевается)
Definition: sqltable.h:150
Обычная
Definition: sqltable.h:142
std::string mRefTable
Схема, на которую ссылается внешний ключ
Definition: sqltable.h:181