Хранилища Subversion OpenInventory

Сравнить редакции

Не учитывать пробелы Редакция 38 → Редакция 39

/trunk/ClassEditor/tablefield.h
40,6 → 40,7
QString defaultValue; // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
QString characterSet; // ïåðåìåííàÿ ñîäåðæèò êîäèðîâêó, â êîòîðîé õðàíÿòüñÿ òåêñòîâûå äàííûå
bool notNull; // ôëàã, óêàçûâàþùèé, ÷òî õðàíèìîå â ïîëå çíà÷åíèå íå ìîæåò áûòü ïóñòûì (NULL)
bool autoIncrement; // ôëàã, óêàçûâàþùèé, ÷òî ïîëå ÿâëÿåòñÿ àâòîèíêåìåíòíûì
QString SqlString; // ñêòîêà Sql-çàïðîñà äëÿ ñîçäàíèÿ ïîëÿ â áàçå äàííûõ
void createSqlString(); // ôóíêöèÿ ãåíåðèðóåò ñòðîêó Sql-çàïðîñà, êîòîðàÿ ñîçäàåò â áàçå äàííûõ ñîîòâåòñòâóþùåå ïîëå
protected:
47,6 → 48,9
public:
void setName(QString name);
void setType(QString ftype);
void setAutoIncrement(bool autoInc); // óñòàíàâëèâàåì ôëàã, óêàçûâàþùèé, ÷òî ïîëå ÿâëÿåòñÿ àâòîèíêåìåíòíûì
bool isAutoIncrement(); // óñòàíàâëèâàåì ôëàã, óêàçûâàþùèé, ÿâëÿåòñÿ ëè ïîëå àâòîèíêåìåíòíûì
 
QString name();
QString type();
bool isNotNull();
/trunk/ClassEditor/classeditor.ui
40,6 → 40,42
<string>TextLabel</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>10</x>
<y>110</y>
<width>581</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>10</x>
<y>130</y>
<width>581</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>10</x>
<y>160</y>
<width>581</width>
<height>31</height>
</rect>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
/trunk/ClassEditor/sqltable.cpp
7,8 → 7,12
tableName = tname;
field_tmp = new TableField("ID", this); // ïðè ñîçäàíèè òàáëèöû äîáàâèì ïîëå "ID" (ñ÷åò÷èê)
field_tmp->setType(tr("INT(10)"));
field_tmp->setAutoIncrement(true);
tableFields.append(field_tmp); // äîáàâëÿåì íîâîå ïîëå (óêàçàòåëü) â ñïèñîê (óêàçàòåëåé) ïîëåé
primaryKey = field_tmp->name(); // äåëàåì íàøå åäèíñòâåííîå ïîëå ïåðâè÷íûì êëþ÷îì
tablePrimaryKey = field_tmp->name(); // äåëàåì íàøå åäèíñòâåííîå ïîëå ïåðâè÷íûì êëþ÷îì
tablePrimaryKeyIndex = 0;
tableEngine = tr("MyISAM");
tableCharacterSet = tr("cp1251");
//delete field_tmp;
}
 
21,6 → 25,7
 
void SqlTable::setName(QString tname){
SqlTable::tableName = tname;
SqlTable::createSqlString();
}
 
/***************************************************************************************
46,3 → 51,120
 
return SqlTable::tableFields;
}
 
 
/***************************************************************************************
** ôóíêöèÿ óñòàíàâëèâàåò ïåðâè÷íûì êëþ÷îì ïîëå,
** èìåíÿ êîòîðîãî ñîâïàäàåò ñ ïåðåäàâàåìûì ïàðàìåòðîì fieldName
** Âîçâðàùàåò true, åñëè îïðåðàöèÿ ïðîøëà óñïåøíî
** Èíà÷å - âîçâðàùàåò false è ïîìåùàåò ïîÿñíåíèå ê ñëó÷èâøåéñÿ îøèáêå â ïåðåìåííóþ lastError
**
**
***************************************************************************************/
 
 
 
