232,38 → 232,15 |
|
} |
|
tbl = new SqlTable(tr("Filters")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ |
fld = new TableField(tr("Model_ID"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
|
|
if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
|
// delete fld; |
delete tbl; // ÷èñòèì çà ñîáîé |
return false; // âûâîäèì îøèáêó |
} |
|
|
else { // òàáëèöó óñïåøíî ñîçäàíà |
// delete fld; |
delete tbl; // ÷èñòèì çà ñîáîé |
return true; // ñîîáùàåì îá óñïåõå |
|
} |
|
|
|
|
|
} |
|
|
|
|
bool MySql::createListOfClassesTable(){ |
|
SqlTable* tbl; |
446,62 → 423,6 |
} |
|
|
bool MySql::createFiltersTable(){ // ñîçäàåò íåîáõîäèìóþ òàáëèöó â áàçå äàííûõ äëÿ õðàíåíèÿ ôèëüòðîâ (Òàáëèöà Filters) |
|
SqlTable* tbl; |
TableField* fld; |
if (!db.isOpen()){ |
MySql::mysqlLastError = tr("Database is not open!"); |
return false; |
} |
tbl = new SqlTable(tr("Filters")); // ñîçäàäèì òàáëèöó ñ èìåíåì Filters äëÿ õðàíåíèÿ ôèëüòðîâ |
|
fld = new TableField(tr("Model_ID"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü ID ìîäåëè, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
|
fld = new TableField(tr("Class_ID"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ID êëàññà, ê êîòîðîìó áóäåò ïðèìåíÿòüñÿ ôèëüòð |
fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
|
fld = new TableField(tr("Filter"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò õðàíèòü íåïîñðåäñòâåííî SQL-âûðàæåíèå |
fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
fld->setType(tr("TEXT")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
|
|
fld = new TableField(tr("Ñondition"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü ëîãè÷åñêèå óñëîâèå (AND, OR), c êîòîðûì âûðàæåíèå áóäåò äîáàâëÿòüñÿ â ôèëüòð |
fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
|
|
if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
|
// delete fld; |
delete tbl; // ÷èñòèì çà ñîáîé |
return false; // âûâîäèì îøèáêó |
} |
|
|
else { // òàáëèöó óñïåøíî ñîçäàíà |
// delete fld; |
delete tbl; // ÷èñòèì çà ñîáîé |
return true; // ñîîáùàåì îá óñïåõå |
|
} |
|
|
} |
|
|
|
QSqlError MySql::dbLastError(){ // ôóíêöèÿ ôîçâðàùàåò ïîñëåäíþþ îøèáêó áàçû äàííûõ |
QString error; |
error = db.lastError().text(); |