Example #1
0
void admin::setupAction()
{
    readSettings();
    logList->setColumnWidth(0,60);
    logList->setColumnWidth(1,60);
    logList->setColumnWidth(2,40);
    sysList->setColumnWidth(0,120);

    RefTable->setColumnWidth(0,100);
    RefTable->setColumnWidth(1,180);
    RefTable->setColumnWidth(2,160);
    RefTable->setColumnWidth(3,60);
    RefTable->setColumnWidth(4,60);
    RefTable->setColumnWidth(5,60);
    customsTable->setColumnWidth(0,80);
    customsTable->setColumnWidth(1,190);
    if(settings.value("dbconf").toInt() == 0) {
        s = tr("\nDas Runtime-Flag 'dbconf' steht auf Null.\nDas Flag ist beschaedigt, ");
        s += tr("oder QtLog ist nicht initialisiert\n");
        s += tr("Das Programm schaltet ab");
        QMessageBox::information( this,
                                  tr("QtLog INFO"),
                                  tr(s.toAscii()),
                                  QMessageBox::Ok | QMessageBox::Default,
                                  QMessageBox::NoButton, QMessageBox::NoButton);
        exit(0);
    }
    else {
        openDatabase();
        showTables(1);
    }
    if(settings.value("Val").toInt() == 1) {
        dirsel = 0;
        adifExpCb();
    }
    else if(settings.value("Val").toInt() == 2) {
        dirsel = 1;
        adifImpCb();
    }
    QSqlQuery query;
    qy = "SELECT rigtype FROM wrig";
    query.exec(qy);
    while(query.next()) {
        n = 0;
        comboBoxRig->addItem(query.value(n++).toString());
    }
    qy = "SELECT lid,logging FROM tlocation WHERE logging != ''";
    query.exec(qy);
    while(query.next()) {
        i = 0;
        n = 0;
        i = query.value(n++).toInt();
        comboBoxHome->addItem(query.value(n++).toString());
    }

    comboBoxHome->setCurrentIndex(1);
    SavePathEdit->setText(settings.value("dumpPath").toString());
}
Example #2
0
File: main.c Project: sympe/microDB
/*
* main -- マイクロDBシステムのエントリポイント
*/
int main()
{
	char input[MAX_INPUT];
	char *token;

	/* ファイルモジュールの初期化 */
	if (initializeFileModule() != OK) {
		fprintf(stderr, "Cannot initialize file module.\n");
		exit(1);
	}

	/* データ定義ジュールの初期化 */
	if (initializeDataDefModule() != OK) {
		fprintf(stderr, "Cannot initialize data definition module.\n");
		exit(1);
	}

	/* データ操作ジュールの初期化 */
	if (initializeDataManipModule() != OK) {
		fprintf(stderr, "Cannot initialize data manipulation module.\n");
		exit(1);
	}

	/* ウェルカムメッセージを出力 */
	printf("マイクロDBMSを起動しました。\n");

	/* 1行ずつ入力を読み込みながら、処理を行う */
	for (;;) {
		/* プロンプトの出力 */
		printf("\nDDLまたはDMLを入力してください。\n");
		printf("> ");

		/* キーボード入力を1行読み込む */
		fgets(input, MAX_INPUT, stdin);

		/* 入力の最後の改行を取り除く */
		if (strchr(input, '\n') != NULL) {
			*(strchr(input, '\n')) = '\0';
		}

		/* 字句解析するために入力文字列を設定する */
		setInputString(input);

		/* 最初のトークンを取り出す */
		token = getNextToken();

		/* 入力が空行だったら、ループの先頭に戻ってやり直し */
		if (token == NULL) {
			continue;
		}

		/* 入力が"quit"だったら、ループを抜けてプログラムを終了させる */
		if (strcmp(token, "quit") == 0) {
			printf("マイクロDBMSを終了します。\n\n");
			break;
		}

		/* 最初のトークンが何かによって、呼び出す関数を決める */
		if (strcmp(token, "create") == 0) {
			callCreateTable();
		}
		else if (strcmp(token, "drop") == 0) {
			callDropTable();
		}
		else if (strcmp(token, "insert") == 0) {
			callInsertRecord();
		}
		else if (strcmp(token, "select") == 0) {
			callSelectRecord();
		}
		else if (strcmp(token, "delete") == 0) {
			callDeleteRecord();
		}
		else if (strcmp(token, "show") == 0){
			showTables();
		}
		else if (strcmp(token, "test1") == 0){
			test1();
		}
		else {
			/* 入力に間違いがあった */
			printf("入力に間違いがあります。:%s\n", token);
			printf("もう一度入力し直してください。\n\n");
		}
	}

	/* 各モジュールの終了処理 */
	finalizeDataManipModule();
	finalizeDataDefModule();
	finalizeFileModule();
}
Example #3
0
// -----------------------------
void admin::setupAction()
{
   readSettings();
   logList->setColumnWidth(0,60);          // Log_name
   logList->setColumnWidth(1,60);          // Einträge
   logList->setColumnWidth(2,40);          // Rel
   
   sysList->setColumnWidth(0,120);
   
   RefTable->setColumnWidth(0,100);        // sys.Name
   RefTable->setColumnWidth(1,100);        // User.Name
   RefTable->setColumnWidth(2,100);        // User_en
   RefTable->setColumnWidth(3,135);        // Adif.Name
   
   //RefTable->setColumnWidth(4,60);
   //RefTable->setColumnWidth(5,60);
   
   customsTable->setColumnWidth(0,80);
   customsTable->setColumnWidth(1,190);
   
   if(settings.value("dbconf").toInt() == 0) {      // liegt ein Fehler vor ?
     s = tr("\nDas Runtime-Flag 'dbconf' steht auf Null.\nDas Flag ist beschaedigt, ");
     s += tr("oder QtLog ist nicht initialisiert\n");
     s += tr("Das Programm schaltet ab");
     QMessageBox::information( this,
         tr("QtLog INFO"),
         tr(s.toAscii()),
         QMessageBox::Ok | QMessageBox::Default,
         QMessageBox::NoButton, QMessageBox::NoButton);
     exit(0);                                       // Abbruch       
   }
   else {
     openDatabase();                                // normaler db_connect   
     showTables(1);                                 // Log + SysTabellen zeigen
   }
   if(settings.value("Val").toInt() == 1) {         // ADIF_Export
       dirsel = 0;                                  // dirselector auf Pfad stellen
       adifExpCb();
   }
   else
    if(settings.value("Val").toInt() == 2) {       // ADIF_Import
       dirsel = 1;                                 // dirselector auf Datei waehlen stellen
       adifImpCb();
    }
   QSqlQuery query;
   qy = "SELECT rigtype FROM wrig";
   query.exec(qy);
   while(query.next()) {
       n = 0;
       comboBoxRig->addItem(query.value(n++).toString());
   }
   qy = "SELECT lid,logging FROM tlocation WHERE logging != ''";
   query.exec(qy);
   while(query.next()) {
       i = 0;
       n = 0;
       i = query.value(n++).toInt();                       // id   
       comboBoxHome->addItem(query.value(n++).toString()); // logging_text
   }
   
   comboBoxHome->setCurrentIndex(1);                          
   SavePathEdit->setText(settings.value("dumpPath").toString());
}
Example #4
0
void admin::dbRestore()
{
    int i;
    QString p;
    QFile file;
    i = 0;
    QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
    QString pathToMysql="";
#ifdef Q_WS_WIN
    pathToMysql=settings.value("mySQLPath","").toString();
#endif
    if(checkBoxDb->isChecked() == TRUE ) {
        p += SavePathEdit->text()+"backup-db.sql";
        if(!file.exists(p)) {
            QApplication::restoreOverrideCursor();
            QMessageBox::information( this,
                                      tr("INFO"),
                                      tr("\nRESTORE nicht moeglich - Datei nicht vorhanden !"),
                                      QMessageBox::Ok);
            return;
        }
        QSqlQuery query;

        qy = "DROP DATABASE IF EXISTS "+settings.value("dbname").toString();
        query.exec(qy);

        qy = "CREATE DATABASE logdb";
        query.exec(qy);
        qy = "USE logdb";
        query.exec(qy);


        s = pathToMysql + "mysql -u"+settings.value("dbuser").toString()+" -p"+settings.value("dbpasswd").toString();
        s += " "+ settings.value("dbname").toString()+" < ";
        s += p;
        StartProcess(s.toAscii());
        i = 1;
    }
    else {
        if( lItem) {
            p = SavePathEdit->text()+"backup-"+lItem->text(0)+".sql";
            if(!file.exists(p)) {
                QApplication::restoreOverrideCursor();
                QMessageBox::information( this,
                                          tr("INFO"),
                                          tr("\nRESTORE nicht moeglich - Datei nicht vorhanden !"),
                                          QMessageBox::Ok);
                return;
            }

            s = pathToMysql + "mysql -u"+settings.value("dbuser").toString()+" -p"+settings.value("dbpasswd").toString()+" "+settings.value("dbname").toString()+" < ";
            s+= p;
            StartProcess(s.toAscii());
            QSqlQuery query;
            qy = "SELECT COUNT(*) FROM "+lItem->text(0);
            query.exec(qy);
            query.next();
            s = query.value(0).toString();
            qy = "UPDATE dblogs SET qsocnt='"+s+"' WHERE logname='"+lItem->text(0)+"'";
            query.exec(qy);
            i = 0;
        }
        else if( sItem ) {
            p = SavePathEdit->text()+"backup-"+sItem->text(0)+".sql";
            if(!file.exists(p)) {
                QApplication::restoreOverrideCursor();
                QMessageBox::information( this,
                                          tr("INFO"),
                                          tr("\nRESTORE nicht moeglich - Datei nicht vorhanden !"),
                                          QMessageBox::Ok);
                return;
            }
            s = pathToMysql + "mysql -u"+settings.value("dbuser").toString()+" -p"+settings.value("dbpasswd").toString()+" "+settings.value("dbname").toString()+" < ";
            s += p;
            StartProcess(s.toAscii());
            i = 0;
        }
        else {
            QApplication::restoreOverrideCursor();
            QMessageBox::information( this,
                                      tr("INFO"),
                                      tr("\nErst eine Tabelle im Logbook- oder QtLog-Ordner waehlen"),
                                      QMessageBox::Ok);
            return;
        }
    }
    logList->clear();
    sysList->clear();
    showTables(i);
    QApplication::restoreOverrideCursor();
}
Example #5
0
// ======================================================================
// RESTORE database kompl. oder eine einzelne Tabelle
// --------------------------------------------------------
void admin::dbRestore()
{
  int i;
  QString p;
  QFile file;
     i = 0;
     QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
     QString pathToMysql="";
#ifdef Q_WS_WIN
    pathToMysql=settings.value("mySQLPath","").toString();
#endif
     if(checkBoxDb->isChecked() == TRUE ) {          // gesetzt, RESTORE alle Tabellen
        p += SavePathEdit->text()+"backup-db.sql";
        if(!file.exists(p)) {
           QApplication::restoreOverrideCursor();
           QMessageBox::information( this,
           tr("INFO"),
           tr("\nRESTORE nicht moeglich - Datei nicht vorhanden !"),
           QMessageBox::Ok);
          return;
        }
        QSqlQuery query;
        // hier müsste noch pathToMysql rein ! ?
        qy = "DROP DATABASE IF EXISTS "+settings.value("dbname").toString(); 
        query.exec(qy);
         // auch hier müsste noch pathToMysql rein ! ?
        qy = "CREATE DATABASE logdb";                                        
        query.exec(qy);
        qy = "USE logdb";
        query.exec(qy);
 
        // Windows: dbuser hinzugefuegt, sollte unter Linux auch gehen
        s = pathToMysql + "mysql -u"+settings.value("dbuser").toString()+" -p"+settings.value("dbpasswd").toString();
        s += " "+ settings.value("dbname").toString()+" < ";
        s += p;
        StartProcess(s.toAscii());
        i = 1;
     }
     else {                                              // RESTORE eine log_Tabelle
        if( lItem) {
          p = SavePathEdit->text()+"backup-"+lItem->text(0)+".sql";
          if(!file.exists(p)) {
             QApplication::restoreOverrideCursor();
             QMessageBox::information( this,
             tr("INFO"),
             tr("\nRESTORE nicht moeglich - Datei nicht vorhanden !"),
             QMessageBox::Ok);
            return;
          }
         // fun, funqsl, funom, funawd, funcard, fundx, wawdlist
          s = pathToMysql + "mysql -u"+settings.value("dbuser").toString()+" -p"+settings.value("dbpasswd").toString()+" "+settings.value("dbname").toString()+" < ";
          s+= p;
          StartProcess(s.toAscii());
          QSqlQuery query;
          qy = "SELECT COUNT(*) FROM "+lItem->text(0);
          query.exec(qy);
          query.next();
          s = query.value(0).toString();
          qy = "UPDATE dblogs SET qsocnt='"+s+"' WHERE logname='"+lItem->text(0)+"'";
          query.exec(qy);
          i = 0;
       }
       else
          if( sItem ) {                                  // eine system_tabelle 
             p = SavePathEdit->text()+"backup-"+sItem->text(0)+".sql";
             if(!file.exists(p)) {
                QApplication::restoreOverrideCursor();
                QMessageBox::information( this,
                tr("INFO"),
                tr("\nRESTORE nicht moeglich - Datei nicht vorhanden !"),
                QMessageBox::Ok);
               return;
             }
             s = pathToMysql + "mysql -u"+settings.value("dbuser").toString()+" -p"+settings.value("dbpasswd").toString()+" "+settings.value("dbname").toString()+" < ";
             s += p;
             StartProcess(s.toAscii());
             i = 0;
          }
        else {
          QApplication::restoreOverrideCursor();
          QMessageBox::information( this,
          tr("INFO"),
          tr("\nErst eine Tabelle im Logbook- oder QtLog-Ordner waehlen"),
          QMessageBox::Ok);
          return;
       }
     }
     logList->clear();
     sysList->clear();
     showTables(i);                               // Ergebnis in logList und sysList anzeigen.
     QApplication::restoreOverrideCursor();
}