bool SqlTable::setPrimaryKey(QString fieldName){
 
if (tableFields.isEmpty()) { // åñëè ñïèñîê ïîëåé ïóñò
SqlTable::tableLastError = tr("Table does not contain fields!"); // âûäàåì îøèáêó
return false;
}
for (int i = 0; i < tableFields.size(); ++i){
if (tableFields.at(i)->name() == fieldName){ // íàøëè ïîëå ñ íóæíûì èìåíåì
SqlTable::tablePrimaryKeyIndex = i; // ïðèñâàèâàåì èäåêñó êëþ÷åâîãî ïîëÿ íîâîå çíà÷åíèå
SqlTable::tablePrimaryKey = tableFields.at(i)->name(); // òàêæå ïðèñâàèâàåì íîâîå çíà÷åíèå ïåðåìåííîé, ñîäåðæàùåé èìÿ êëþ÷åâîãî ïîëÿ
SqlTable::createSqlString(); // îáíîâëÿåì sql-ñòðîêó çàïðîñà
return true;
}
}
SqlTable::tableLastError = tr("In the table there is no field with that name!"); // íå íàøëè ïîëÿ ñ òàêèì èìåíåì,
return false; // âûäàåì îøèáêó
}
 
 
/***************************************************************************************
** ôóíêöèÿ âîçâðàùàåèò ïîÿñíèòåëüíûé òåêñò ïîñëåäíåé îøèáêè,
** êîòîðàÿ âîçíèêëà ïðè âûçîâå ìåòîäîâ êëàññà
**
***************************************************************************************/
 
QString SqlTable::lastError(){
return SqlTable::tableLastError;
}
 
 
 
/***************************************************************************************
** ôóíêöèÿ âîçâðàùàåò èìÿ ïîëÿ,
** êîòîðîå ÿâëÿåòñÿ ïåðâè÷íûì êëþ÷îì
**
***************************************************************************************/
 
QString SqlTable::primaryKey(){
return SqlTable::tablePrimaryKey;
}
 
/***************************************************************************************
** ôóíêöèÿ ãåíåðèðóåò ñòðîêó Sql-çàïðîñà,
** êîòîðàÿ ñîçäàåò â áàçå äàííûõ ñîîòâåòñòâóþùe òàáëèöó
**
***************************************************************************************/
 
bool SqlTable::createSqlString(){
QString sql_str;
int i = 0;
if (tableFields.isEmpty()) { // åñëè ñïèñîê ïîëåé ïóñò
SqlTable::tableLastError = tr("Table does not contain fields!"); // âûäàåì îøèáêó
return false;
}
sql_str = tr("CREATE TABLE `");
sql_str.append( SqlTable::tableName);
sql_str.append(tr("` ( "));
 
for (i; i < (tableFields.size()-1); ++i){ // îáðàáîòàåì âñå ïîëÿ, êðîìå ïîñëåäíåãî
sql_str.append(tableFields.at(i)->sqlString());
sql_str.append(tr(", "));
}
sql_str.append(tableFields.at(i)->sqlString()); // ïîñëåäíåå ïîëå
sql_str.append(tr(" ")); // ïîñëå ïîñëåäíåãî ïîëÿ çàïÿòóþ ïîêà íå ñòàâèì
 
if (SqlTable::tablePrimaryKey != tr("")) { // åñëè åñòü ïåðâè÷íûé êëþ÷,
sql_str.append(tr(", ")); // òî ñòàâèì çàïÿòóþ
sql_str.append(tr("PRIMARY KEY (`"));
sql_str.append(SqlTable::tablePrimaryKey);
sql_str.append(tr("`) ) "));
}
else sql_str.append(tr(" ) "));
if (SqlTable::tableEngine != tr("")) {
sql_str.append(tr("ENGINE="));
sql_str.append(SqlTable::tableEngine);
sql_str.append(tr(" "));
}
if (SqlTable::tableCharacterSet != tr("")){
sql_str.append(tr("DEFAULT CHARSET="));
sql_str.append(SqlTable::tableCharacterSet);
 
}
SqlTable::SqlString = sql_str;
return true;
 
}
 
