int main()
{
  int alldone = 0;
  welcome();
  do
  {
    if (checkdata() == 1)
    { resetstatus(); }
    do
    {
      if (checkstatus() == 1)
      {
        if (restart()) 
        { break; }
      }
      displaystatus();
      alldone = continueclipping();
    } 
    while (alldone == 0);
  resetstatus();
  goodbye();
  } 
  while (close() == 0);
  return 0;
}
int restart()
{
  char restartchoice;
  displaystatus();
  printf("all clipped!\n\n");
  do
  {
    printf("start over?\n");
    printf("[y/n]: ");
    scanf(" %c", &restartchoice);
  } 
  while ((restartchoice != 'y') && (restartchoice != 'n'));
  if (restartchoice == 'y')
  {
    resetstatus();
    return 0;
  }
  return 1;
}
예제 #3
0
void Browser::ExportMysql( QString qx )
{
    QString tta;
    QString cfileName = QFileDialog::getSaveFileName(this, "Export MYSQL locale format text",QString(setter.value("lastdirDir").toString()), "*.sql");
    bool ok;
    QString newtablename = QInputDialog::getText(this, tr("You like mysql insert on new table name?"),tr("TableName:"), QLineEdit::Normal,runningtable, &ok);
    
    
    
    QString msgDB =tr("<p>Append create table command? mysql</p>");
      int removeyes = QMessageBox::question(this, tr("Please confirm!"),msgDB,
                                                            tr("&Yes"), tr("&No"),
                                                             QString(),8888,9999);
         QString responder = QString::number(removeyes);
    
    
    
    
    
   
    
    if (cfileName.size() > 0) {
      QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
     if (!cfileName.endsWith(".sql")) {
         cfileName = cfileName+".sql"; 
     }
     
     QString dirsave = cfileName.left(cfileName.lastIndexOf("/"))+"/";
     setter.setValue("lastdirDir",dirsave);
     
     
            dlg = new QProgressDialog(this,Qt::Popup);
            dlg->setLabelText (tr("Export table \"%1\"").arg( runningtable ));
            dlg->setCancelButton(0);
     
    QStringList cvslines;
    QStringList Fname;
    QStringList Fvalue;
    cvslines.append(QString("### Created on %1  ###").arg(_PROGRAM_TITLE_)); 
    cvslines.append(QString("### Export from %1 ###").arg(UmanTimeFromUnix(QTime_Null())));   
    cvslines.append(QString("### Remove comment line if other application not support!   ###")); 
     
     
            QSqlQuery query(qx,connectionWidget->currentDatabase());
            QSqlRecord rec = query.record();
     
     bool window = false;
     
     
            if (responder =="0")  {
                if (runningdriver == "qmysql") {
                window = OSWinServer();
                QString dtabi = SqlCreateTable(runningtable);
                    
                    if (newtablename.size() > 0 ) {
                        
                        if (window)  {
                        dtabi.replace("`"+runningtable.toUpper()+"`","`"+newtablename.toUpper()+"`");
                        } else {
                        dtabi.replace("`"+runningtable+"`","`"+newtablename+"`"); 
                        }
                    }
                    
                cvslines.append(dtabi);  
                } else {
                cvslines.append(StructureMYSQLTable(rec)); 
                cvslines.append(QString("### Manual rewrite if is from odbc export! ###"));                    
                }
            }
     
             if (newtablename.size() > 0 ) {
             runningtable = newtablename;
             }
     
            bool suppoaffect;
            int sumcol = rec.count();
            int sumrow = query.numRowsAffected();
            int recnum = 0;  /* QProgressDialog *dlg; */
            int pasero = 0;
            if (sumrow < 1) {
               suppoaffect = false;
               sumrow = 1000;
            } else {
               suppoaffect = true; 
            }
            
    
               while (query.next()) { 
                    recnum++;  /* count fake lines */
                    
                    emit displaystatus(recnum,sumrow);
                   
                    Fvalue.clear();
                    Fname.clear();
                   
                             for(int i=0;i<sumcol;i++){
                             bool oknr;
                             QSqlField fld = rec.field(i);
                             QString value ="";
                             QString typeoffield = QString(QVariant::typeToName(fld.type()));
                                 if (typeoffield != "QByteArray") {
                                  value = Strsqltrimmed(query.value(i).toString());
                                 } else {
                                  value = Strsqltrimmed(query.value(i).toString());
                                 }
                                 
                             int vnummer = value.toInt(&oknr);
                             QString fname = Strcsvtrimmed(rec.fieldName(i));
                                 if (oknr) {
                                 Fvalue.append(value);
                                 } else if (value.isEmpty()) {
                                 Fvalue.append("NULL");
                                 } else {
                                 Fvalue.append(QString("'%1'").arg(value));  
                                 }
                             }
                             
                    QString Dvalue = Fvalue.join(",");
                    if (window) {     
                    cvslines.append(QString("REPLACE INTO `%1` VALUES (%2);").arg(runningtable.toUpper()).arg(Dvalue));
                    } else {
                    cvslines.append(QString("REPLACE INTO `%1` VALUES (%2);").arg(runningtable).arg(Dvalue));   
                    }
                             
                             
                      if (!suppoaffect) {
                          if (recnum == 1001) {
                          recnum = 0;
                          pasero++;
                          dlg->setLabelText (tr("Export table \"%1\" %2x1000 !numRowsAffected").arg( runningtable ).arg(pasero));
                          }
                      }
                    }
             
               QString contentxt = cvslines.join("\n");
                ///////////QTextCodec *setcurrentcodec;
                //////////setcurrentcodec = QTextCodec::codecForMib(106);  /* utf8 */ 
                    
                QFile f( cfileName );
                if ( f.open( QFile::WriteOnly | QFile::Text ) ) {
                QTextStream sw( &f );
                /////////sw.setCodec(setcurrentcodec);
                sw << contentxt;
                f.close();
                   if (dlg->isVisible ()) {
                   dlg->close();
                   }
                } else {
                    if (dlg->isVisible ()) {
                    dlg->close();
                    }
                    QApplication::restoreOverrideCursor(); 
                    QMessageBox::information(this, tr("Error!"),tr("Unable to save to file %1").arg(cfileName));
                }     
                    
                    
     QApplication::restoreOverrideCursor(); 
    
     }
}