Хранилища Subversion OpenInventory

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

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

/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();
}