/***************************************************************************************
** ôóíêöèÿ âîçâðàùàåò ñòðîêó Sql-çàïðîñà, êîòîðàÿ ñîçäàåò â áàçå äàííûõ ñîîòâåòñòâóþùóþ òàáëèöó
**
**
***************************************************************************************/
 
 
QString SqlTable::sqlString(){
return SqlTable::SqlString;
 
}
 
 
void SqlTable::append(TableField* newfield){ // äîáàâëÿåò â êîíåö ñïèñêà (óêàçàòåëåé) ïîëåé òàáëèöû íîàîå ïîëå, ïåðåäàâàåìîå ÷åðåç ïàðàìåòð newfield (óêàçàòåëü)
SqlTable::tableFields.append(newfield);
SqlTable::createSqlString();
}
/trunk/ClassEditor/tablefield.cpp
21,6 → 21,7
defaultValue = fdefaultValue;
notNull = false; // ïî óìîë÷àíèþ äàííûå â ïîëå ìîãóò îòñóòñòâîâàòü (áûòü NULL)
characterSet = ""; // êîäèðîâêà ïî óìîë÷àíèþ (íå óêàçûâàòü êîäèðîâêó)
autoIncrement = false; // ñäåëàåì íàøå ïîëå àâòîèíêåìåíòíûì
createSqlString(); // ñôîðìèðóåì ñòðîêó Sql-çàïðîñà, êîòîðàÿ ñîçäàåò â áàçå äàííûõ ñîîòâåòñòâóþùåå ïîëå
}
 
81,9 → 82,9
 
void TableField::createSqlString(){
QString str_tmp = "";
str_tmp.append(tr("'"));
str_tmp.append(tr("`"));
str_tmp.append(fieldName);
str_tmp.append(tr("' "));
str_tmp.append(tr("` "));
str_tmp.append(fieldType);
//str_tmp.append(tr(" "));
if (characterSet !="") {
96,6 → 97,10
str_tmp.append(defaultValue);
str_tmp.append(tr("'"));}
 
if (TableField::autoIncrement) {
str_tmp.append(tr(" "));
str_tmp.append(tr("AUTO_INCREMENT"));
}
TableField::SqlString = str_tmp;
}
 
110,3 → 115,14
TableField::createSqlString();
}
 
 
 
void TableField::setAutoIncrement(bool autoInc){
TableField::autoIncrement = autoInc;
TableField::createSqlString();
}
 
 
bool TableField::isAutoIncrement(){
return TableField::autoIncrement;
}
/trunk/ClassEditor/classeditor.cpp
15,10 → 15,23
 
table = new SqlTable (tr("NewTable"), this);
table->setName(tr("NewTable"));
table->fields().at(0)->setNotNull(true);
if (!(table->setPrimaryKey(tr("ID")))) {
ui->label_3->setText(table->lastError());
}
else ui->label_3->setText(table->primaryKey());
table->append(field);
 
field = new TableField(tr("Êîìïüþòåðû"), this);
field->setNotNull(true);
field->setDefaultValue(tr("êîìïüþòåð"));
table->append(field);
 
ui->label_2->setText(table->name());
ui->label->setText(table->fields().at(0)->sqlString());
ui->label_4->setText(table->sqlString());
ui->lineEdit->insert(table->sqlString());
 
 
}
 
ClassEditor::~ClassEditor()
/trunk/ClassEditor/sqltable.h
16,17 → 16,26
void setName(QString tname); // ôóíêöèÿ ïðèñâàèâàåò èìÿ òàáëèöå, èìå ïåðåäàåòñÿ â ïàðàìåòðå ôóíêöèè tname
QString name(); // ôóíêöèÿ áåç ïàðàìåòðîâ âîçâðàùàåò èìÿ òàáëèöû
QList<TableField*> fields(); // âîçâðàùàåò ñïèñîê óêàçàòåëåé íà ïîëÿ òàáëèöû
bool setPrimaryKey(QString fieldName); // ôóíêöèÿ óñòàíàâëèâàåò ïåðâè÷íûì êëþ÷îì ïîëå, èìåíÿ êîòîðîãî ñîâïàäàåò ñ ïåðåäàâàåìûì ïàðàìåòðîì fieldName
QString lastError(); // ôóíêöèÿ âîçâðàùàåèò ïîÿñíèòåëüíûé òåêñò ïîñëåäíåé îøèáêè, êîòîðàÿ âîçíèêëà ïðè âûçîâå ìåòîäîâ êëàññà
QString primaryKey(); // ôóíêöèÿ âîçâðàùàåò èìÿ ïîëÿ, êîòîðîå ÿâëÿåòñÿ ïåðâè÷íûì êëþ÷îì
QString sqlString(); // ôóíêöèÿ ãåíåðèðóåò ñòðîêó Sql-çàïðîñà, êîòîðàÿ ñîçäàåò â áàçå äàííûõ ñîîòâåòñòâóþùóþ òàáëèöó
void append(TableField* newfield); // äîáàâëÿåò â êîíåö ñïèñêà (óêàçàòåëåé) ïîëåé òàáëèöû íîàîå ïîëå, ïåðåäàâàåìîå ÷åðåç ïàðàìåòð newfield (óêàçàòåëü)
 
 
 
private:
QString tableName; // èìÿ òàáëèöû
QString SqlString; // ñòðîêà Sql-çàïðîñà äëÿ ñîçäàíèÿ òàáëèöû â áàçå äàííûõ
QString characterSet; // ïåðåìåííàÿ ñîäåðæèò êîäèðîâêó, â êîòîðîé õðàíÿòüñÿ òåêñòîâûå äàííûå
QString primaryKey; // èìÿ ïîëÿ, ÿâëÿþùåãîñÿ ïåðâè÷íûì êëþ÷îì òàáëèöû
int primaryKeyIndex; // ïîðÿäêîâûé íîìåð ïîëÿ (â ñïèñêå ïîëåé fields), êîòîðîå ÿâëÿåòñÿ ïåðâè÷íûì êëþ÷îì òàáëèöû
QString tableCharacterSet; // ïåðåìåííàÿ ñîäåðæèò êîäèðîâêó, â êîòîðîé õðàíÿòüñÿ òåêñòîâûå äàííûå
QString tablePrimaryKey; // èìÿ ïîëÿ, ÿâëÿþùåãîñÿ ïåðâè÷íûì êëþ÷îì òàáëèöû
QString tableEngine; // äâèæåê òàáëèöû
int tablePrimaryKeyIndex; // ïîðÿäêîâûé íîìåð ïîëÿ (â ñïèñêå ïîëåé fields), êîòîðîå ÿâëÿåòñÿ ïåðâè÷íûì êëþ÷îì òàáëèöû
QList<TableField*> tableFields; // â ýòîì ñïèñêå íàõîäòñÿ âñå ïîëÿ òàáëèöû
TableField *field_tmp;
QString tableLastError; // ñòðîêà ñîäåðæèò ïîÿñíèòåëüíûé òåêñò ïîñëåäíåé îøèáêè, êîòîðàÿ âîçíèêëà ïðè âûçîâå ìåòîäîâ êëàññà
 
bool createSqlString(); // ôóíêöèÿ ãåíåðèðóåò ñòðîêó Sql-çàïðîñà, êîòîðàÿ ñîçäàåò â áàçå äàííûõ ñîîòâåòñòâóþùe òàáëèöó
 
protected:
 
};