std::string evalute::evalute_b2Body(Watch* watch) { std::string name = watch->MemberName; std::string result = ""; b2Body* body = boost::get<b2Body*>(watch->Object); if( name == "Type") { b2BodyType type = body->GetType(); switch(type) { case b2_staticBody: result = "StaticBody"; break; case b2_dynamicBody: result = "DynamicBody"; break; case b2_kinematicBody: result = "KinematicBody"; break; default: result = "Unknown type"; } } else if(name == "Position") result = VectorToStr(body->GetPosition()); else if(name == "Angle") result = FloatToStr(body->GetAngle()); else if(name == "WorldCenter") result = VectorToStr(body->GetWorldCenter()); else if(name == "LocalCenter") result = VectorToStr(body->GetLocalCenter()); else if(name == "LinearVelocity") result = VectorToStr(body->GetLinearVelocity()); else if(name == "AngularVelocity") result = FloatToStr(body->GetAngularVelocity()); else if(name == "Inertia") result = FloatToStr(body->GetInertia()); else if(name == "LinearDamping") result = FloatToStr(body->GetLinearDamping()); else if(name == "AngularDamping")result = FloatToStr(body->GetAngularDamping()); else if(name == "Bullet") result = BoolToStr(body->IsBullet()); else if(name == "SleepingAllowed") result = BoolToStr(body->IsSleepingAllowed()); else if(name == "Awake") result = BoolToStr(body->IsAwake()); else if(name == "Active") result = BoolToStr(body->IsActive()); else if(name == "FixedRotation") result = BoolToStr(body->IsFixedRotation()); bool mass = false; std::string massValuePrefix = "", massCenterPrefix = "", massRotationInertiaPrefix = ""; b2MassData massData; body->GetMassData(&massData); if( name == "Mass") { mass = true; result = "{ "; massValuePrefix = "Value = "; massCenterPrefix = ", Center = "; massRotationInertiaPrefix = ", RotationInertia = "; } if( name == "Mass.Value" || mass) result += massValuePrefix + FloatToStr(massData.mass); if( name == "Mass.Center" || mass) result += massCenterPrefix + VectorToStr(massData.center); if( name == "Mass.RotationInertia" || mass) result += massRotationInertiaPrefix + FloatToStr(massData.I); if(mass) result += " }"; if(result == "") result = "Can't evalute"; return result; }
// Read a boolean value bool sysSettings::Read(const wxString &key, bool *val, bool defaultVal) const { wxString actualDefault = BoolToStr(defaultVal); wxString str; // Get the default from the defaults file, in preference // to the hardcoded value if (defaultSettings) defaultSettings->Read(key, &actualDefault, BoolToStr(defaultVal)); Read(key, &str, actualDefault); *val = StrToBool(str); return true; }
wxString dlgSchedule::GetInsertSql() { wxString sql; if (!schedule) { wxString name = GetName(); wxString jscjobid, list = wxT("NULL"); if (jobId) jscjobid = NumToStr(jobId); else jscjobid = wxT("<JobId>"); // Build the various arrays of values sql = wxT("INSERT INTO pgagent.pga_schedule (jscid, jscjobid, jscname, jscdesc, jscminutes, jschours, jscweekdays, jscmonthdays, jscmonths, jscenabled, jscstart, jscend)\n") wxT("VALUES(<SchId>, ") + jscjobid + wxT(", ") + qtDbString(name) + wxT(", ") + qtDbString(txtComment->GetValue()) + wxT(", ") + wxT("'") + ChkListBox2PgArray(chkMinutes) + wxT("', ") + wxT("'") + ChkListBox2PgArray(chkHours) + wxT("', ") + wxT("'") + ChkListBox2PgArray(chkWeekdays) + wxT("', ") + wxT("'") + ChkListBox2PgArray(chkMonthdays) + wxT("', ") + wxT("'") + ChkListBox2PgArray(chkMonths) + wxT("', ") + BoolToStr(chkEnabled->GetValue()) + wxT(", ") + wxT("'") + DateToAnsiStr(calStart->GetValue() + timStart->GetValue()) + wxT("'"); if (calEnd->GetValue().IsValid()) sql += wxT(", '") + DateToAnsiStr(calEnd->GetValue() + timEnd->GetValue()) + wxT("'"); else sql += wxT(", NULL"); sql += wxT(");\n"); } return sql; }
wxString dlgRepSubscription::GetSql() { wxString sql; sql = wxT("SELECT ") + cluster->GetSchemaPrefix() + wxT("subscribeset(") + NumToStr(set->GetSlId()) + wxT(", "); if (cluster && cluster->ClusterMinimumVersion(1, 1)) { // Actually, provider and receiver are exchanged here. sql += NumToStr(cluster->GetLocalNodeID()) + wxT(", ") + NumToStr((long)cbProvider->wxItemContainer::GetClientData(cbProvider->GetCurrentSelection())); } else { sql += NumToStr((long)cbProvider->wxItemContainer::GetClientData(cbProvider->GetCurrentSelection())) + wxT(", ") + NumToStr(cluster->GetLocalNodeID()); } sql += wxT(", ") + BoolToStr(chkForward->GetValue()); // Omit copy? if (cluster && cluster->ClusterMinimumVersion(2, 0) && cluster->GetClusterVersion() != wxT("2.0.0") && cluster->GetClusterVersion() != wxT("2.0.1") && cluster->GetClusterVersion() != wxT("2.0.2")) sql += wxT(", false"); sql += wxT(");"); return sql; }
void IOMapViewportDefinition::Write(MdfStream& fd, MapViewportDefinition* mapViewportDef, Version* version, MgTab& tab) { _ASSERT(NULL != mapViewportDef); // Set the expected version MdfString strVersion = L"2.0.0"; fd << tab.tab() << "<PrintLayoutElementDefinition xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"PrintLayoutDefinition-" << EncodeString(strVersion) << ".xsd\" version=\"" << EncodeString(strVersion) << "\">" << std::endl; // NOXLATE tab.inctab(); fd << tab.tab() << startStr(sMapViewportDefinition) << std::endl; tab.inctab(); IOPrintLayoutElementDefinition::Write(fd, mapViewportDef, version, tab); // Property: MapName fd << tab.tab() << startStr(sMapName); fd << EncodeString(mapViewportDef->GetMapName()); fd << endStr(sMapName) << std::endl; // Property: HiddenLayerNames IOStringObjectCollection::Write(fd, mapViewportDef->GetHiddenLayerNames(), version, sHiddenLayerNames, sName, tab); // Property: Locked fd << tab.tab() << startStr(sLocked); fd << BoolToStr(mapViewportDef->GetIsLocked()); fd << endStr(sLocked) << std::endl; // Property: On fd << tab.tab() << startStr(sOn); fd << BoolToStr(mapViewportDef->GetIsOn()); fd << endStr(sOn) << std::endl; // Property: MapView IOMapView::Write(fd, mapViewportDef->GetMapView(), version, tab); tab.dectab(); fd << tab.tab() << endStr(sMapViewportDefinition) << std::endl; tab.dectab(); fd << tab.tab() << "</PrintLayoutElementDefinition>" << std::endl; // NOXLATE }
void dlgSchedule::OnChangeException(wxCommandEvent &ev) { if (!calException->GetValue().IsValid() && timException->GetValue().IsNull()) { wxMessageBox(_("You must enter a valid date and/or time!"), _("Add exception"), wxICON_EXCLAMATION | wxOK, this); return; } wxString exDate, exTime; if (calException->GetValue().IsValid()) exDate = calException->GetValue().FormatDate(); else exDate = _("<any>"); if (!timException->GetValue().IsNull()) exTime = timException->GetValue().Format(); else exTime = _("<any>"); long item = lstExceptions->GetFocusedItem(); for (int pos = 0; pos < lstExceptions->GetItemCount(); pos++) { if (item != pos) { if (lstExceptions->GetText(pos, 0) == exDate && lstExceptions->GetText(pos, 1) == exTime) { wxMessageBox(_("The specified exception already exists!"), _("Add exception"), wxICON_EXCLAMATION | wxOK, this); return; } if (lstExceptions->GetText(pos, 0) == exDate && lstExceptions->GetText(pos, 1) == _("<any>")) { wxMessageBox(_("An exception already exists for any time on this date!"), _("Add exception"), wxICON_EXCLAMATION | wxOK, this); return; } if (lstExceptions->GetText(pos, 1) == exTime && lstExceptions->GetText(pos, 0) == _("<any>")) { wxMessageBox(_("An exception already exists for this time on any date!"), _("Add exception"), wxICON_EXCLAMATION | wxOK, this); return; } } } lstExceptions->SetItem(item, 0, exDate); lstExceptions->SetItem(item, 1, exTime); lstExceptions->SetItem(item, 2, BoolToStr(true)); CheckChange(); }
void SavePrefToDB() { int i; for( i=0; i < N_DPY_PREFS; i++ ) XrmPutStringResource( &pref_db.db, pref_db.dpyPrefs[i].name, BoolToStr(pref_db.dpyPrefs[i].value ) ); for( i=0; i < N_CLI_PREFS; i++ ) XrmPutStringResource( &pref_db.db, pref_db.cliPrefs[i].name, BoolToStr(pref_db.cliPrefs[i].value ) ); for( i=0; i < N_WIN_PREFS; i++ ) XrmPutStringResource( &pref_db.db, pref_db.winPrefs[i].name, BoolToStr(pref_db.winPrefs[i].value ) ); for( i=0; i < N_PROP_PREFS; i++ ) XrmPutStringResource( &pref_db.db, pref_db.propPrefs[i].name, BoolToStr(pref_db.propPrefs[i].value ) ); for( i=0; i < N_TREE_PREFS; i++ ) XrmPutStringResource( &pref_db.db, pref_db.treePrefs[i].name, BoolToStr(pref_db.treePrefs[i].value ) ); }
std::string evalute::evalute_EnvironObject(Watch* watch) { std::string name = watch->MemberName; std::string result = ""; EnvironObject* obj = boost::get<EnvironObject*>(watch->Object); if(name == "Enabled") result = BoolToStr(obj->getEnabled()); else if(name == "Limit") result = IntToStr(obj->getLimit()); if(result == "") result = "Can't evalute"; return result; }
std::string evalute::evalute_BodyPart(Watch* watch) { std::string name = watch->MemberName; std::string result = ""; BodyPart* part = boost::get<BodyPart*>(watch->Object); if( name == "MaxKindleLevel") result = FloatToStr(part->getMaxKindleLevel()); else if( name == "MaxDampness") result = FloatToStr(part->getMaxDampness()); else if( name == "AcceptsCord") result = BoolToStr(part->getAcceptsCord()); else if( name == "Name") result = part->getName(); if(result == "") result = "Can't evalute"; return result; }
wxString dlgJob::GetInsertSql() { wxString sql; if (!job) { sql = wxT("INSERT INTO pgagent.pga_job (jobid, jobjclid, jobname, jobdesc, jobenabled, jobhostagent)\n") wxT("SELECT <JobId>, jcl.jclid, ") + qtDbString(GetName()) + wxT(", ") + qtDbString(txtComment->GetValue()) + wxT(", ") + BoolToStr(chkEnabled->GetValue()) + wxT(", ") + qtDbString(txtHostAgent->GetValue()) + wxT("\n") wxT(" FROM pgagent.pga_jobclass jcl WHERE jclname=") + qtDbString(cbJobclass->GetValue()) + wxT(";\n"); } return sql; }
wxString dlgStep::GetInsertSql() { wxString sql; if (!step) { wxString name = GetName(); wxString kind = wxT("sb")[rbxKind->GetSelection()]; wxString onerror = wxT("fsi")[rbxOnError->GetSelection()]; wxString db, connstr; wxString jstjobid; if (jobId) jstjobid = NumToStr(jobId); else jstjobid = wxT("<JobId>"); // SQL script expected if (rbxKind->GetSelection() == 0) { if (hasConnStrSupport && rbRemoteConn->GetValue()) { connstr = qtDbString(txtConnStr->GetValue().Trim()); db = wxT("''"); } else { db = qtDbString(cbDatabase->GetValue().Trim()); connstr = wxT("''"); } } else { db = wxT("''"); connstr = wxT("''"); } sql = wxT("INSERT INTO pgagent.pga_jobstep (jstid, jstjobid, jstname, jstdesc, jstenabled, jstkind, jstonerror, jstcode, jstdbname"); if (hasConnStrSupport) sql += wxT(", jstconnstr"); sql += wxT(")\n ") \ wxT("SELECT <StpId>, ") + jstjobid + wxT(", ") + qtDbString(name) + wxT(", ") + qtDbString(txtComment->GetValue()) + wxT(", ") + BoolToStr(chkEnabled->GetValue()) + wxT(", ") + qtDbString(kind) + wxT(", ") + qtDbString(onerror) + wxT(", ") + qtDbString(sqlBox->GetText()) + wxT(", ") + db; if (hasConnStrSupport) { sql += wxT(", ") + connstr; } sql += wxT(";\n"); } return sql; }
wxString slNode::GetSql(ctlTree *browser) { if (sql.IsNull()) { sql = wxT("-- Create replication node ") + GetName() + wxT(".\n\n") wxT("SELECT ") + GetCluster()->GetSchemaPrefix() + wxT("storenode(") + NumToStr(GetSlId()) + wxT(", ") + qtDbString(GetComment()); if (GetCluster()->ClusterMinimumVersion(1, 1) && !GetCluster()->ClusterMinimumVersion(2, 0)) sql += wxT(", ") + BoolToStr(GetSpool()); sql += wxT(");\n"); } return sql; }
wxString slSubscription::GetSql(ctlTree *browser) { if (sql.IsNull()) { if (GetReceiverId() != GetCluster()->GetLocalNodeID()) sql = wxT("-- Subscription must be maintained on receiver node.\n"); else sql = wxT("-- subscribe replication set\n\n") wxT(" SELECT ") + GetCluster()->GetSchemaPrefix() + wxT("subscribeset(") + NumToStr(GetSet()->GetSlId()) + wxT(", ") + NumToStr(GetProviderId()) + wxT(", ") + NumToStr(GetReceiverId()) + wxT(", ") + BoolToStr(GetForward()) + wxT(");"); } return sql; }
void TEventEntry::ToStr(TDes& aStr) { if (IsEvent()) // Event or Action { aStr.Append(KLitEvent); } else { aStr.Append(KLitAction); } if (iSequenceNumber>=0) { aStr.AppendFormat(KLit02D, iSequenceNumber); } aStr.Append(KLitColon); if (iType!=EActionUserWait) { aStr.AppendFormat(KLitA02D, iAlarmIdx); // Alarm idx } aStr.AppendFormat(KLitS, &TypeToStr()); // Event name if (iType==EEventVisible) // Visibility { aStr.AppendFormat(KLitS, &BoolToStr(iVisible)); } if (iType==EEventSetState) // State flags { aStr.AppendFormat(KLitFlags, iAltSFlags); } if (iType==EActionUserWait) { aStr.AppendFormat(KLitDSec, iPeriod); if (iAlarmIdx==KBogusAlarmIdx) aStr.AppendFormat(KLitCompleted); } if (iType==EActionSnooze || iType==EActionPauseSound) { aStr.AppendFormat(KLitForDMinutes, iPeriod/60); } }
static bool HandleNextRecursive (const unsigned short theIndex, Cell * theCell, MatrixOfCellPtr * theSchema){ LogicAssert (true == IsGoodPtr (theCell)); LogicAssert (true == IsGoodPtr (theSchema)); LogicAssert (true == IsGoodSchema (theSchema)); const unsigned short aTransformedIndex = TransformIndex (theIndex, theCell, theSchema); gNumOfCall++; if (theIndex >= kDim * kDim){ ++gNumOfSolution; if (!(gNumOfSolution % 100000) || true){ const unsigned long aCurrentSolution = gNumOfSolution; ISI_DUMP (aCurrentSolution); ISI_DUMP (gNumOfCall); ISI_DUMP (static_cast <double >(gNumOfCall)/aCurrentSolution); DumpMatrix ("theRowVector", theSchema [0]); ISI_DUMP (BoolToStr (IsGoodSolution (theSchema))); } return false; } LogicAssert (/*(theIndex >= 0) &&*/ (theIndex < kDim * kDim)); if (theCell [aTransformedIndex].GetStatus () == CellStatus::ConstantInputInitValue){ return HandleNextRecursive (NextIndex (theIndex), theCell, theSchema); } bool rit = false; for (CellValue aValue = 0; aValue < kDim; ++aValue){ LogicAssert (theCell [aTransformedIndex].GetValue () != aValue+1); LogicAssert (theCell [aTransformedIndex].GetValue () == 0); const bool aGood = IsGoodSchemaAvailable (theSchema, aValue, aTransformedIndex); if (aGood){ theCell [aTransformedIndex].SetValue (aValue + 1); rit = HandleNextRecursive (NextIndex (theIndex), theCell, theSchema); if (rit){ break; } else{ theCell [aTransformedIndex].SetValue (0); } } } return rit; }
BOOL CIniFile::ReadBool( const char* pszSection, const char* pszIdent, BOOL bDefault ) { char szResult[MAX_PATH]; BOOL bResult = bDefault; char szDefault[MAX_PATH]; BoolToStr(bDefault, szDefault); ReadString( pszSection, pszIdent, szDefault, szResult ); bResult = StrToBool(szResult); return bResult; }
wxString dlgView::GetSql() { wxString sql; wxString name; wxString withoptions = wxEmptyString; bool editQuery = false; if (view) { // edit mode name = GetName(); if (name != view->GetName()) { if (connection->BackendMinimumVersion(8, 3)) { if (connection->BackendMinimumVersion(9, 3)) { if (view->GetMaterializedView()) { AppendNameChange(sql, wxT("MATERIALIZED VIEW ") + view->GetQuotedFullIdentifier()); editQuery = true; } else AppendNameChange(sql, wxT("VIEW ") + view->GetQuotedFullIdentifier()); } else AppendNameChange(sql, wxT("VIEW ") + view->GetQuotedFullIdentifier()); } else AppendNameChange(sql, wxT("TABLE ") + view->GetQuotedFullIdentifier()); } if (connection->BackendMinimumVersion(8, 4) && cbSchema->GetName() != view->GetSchema()->GetName()) { if (connection->BackendMinimumVersion(9, 3)) { if (view->GetMaterializedView()) { AppendSchemaChange(sql, wxT("MATERIALIZED VIEW " + qtIdent(view->GetSchema()->GetName()) + wxT(".") + qtIdent(name))); editQuery = true; } else AppendSchemaChange(sql, wxT("VIEW " + qtIdent(view->GetSchema()->GetName()) + wxT(".") + qtIdent(name))); } else AppendSchemaChange(sql, wxT("VIEW " + qtIdent(view->GetSchema()->GetName()) + wxT(".") + qtIdent(name))); } else AppendSchemaChange(sql, wxT("TABLE " + qtIdent(view->GetSchema()->GetName()) + wxT(".") + qtIdent(name))); } name = qtIdent(cbSchema->GetValue()) + wxT(".") + qtIdent(GetName()); if (!view || txtSqlBox->GetText().Trim(true).Trim(false) != oldDefinition.Trim(true).Trim(false)) { if (editQuery) { // Delete the materialized view query sql += wxT("DROP MATERIALIZED VIEW ") + name + wxT(";"); } // Check if user creates the materialized view if (!chkMaterializedView->GetValue()) { sql += wxT("CREATE OR REPLACE VIEW ") + name; if (connection->BackendMinimumVersion(9, 2) && chkSecurityBarrier->GetValue()) withoptions += wxT("security_barrier=true"); if (connection->BackendMinimumVersion(9, 4) && cbCheckOption->GetSelection() > 0) { if (withoptions.Length() > 0) withoptions += wxT(", "); withoptions += wxT("check_option=") + cbCheckOption->GetValue().Lower(); } if (withoptions.Length() > 0) sql += wxT(" WITH (") + withoptions + wxT(")"); sql += wxT(" AS\n") + txtSqlBox->GetText().Trim(true).Trim(false) + wxT(";\n"); } else if (connection->BackendMinimumVersion(9, 3) && chkMaterializedView->GetValue()) { sql += wxT("CREATE MATERIALIZED VIEW ") + name; // Add the parameter of tablespace and storage parameter to create the materilized view if (txtFillFactor->GetValue().Trim().Length() > 0 || chkVacEnabled->GetValue() == true || chkToastVacEnabled->GetValue() == true) { bool fillFactorFlag, toastTableFlag; fillFactorFlag = false; toastTableFlag = false; sql += wxT("\nWITH ("); if (txtFillFactor->GetValue().Trim().Length() > 0) { sql += wxT("\n FILLFACTOR = ") + txtFillFactor->GetValue(); fillFactorFlag = true; } bool valChanged = false; wxString newVal; wxString resetStr; if (connection->BackendMinimumVersion(9, 3) && chkCustomVac->GetValue()) { FillAutoVacuumParameters(sql, resetStr, wxT("autovacuum_enabled"), BoolToStr(chkVacEnabled->GetValue())); if (!fillFactorFlag) { int position = sql.Find(',', true); if (position != wxNOT_FOUND) sql.Remove(position, 1); toastTableFlag = true; } newVal = AppendNum(valChanged, txtBaseVac, tableVacBaseThr); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("autovacuum_vacuum_threshold"), newVal); } newVal = AppendNum(valChanged, txtBaseAn, tableAnlBaseThr); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("autovacuum_analyze_threshold"), newVal); } newVal = AppendNum(valChanged, txtFactorVac, tableVacFactor); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("autovacuum_vacuum_scale_factor"), newVal); } newVal = AppendNum(valChanged, txtFactorAn, tableAnlFactor); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("autovacuum_analyze_scale_factor"), newVal); } newVal = AppendNum(valChanged, txtVacDelay, tableCostDelay); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("autovacuum_vacuum_cost_delay"), newVal); } newVal = AppendNum(valChanged, txtVacLimit, tableCostLimit); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("autovacuum_vacuum_cost_limit"), newVal); } newVal = AppendNum(valChanged, txtFreezeMinAge, tableFreezeMinAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("autovacuum_freeze_min_age"), newVal); } newVal = AppendNum(valChanged, txtFreezeMaxAge, tableFreezeMaxAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("autovacuum_freeze_max_age"), newVal); } newVal = AppendNum(valChanged, txtFreezeTableAge, tableFreezeTableAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("autovacuum_freeze_table_age"), newVal); } } if (connection->BackendMinimumVersion(9, 3) && chkCustomToastVac->GetValue()) { FillAutoVacuumParameters(sql, resetStr, wxT("toast.autovacuum_enabled"), BoolToStr(chkToastVacEnabled->GetValue())); if (!fillFactorFlag && !toastTableFlag) { int position = sql.Find(',', true); if (position != wxNOT_FOUND) sql.Remove(position, 1); } newVal = AppendNum(valChanged, txtBaseToastVac, toastTableVacBaseThr); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("toast.autovacuum_vacuum_threshold"), newVal); } newVal = AppendNum(valChanged, txtFactorToastVac, toastTableVacFactor); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("toast.autovacuum_vacuum_scale_factor"), newVal); } newVal = AppendNum(valChanged, txtToastVacDelay, toastTableCostDelay); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("toast.autovacuum_vacuum_cost_delay"), newVal); } newVal = AppendNum(valChanged, txtToastVacLimit, toastTableCostLimit); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("toast.autovacuum_vacuum_cost_limit"), newVal); } newVal = AppendNum(valChanged, txtToastFreezeMinAge, toastTableFreezeMinAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("toast.autovacuum_freeze_min_age"), newVal); } newVal = AppendNum(valChanged, txtToastFreezeMaxAge, toastTableFreezeMaxAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("toast.autovacuum_freeze_max_age"), newVal); } newVal = AppendNum(valChanged, txtToastFreezeTableAge, toastTableFreezeTableAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(sql, resetStr, wxT("toast.autovacuum_freeze_table_age"), newVal); } } sql += wxT("\n)\n"); } if (cboTablespace->GetCurrentSelection() > 0 && cboTablespace->GetOIDKey() > 0) sql += wxT("\nTABLESPACE ") + qtIdent(cboTablespace->GetValue()); wxString sqlDefinition; bool tmpLoopFlag = true; sqlDefinition = txtSqlBox->GetText().Trim(true).Trim(false); // Remove semicolon from the end of the string while(tmpLoopFlag) { int length = sqlDefinition.Len(); int position = sqlDefinition.Find(';', true); if ((position != wxNOT_FOUND) && (position = (length - 1))) sqlDefinition.Remove(position, 1); else tmpLoopFlag = false; } sql += wxT(" AS\n") + sqlDefinition; if (chkMatViewWithData->GetValue()) sql += wxT("\n WITH DATA;\n"); else sql += wxT("\n WITH NO DATA;\n"); } } else if (view) { if (!chkMaterializedView->GetValue()) { if (connection->BackendMinimumVersion(9, 2)) { if (chkSecurityBarrier->GetValue() && view->GetSecurityBarrier() != wxT("true")) sql += wxT("ALTER VIEW ") + name + wxT("\n SET (security_barrier=true);\n"); else if (!chkSecurityBarrier->GetValue() && view->GetSecurityBarrier() == wxT("true")) sql += wxT("ALTER VIEW ") + name + wxT("\n SET (security_barrier=false);\n"); } if (connection->BackendMinimumVersion(9, 4) && cbCheckOption->GetValue().Lower().Cmp(view->GetCheckOption()) != 0) { if (cbCheckOption->GetValue().Cmp(wxT("No")) == 0) sql += wxT("ALTER VIEW ") + name + wxT(" RESET (check_option);\n"); else sql += wxT("ALTER VIEW ") + name + wxT("\n SET (check_option=") + cbCheckOption->GetValue().Lower() + wxT(");\n"); } if (withoptions.Length() > 0) sql += wxT(" WITH (") + withoptions + wxT(")"); } else if (connection->BackendMinimumVersion(9, 3) && chkMaterializedView->GetValue()) { if (txtFillFactor->GetValue() != view->GetFillFactor()) { // If fill factor value get changed then set the new value if (txtFillFactor->GetValue().Trim().Length() > 0) { sql += wxT("ALTER MATERIALIZED VIEW ") + name + wxT("\n SET (FILLFACTOR=") + txtFillFactor->GetValue() + wxT(");\n"); } else { // If fill factor value get changed and value is not blank then do the reset sql += wxT("ALTER MATERIALIZED VIEW ") + name + wxT(" RESET(\n") wxT(" FILLFACTOR\n") wxT(");\n"); } } bool isPopulatedFlag = false; if (view->GetIsPopulated().Cmp(wxT("t")) == 0) isPopulatedFlag = true; if (chkMatViewWithData->GetValue() != isPopulatedFlag) { // If checkbox is checked then set WITH NO DATA if (isPopulatedFlag) { sql += wxT("REFRESH MATERIALIZED VIEW ") + name + wxT(" WITH NO DATA;\n"); } else { sql += wxT("REFRESH MATERIALIZED VIEW ") + name + wxT(" WITH DATA;\n"); } } // Altered the storage parameters for the materialized view? if (!chkCustomVac->GetValue()) { if (hasVacuum) { sql += wxT("ALTER MATERIALIZED VIEW ") + name + wxT(" RESET(\n") wxT(" autovacuum_enabled,\n") wxT(" autovacuum_vacuum_threshold,\n") wxT(" autovacuum_analyze_threshold,\n") wxT(" autovacuum_vacuum_scale_factor,\n") wxT(" autovacuum_analyze_scale_factor,\n") wxT(" autovacuum_vacuum_cost_delay,\n") wxT(" autovacuum_vacuum_cost_limit,\n") wxT(" autovacuum_freeze_min_age,\n") wxT(" autovacuum_freeze_max_age,\n") wxT(" autovacuum_freeze_table_age\n") wxT(");\n"); } } else { wxString vacStr; bool changed = (chkVacEnabled->GetValue() != tableVacEnabled); bool valChanged = false; wxString newVal; wxString setStr; wxString resetStr; if (changed) { FillAutoVacuumParameters(setStr, resetStr, wxT("autovacuum_enabled"), BoolToStr(chkVacEnabled->GetValue())); } newVal = AppendNum(valChanged, txtBaseVac, tableVacBaseThr); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("autovacuum_vacuum_threshold"), newVal); } newVal = AppendNum(valChanged, txtBaseAn, tableAnlBaseThr); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("autovacuum_analyze_threshold"), newVal); } newVal = AppendNum(valChanged, txtFactorVac, tableVacFactor); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("autovacuum_vacuum_scale_factor"), newVal); } newVal = AppendNum(valChanged, txtFactorAn, tableAnlFactor); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("autovacuum_analyze_scale_factor"), newVal); } newVal = AppendNum(valChanged, txtVacDelay, tableCostDelay); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("autovacuum_vacuum_cost_delay"), newVal); } newVal = AppendNum(valChanged, txtVacLimit, tableCostLimit); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("autovacuum_vacuum_cost_limit"), newVal); } newVal = AppendNum(valChanged, txtFreezeMinAge, tableFreezeMinAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("autovacuum_freeze_min_age"), newVal); } newVal = AppendNum(valChanged, txtFreezeMaxAge, tableFreezeMaxAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("autovacuum_freeze_max_age"), newVal); } newVal = AppendNum(valChanged, txtFreezeTableAge, tableFreezeTableAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("autovacuum_freeze_table_age"), newVal); } if (!setStr.IsEmpty()) { vacStr = wxT("ALTER MATERIALIZED VIEW ") + name + setStr + wxT("\n);\n");; changed = true; } if (!resetStr.IsEmpty()) { vacStr += wxT("ALTER MATERIALIZED VIEW ") + name + resetStr + wxT("\n);\n");; changed = true; } if (changed) sql += vacStr; } if (!chkCustomToastVac->GetValue()) { if (toastTableHasVacuum) { sql += wxT("ALTER MATERIALIZED VIEW ") + name + wxT(" RESET(\n") wxT(" toast.autovacuum_enabled,\n") wxT(" toast.autovacuum_vacuum_threshold,\n") wxT(" toast.autovacuum_analyze_threshold,\n") wxT(" toast.autovacuum_vacuum_scale_factor,\n") wxT(" toast.autovacuum_analyze_scale_factor,\n") wxT(" toast.autovacuum_vacuum_cost_delay,\n") wxT(" toast.autovacuum_vacuum_cost_limit,\n") wxT(" toast.autovacuum_freeze_min_age,\n") wxT(" toast.autovacuum_freeze_max_age,\n") wxT(" toast.autovacuum_freeze_table_age\n") wxT(");\n"); } } else { wxString vacStr; bool changed = (chkToastVacEnabled->GetValue() != toastTableVacEnabled); bool valChanged = false; wxString newVal; wxString setStr; wxString resetStr; if (changed) { FillAutoVacuumParameters(setStr, resetStr, wxT("toast.autovacuum_enabled"), BoolToStr(chkToastVacEnabled->GetValue())); } newVal = AppendNum(valChanged, txtBaseToastVac, toastTableVacBaseThr); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("toast.autovacuum_vacuum_threshold"), newVal); } newVal = AppendNum(valChanged, txtFactorToastVac, toastTableVacFactor); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("toast.autovacuum_vacuum_scale_factor"), newVal); } newVal = AppendNum(valChanged, txtToastVacDelay, toastTableCostDelay); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("toast.autovacuum_vacuum_cost_delay"), newVal); } newVal = AppendNum(valChanged, txtToastVacLimit, toastTableCostLimit); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("toast.autovacuum_vacuum_cost_limit"), newVal); } newVal = AppendNum(valChanged, txtToastFreezeMinAge, toastTableFreezeMinAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("toast.autovacuum_freeze_min_age"), newVal); } newVal = AppendNum(valChanged, txtToastFreezeMaxAge, toastTableFreezeMaxAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("toast.autovacuum_freeze_max_age"), newVal); } newVal = AppendNum(valChanged, txtToastFreezeTableAge, toastTableFreezeTableAge); if (valChanged) { valChanged = false; FillAutoVacuumParameters(setStr, resetStr, wxT("toast.autovacuum_freeze_table_age"), newVal); } if (!setStr.IsEmpty()) { vacStr = wxT("ALTER MATERIALIZED VIEW ") + name + setStr + wxT("\n);\n"); changed = true; } if (!resetStr.IsEmpty()) { vacStr += wxT("ALTER MATERIALIZED VIEW ") + name + resetStr + wxT("\n);\n"); changed = true; } if (changed) sql += vacStr; } if (cboTablespace->GetOIDKey() != view->GetTablespaceOid()) { sql += wxT("ALTER MATERIALIZED VIEW ") + name + wxT("\n SET TABLESPACE ") + qtIdent(cboTablespace->GetValue()) + wxT(";\n"); } } } if (view) AppendOwnerChange(sql, wxT("TABLE ") + qtIdent(cbSchema->GetValue()) + wxT(".") + qtIdent(GetName())); else AppendOwnerNew(sql, wxT("TABLE ") + qtIdent(cbSchema->GetValue()) + wxT(".") + qtIdent(GetName())); sql += GetGrant(wxT("arwdRxt"), wxT("TABLE ") + qtIdent(cbSchema->GetValue()) + wxT(".") + qtIdent(GetName())); if (connection->BackendMinimumVersion(9, 3) && chkMaterializedView->GetValue()) AppendComment(sql, wxT("MATERIALIZED VIEW ") + qtIdent(cbSchema->GetValue()) + wxT(".") + qtIdent(GetName()), view); else AppendComment(sql, wxT("VIEW ") + qtIdent(cbSchema->GetValue()) + wxT(".") + qtIdent(GetName()), view); if (seclabelPage && connection->BackendMinimumVersion(9, 1)) sql += seclabelPage->GetSqlForSecLabels(wxT("VIEW"), qtIdent(cbSchema->GetValue()) + wxT(".") + qtIdent(GetName())); return sql; }
// Write a boolean value bool sysSettings::WriteBool(const wxString &key, bool value) { return Write(key, BoolToStr(value)); }
bool TDataManager::SaveData(TKHR* khr, string fileName) { AnsiString path2 = ExtractFilePath(Application->ExeName); chdir(path2.c_str()); formMain->xmlReader->Active = true; formMain->xmlReader->DocumentElement = formMain->xmlReader->CreateElement("KHR","KHRNode"); _di_IXMLNode Root = formMain->xmlReader->DocumentElement; Root->SetAttribute("number", STDSTR(khr->szNumber)); Root->SetAttribute("name", STDSTR(khr->szTitle)); Root->SetAttribute("begin", DateToStr(khr->dtStartDate)); Root->SetAttribute("orderNum", STDSTR(khr->szOrder)); /* _di_IXMLNode KHRNumberNode = Root->AddChild("number"); KHRNumberNode->Text = ((khr->szNumber).c_str()); _di_IXMLNode KHRNameNode = Root->AddChild("name"); KHRNameNode->Text = khr->szTitle.c_str(); _di_IXMLNode KHRBeginNode = Root->AddChild("begin"); KHRBeginNode->Text = DateToStr(khr->dtStartDate); _di_IXMLNode KHROrderNode = Root->AddChild("orderNum"); KHROrderNode->Text = khr->szOrder.c_str(); //-------------------------------------------------------------------------- _di_IXMLNode KHRWorksNode = Root->AddChild("workList"); _di_IXMLNode KHRLinksNode = Root->AddChild("linkList"); */ // заполнение работами for (unsigned int i = 0; i < khr->Works.size(); i++) { _di_IXMLNode Works = Root->AddChild("work"); Works->SetAttribute("number", (int)khr->Works[i]->ulWorkNum); Works->SetAttribute("type", BoolToStr(khr->Works[i]->bPayment)); Works->SetAttribute("begin", DateToStr(khr->Works[i]->dtStart)); Works->SetAttribute("end", DateToStr(khr->Works[i]->dtEnd)); Works->SetAttribute("move", DateToStr(khr->Works[i]->dtMoveTo)); Works->SetAttribute("length", (int)khr->Works[i]->ulLength); //=== !!!!!!!!!!!!!! добавить информацию о стрелке Works->SetAttribute("pay", BoolToStr(khr->Works[i]->havePayment)); for (unsigned int j = 0; j < khr->Works[i]->connectPayment.size(); j++) { _di_IXMLNode ConnPaymentPoint = Works->AddChild("paypoint"); ConnPaymentPoint->SetAttribute("x", FloatToStrF(khr->Works[i]->connectPayment[j].x, ffFixed, 10, 2)); ConnPaymentPoint->SetAttribute("y", FloatToStrF(khr->Works[i]->connectPayment[j].y, ffFixed, 10, 2)); } /* _di_IXMLNode workSetting = Works->AddChild("wnumber"); workSetting->Text = khr->Works[i]->ulWorkNum; workSetting = Works->AddChild("wtype"); workSetting->Text = BoolToStr(khr->Works[i]->bPayment); workSetting = Works->AddChild("wname"); workSetting->Text = khr->Works[i]->szTitle.c_str(); workSetting = Works->AddChild("wbegin"); workSetting->Text = DateToStr(khr->Works[i]->dtStart); workSetting = Works->AddChild("wend"); workSetting->Text = DateToStr(khr->Works[i]->dtEnd); workSetting = Works->AddChild("wmove"); workSetting->Text = DateToStr(khr->Works[i]->dtMoveTo); workSetting = Works->AddChild("wlength"); workSetting->Text = khr->Works[i]->ulLength; //=== !!!!!!!!!!!!!! добавить информацию о стрелке workSetting = Works->AddChild("wpay"); workSetting->Text = BoolToStr(khr->Works[i]->havePayment); _di_IXMLNode wpcoord = Works->AddChild("wpcoord"); for (unsigned int j = 0; j < khr->Works[i]->connectPayment.size(); j++) { _di_IXMLNode wpoint = wpcoord->AddChild("point"); _di_IXMLNode wpointx = wpoint->AddChild("x"); wpointx->Text = FloatToStr(khr->Works[i]->connectPayment[j].x); _di_IXMLNode wpointy = wpoint->AddChild("y"); wpointy->Text = FloatToStr(khr->Works[i]->connectPayment[j].y); }*/ Works->SetAttribute("stage", BoolToStr(khr->Works[i]->haveStage)); // исполнители работы - добавить проверку на наличие исполнителя for (unsigned int j = 0; j < khr->Works[i]->WorkVolume.size(); j++) { _di_IXMLNode workExec = Works->AddChild("executor"/**/); workExec->SetAttribute("number"/**/, (int)khr->Works[i]->WorkVolume[j]->ulExecutor); // трудоёмкость по исполнителям по кварталам for (int k=0; k < 4; k++) { _di_IXMLNode volume = workExec->AddChild("quartvol"/**/); volume->SetAttribute("volume"/**/, (int)khr->Works[i]->WorkVolume[j]->ulVolume[k]); } } /* workSetting = Works->AddChild("wstage"); workSetting->Text = BoolToStr(khr->Works[i]->haveStage); // исполнители работы - добавить проверку на наличие исполнителя _di_IXMLNode workExecList = Works->AddChild("wexeclist"); for (unsigned int j = 0; j < khr->Works[i]->WorkVolume.size(); j++) { _di_IXMLNode workExec = workExecList->AddChild("wexec"); _di_IXMLNode execInfo = workExec->AddChild("wenum"); execInfo->Text = khr->Works[i]->WorkVolume[j]->ulExecutor; // трудоёмкость по исполнителям по кварталам _di_IXMLNode qInfo = workExec->AddChild("wevList"); for (int k=0; k < 4; k++) { _di_IXMLNode volume = qInfo->AddChild("volume"); volume->Text = khr->Works[i]->WorkVolume[j]->ulVolume[k]; } } */ // зависимости работы for (unsigned int j = 0; j < khr->Works[i]->WorkDep.size(); j++) { if (khr->Works[i]->WorkDep[j]->ulWork != 0) { _di_IXMLNode dependence = Works->AddChild("dependence"); dependence->SetAttribute("need", BoolToStr(khr->Works[i]->WorkDep[j]->bNeedToStart)); dependence->SetAttribute("work", (int)khr->Works[i]->WorkDep[j]->ulWork); } } Works->SetAttribute("state", (int)khr->Works[i]->eWorkState); // список команд for (int j = 0; j < MAX_COMMANDS; j++) { if (khr->Works[i]->eCommand[j]!= 0) { _di_IXMLNode comm = Works->AddChild("command"); comm->SetAttribute("code"/**/, (int)khr->Works[i]->eCommand[j]); } } // координаты Works->SetAttribute("x", FloatToStrF(khr->Works[i]->center.x, ffFixed, 10, 2)); Works->SetAttribute("y", FloatToStrF(khr->Works[i]->center.y, ffFixed, 10, 2)); Works->SetAttribute("name", STDSTR(khr->Works[i]->szTitle)); /* // зависимости работы _di_IXMLNode workDepList = Works->AddChild("deplist"); for (unsigned int j = 0; j < khr->Works[i]->WorkDep.size(); j++) { if (khr->Works[i]->WorkDep[j]->ulWork != 0) { _di_IXMLNode dependence = workDepList->AddChild("dependence"); _di_IXMLNode dep = dependence->AddChild("depneed"); dep->Text = BoolToStr(khr->Works[i]->WorkDep[j]->bNeedToStart); dep = dependence->AddChild("depnum"); dep->Text = khr->Works[i]->WorkDep[j]->ulWork; } } _di_IXMLNode workState = Works->AddChild("wstate"); workState->Text = khr->Works[i]->eWorkState; // список команд _di_IXMLNode workComList = Works->AddChild("comlist"); for (int j = 0; j < MAX_COMMANDS; j++) { if (khr->Works[i]->eCommand[j]!= 0) { _di_IXMLNode comm = workComList->AddChild("command"); comm->Text =khr->Works[i]->eCommand[j]; } } // координаты _di_IXMLNode coord = Works->AddChild("coord"); _di_IXMLNode coordx = coord->AddChild("x"); coordx->Text = FloatToStr(khr->Works[i]->center.x); _di_IXMLNode coordy = coord->AddChild("y"); coordy->Text = FloatToStr(khr->Works[i]->center.y); */ } // ссылки for (unsigned int i = 0; i < khr->Links.size(); i++) { _di_IXMLNode Links = Root->AddChild("link"); // _di_IXMLNode linkDepList = Links->AddChild("deplist"); Links->SetAttribute("number", (int)khr->Links[i]->ulWorkNum); // _di_IXMLNode linkSetting = Links->AddChild("wnumber"); // linkSetting->Text = khr->Links[i]->ulWorkNum; Links->SetAttribute("text", STR(khr->Links[i]->slText->Text)); // linkSetting = Links->AddChild("wtext"); // string str; // for (int k=0; k < khr->Links[i]->slText->Count; k++) // { // str.append(STR(khr->Links[i]->slText->Strings[k])); // str.append("\n"); // } // linkSetting->Text = STDSTR(str); Links->SetAttribute("date", DateToStr(khr->Links[i]->dtDate)); // linkSetting = Links->AddChild("wdate"); // linkSetting->Text = DateToStr(khr->Links[i]->dtDate); Links->SetAttribute("khrnum", STDSTR(khr->Links[i]->szNumber)); // linkSetting = Links->AddChild("wkhrnum"); // linkSetting->Text = khr->Links[i]->szNumber.c_str(); for (unsigned int j = 0; j < khr->Links[i]->WorkDep.size(); j++) { if (khr->Links[i]->WorkDep[j]->ulWork != 0) { _di_IXMLNode dependence = Links->AddChild("linkdependence"); dependence->SetAttribute("need", BoolToStr(khr->Links[i]->WorkDep[j]->bNeedToStart)); dependence->SetAttribute("num", (int)khr->Links[i]->WorkDep[j]->ulWork); // _di_IXMLNode dep = dependence->AddChild("depneed"); // dep->Text = BoolToStr(khr->Links[i]->WorkDep[j]->bNeedToStart); // dep = dependence->AddChild("depnum"); // dep->Text = khr->Links[i]->WorkDep[j]->ulWork; } } // координаты Links->SetAttribute("x", FloatToStrF(khr->Links[i]->center.x, ffFixed, 10, 2)); Links->SetAttribute("y", FloatToStrF(khr->Links[i]->center.y, ffFixed, 10, 2)); // _di_IXMLNode coord = Links->AddChild("coord"); // _di_IXMLNode coordx = coord->AddChild("x"); // coordx->Text = FloatToStr(khr->Links[i]->center.x); // _di_IXMLNode coordy = coord->AddChild("y"); // coordy->Text = FloatToStr(khr->Links[i]->center.y); } /* // ссылки for (unsigned int i = 0; i < khr->Links.size(); i++) { _di_IXMLNode Links = KHRLinksNode->AddChild("link"); _di_IXMLNode linkDepList = Links->AddChild("deplist"); _di_IXMLNode linkSetting = Links->AddChild("wnumber"); linkSetting->Text = khr->Links[i]->ulWorkNum; linkSetting = Links->AddChild("wtext"); string str; for (int k=0; k < khr->Links[i]->slText->Count; k++) { str.append(STR(khr->Links[i]->slText->Strings[k])); str.append("\n"); } linkSetting->Text = STDSTR(str); linkSetting = Links->AddChild("wdate"); linkSetting->Text = DateToStr(khr->Links[i]->dtDate); linkSetting = Links->AddChild("wkhrnum"); linkSetting->Text = khr->Links[i]->szNumber.c_str(); for (unsigned int j = 0; j < khr->Links[i]->WorkDep.size(); j++) { if (khr->Links[i]->WorkDep[j]->ulWork != 0) { _di_IXMLNode dependence = linkDepList->AddChild("dependence"); _di_IXMLNode dep = dependence->AddChild("depneed"); dep->Text = BoolToStr(khr->Links[i]->WorkDep[j]->bNeedToStart); dep = dependence->AddChild("depnum"); dep->Text = khr->Links[i]->WorkDep[j]->ulWork; } } // координаты _di_IXMLNode coord = Links->AddChild("coord"); _di_IXMLNode coordx = coord->AddChild("x"); coordx->Text = FloatToStr(khr->Links[i]->center.x); _di_IXMLNode coordy = coord->AddChild("y"); coordy->Text = FloatToStr(khr->Links[i]->center.y); } */ // заполнение доплатами for (unsigned int i = 0; i < khr->Payments.size(); i++) { _di_IXMLNode Works = Root->AddChild("payment"); Works->SetAttribute("number", (int)khr->Payments[i]->ulWorkNum); Works->SetAttribute("type", BoolToStr(khr->Payments[i]->bPayment)); Works->SetAttribute("begin", DateToStr(khr->Payments[i]->dtStart)); Works->SetAttribute("end", DateToStr(khr->Payments[i]->dtEnd)); Works->SetAttribute("move", DateToStr(khr->Payments[i]->dtMoveTo)); Works->SetAttribute("length", (int)khr->Payments[i]->ulLength); // исполнители работы - добавить проверку на наличие исполнителя for (unsigned int j = 0; j < khr->Payments[i]->WorkVolume.size(); j++) { _di_IXMLNode workExec = Works->AddChild("executor"/**/); workExec->SetAttribute("number"/**/, (int)khr->Payments[i]->WorkVolume[j]->ulExecutor); // трудоёмкость по исполнителям по кварталам for (int k=0; k < 4; k++) { _di_IXMLNode volume = workExec->AddChild("quartvol"/**/); volume->SetAttribute("volume"/**/, (int)khr->Payments[i]->WorkVolume[j]->ulVolume[k]); } } // зависимости работы for (unsigned int j = 0; j < khr->Payments[i]->WorkDep.size(); j++) { if (khr->Payments[i]->WorkDep[j]->ulWork != 0) { _di_IXMLNode dependence = Works->AddChild("dependence"); dependence->SetAttribute("need", BoolToStr(khr->Payments[i]->WorkDep[j]->bNeedToStart)); dependence->SetAttribute("work", (int)khr->Payments[i]->WorkDep[j]->ulWork); } } Works->SetAttribute("state", (int)khr->Payments[i]->eWorkState); // список команд for (int j = 0; j < MAX_COMMANDS; j++) { if (khr->Payments[i]->eCommand[j]!= 0) { _di_IXMLNode comm = Works->AddChild("command"); comm->SetAttribute("code"/**/, (int)khr->Payments[i]->eCommand[j]); } } // координаты Works->SetAttribute("x", FloatToStrF(khr->Payments[i]->center.x, ffFixed, 10, 2)); Works->SetAttribute("y", FloatToStrF(khr->Payments[i]->center.y, ffFixed, 10, 2)); Works->SetAttribute("name", STDSTR(khr->Payments[i]->szTitle)); } /* //-------------------------------------------------------------------------- _di_IXMLNode KHRPaymentNode = Root->AddChild("paymentList"); // заполнение доплатами for (unsigned int i = 0; i < khr->Payments.size(); i++) { _di_IXMLNode Works = KHRPaymentNode->AddChild("payment"); _di_IXMLNode workSetting = Works->AddChild("wnumber"); workSetting->Text = khr->Payments[i]->ulWorkNum; workSetting = Works->AddChild("wtype"); workSetting->Text = (khr->Payments[i]->bPayment)? "1" : "0"; workSetting = Works->AddChild("wname"); workSetting->Text = khr->Payments[i]->szTitle.c_str(); workSetting = Works->AddChild("wbegin"); workSetting->Text = DateToStr(khr->Payments[i]->dtStart); workSetting = Works->AddChild("wend"); workSetting->Text = DateToStr(khr->Payments[i]->dtEnd); workSetting = Works->AddChild("wmove"); workSetting->Text = DateToStr(khr->Payments[i]->dtMoveTo); workSetting = Works->AddChild("wlength"); workSetting->Text = khr->Payments[i]->ulLength; // исполнители работы - добавить проверку на наличие исполнителя _di_IXMLNode workExecList = Works->AddChild("wexeclist"); for (unsigned int j = 0; j < khr->Payments[i]->WorkVolume.size(); j++) { _di_IXMLNode workExec = workExecList->AddChild("wexec"); _di_IXMLNode execInfo = workExec->AddChild("wenum"); execInfo->Text = khr->Payments[i]->WorkVolume[j]->ulExecutor; // трудоёмкость по исполнителям по кварталам _di_IXMLNode qInfo = workExec->AddChild("wevList"); for (int k=0; k < 4; k++) { _di_IXMLNode volume = qInfo->AddChild("volume"); volume->Text = khr->Payments[i]->WorkVolume[j]->ulVolume[k]; } } // зависимости работы _di_IXMLNode workDepList = Works->AddChild("deplist"); for (unsigned int j = 0; j < khr->Payments[i]->WorkDep.size(); j++) { if (khr->Payments[i]->WorkDep[j]->ulWork != 0) { _di_IXMLNode dependence = workDepList->AddChild("dependence"); _di_IXMLNode dep = dependence->AddChild("depneed"); dep->Text = (khr->Payments[i]->WorkDep[j]->bNeedToStart) ? "0" : "1"; dep = dependence->AddChild("depnum"); dep->Text = khr->Payments[i]->WorkDep[j]->ulWork; } } _di_IXMLNode workState = Works->AddChild("wstate"); workState->Text = khr->Payments[i]->eWorkState; // список команд _di_IXMLNode workComList = Works->AddChild("comlist"); for (int j = 0; j < MAX_COMMANDS; j++) { if (khr->Payments[i]->eCommand[j]!= 0) { _di_IXMLNode comm = workComList->AddChild("command"); comm->Text =khr->Payments[i]->eCommand[j]; } } // координаты _di_IXMLNode coord = Works->AddChild("coord"); _di_IXMLNode coordx = coord->AddChild("x"); coordx->Text = FloatToStr(khr->Payments[i]->center.x); _di_IXMLNode coordy = coord->AddChild("y"); coordy->Text = FloatToStr(khr->Payments[i]->center.y); } //-------------------------------------------------------------------------- */ // заполнение Вех for (unsigned int i = 0; i < khr->Stages.size(); i++) { _di_IXMLNode Stage = Root->AddChild("stage"); Stage->SetAttribute("number", (int)khr->Stages[i]->ulStageNum); Stage->SetAttribute("x", FloatToStrF(khr->Stages[i]->center.x, ffFixed, 10, 2)); Stage->SetAttribute("y", FloatToStrF(khr->Stages[i]->center.y, ffFixed, 10, 2)); for (unsigned int j = 0; j < khr->Stages[i]->connect.size(); j++) { _di_IXMLNode point = Stage->AddChild("point"); point->SetAttribute("x", FloatToStrF(khr->Stages[i]->connect[j].x, ffFixed, 10, 2)); point->SetAttribute("y", FloatToStrF(khr->Stages[i]->connect[j].y, ffFixed, 10, 2)); } } /* // заполнение Вех _di_IXMLNode KHRStageNode = Root->AddChild("stageList"); for (unsigned int i = 0; i < khr->Stages.size(); i++) { _di_IXMLNode Stage = KHRStageNode->AddChild("stage"); _di_IXMLNode stageNum = Stage->AddChild("snumber"); stageNum->Text = khr->Stages[i]->ulStageNum; _di_IXMLNode stageX = Stage->AddChild("x"); stageX->Text = FloatToStr(khr->Stages[i]->center.x); _di_IXMLNode stageY = Stage->AddChild("y"); stageY->Text = FloatToStr(khr->Stages[i]->center.y); _di_IXMLNode vector = Stage->AddChild("vector"); for (unsigned int j = 0; j < khr->Stages[i]->connect.size(); j++) { _di_IXMLNode point = vector->AddChild("point"); _di_IXMLNode x = point->AddChild("x"); x->Text = FloatToStr(khr->Stages[i]->connect[j].x); _di_IXMLNode y = point->AddChild("y"); y->Text = FloatToStr(khr->Stages[i]->connect[j].y); } } */ //-------------------------------------------------------------------------- // заполнение стрелок for (unsigned int i = 0; i < khr->Connects.size(); i++) { _di_IXMLNode connect = Root->AddChild("connect"); connect->SetAttribute("begin", (int)khr->Connects[i]->begin); connect->SetAttribute("end", (int)khr->Connects[i]->end); connect->SetAttribute("need"/**/, khr->Connects[i]->needStart); for(int j=0; j<khr->Connects[i]->connect.size(); j++) { _di_IXMLNode point = connect->AddChild("point"); point->SetAttribute("x", FloatToStrF(khr->Connects[i]->connect[j].x, ffFixed, 10, 2)); point->SetAttribute("y", FloatToStrF(khr->Connects[i]->connect[j].y, ffFixed, 10, 2)); } } /* // заполнение стрелок _di_IXMLNode KHRConnectNode = Root->AddChild("connectList"); for (unsigned int i = 0; i < khr->Connects.size(); i++) { _di_IXMLNode connect = KHRConnectNode->AddChild("connect"); _di_IXMLNode begin = connect->AddChild("begin"); begin->Text = khr->Connects[i]->begin; _di_IXMLNode end = connect->AddChild("end"); end->Text = khr->Connects[i]->end; _di_IXMLNode bneed = connect->AddChild("bneed"); bneed->Text = BoolToStr(khr->Connects[i]->needStart); _di_IXMLNode vector = connect->AddChild("vector"); for(int j=0; j<khr->Connects[i]->connect.size(); j++) { _di_IXMLNode point = vector->AddChild("point"); _di_IXMLNode x = point->AddChild("x"); x->Text = FloatToStr(khr->Connects[i]->connect[j].x); _di_IXMLNode y = point->AddChild("y"); y->Text = FloatToStr(khr->Connects[i]->connect[j].y); } } */ //-------------------------------------------------------------------------- for (unsigned int i = 0; i < khr->Executors.size(); i++) { if(khr->Executors[i]->szName.c_str() != "") { _di_IXMLNode exec = Root->AddChild("executor"); exec->SetAttribute("id", (int)khr->Executors[i]->id); exec->SetAttribute("name", STDSTR(khr->Executors[i]->szName)); } } for (unsigned int i = 0; i < khr->Signatures.size(); i++) { if(khr->Signatures[i]->szName.c_str() != "") { _di_IXMLNode sig = Root->AddChild("signature"); sig->SetAttribute("chair", STDSTR(khr->Signatures[i]->szChair)); sig->SetAttribute("name", STDSTR(khr->Signatures[i]->szName)); } } /* _di_IXMLNode KHRExecutNode = Root->AddChild("executors"); for (unsigned int i = 0; i < khr->Executors.size(); i++) { if(khr->Executors[i]->szName.c_str() != "") { _di_IXMLNode exect = KHRExecutNode->AddChild("exec"); _di_IXMLNode ExNode = exect->AddChild("exID"); ExNode->Text = khr->Executors[i]->id; ExNode = exect->AddChild("exName"); ExNode->Text = khr->Executors[i]->szName.c_str(); } } _di_IXMLNode KHRSignNode = Root->AddChild("signature"); for (unsigned int i = 0; i < khr->Signatures.size(); i++) { if(khr->Signatures[i]->szName.c_str() != "") { _di_IXMLNode sig = KHRSignNode->AddChild("sig"); _di_IXMLNode SigNode = sig->AddChild("chair"); SigNode->Text = khr->Signatures[i]->szChair.c_str(); SigNode = sig->AddChild("sigName"); SigNode->Text = khr->Signatures[i]->szName.c_str(); } } */ Root->SetAttribute("file", STDSTR(khr->szFileName)); /* _di_IXMLNode KHRFileNode = Root->AddChild("file"); // KHRFileNode->Text = fileName.c_str(); KHRFileNode->Text = khr->szFileName.c_str(); // fileName+=".xml"; */ formMain->xmlReader->SaveToFile(fileName.c_str()); formMain->xmlReader->Active = false; return true; }
wxString dlgRole::GetSql() { int pos; wxString sql; wxString name = GetName(); wxString passwd = txtPasswd->GetValue(); bool createDB = chkCreateDB->GetValue(), createRole = chkCreateRole->GetValue(), superuser = chkSuperuser->GetValue(), inherits = chkInherits->GetValue(), canLogin = chkCanLogin->GetValue(), replication = chkReplication->GetValue(); if (role) { // Edit Mode AppendNameChange(sql, wxT("ROLE ") + role->GetQuotedFullIdentifier()); wxString options; if (canLogin != role->GetCanLogin()) { if (canLogin) options = wxT(" LOGIN"); else options = wxT(" NOLOGIN"); } if (canLogin && !passwd.IsEmpty()) options += wxT(" ENCRYPTED PASSWORD ") + qtDbString(connection->EncryptPassword(name, passwd)); if (createDB != role->GetCreateDatabase() || createRole != role->GetCreateRole() || superuser != role->GetSuperuser() || inherits != role->GetInherits() || replication != role->GetReplication()) { options += wxT("\n "); if (superuser != role->GetSuperuser()) { if (superuser) options += wxT(" SUPERUSER"); else options += wxT(" NOSUPERUSER"); } if (inherits != role->GetInherits()) { if (inherits) options += wxT(" INHERIT"); else options += wxT(" NOINHERIT"); } if (createDB != role->GetCreateDatabase()) { if (createDB) options += wxT(" CREATEDB"); else options += wxT(" NOCREATEDB"); } if (createRole != role->GetCreateRole()) { if (createRole) options += wxT(" CREATEROLE"); else options += wxT(" NOCREATEROLE"); } if (connection->BackendMinimumVersion(9, 1)) { if (replication != role->GetReplication()) { if (replication) options += wxT(" REPLICATION"); else options += wxT(" NOREPLICATION"); } } } if (!datValidUntil->GetValue().IsValid() || DateToStr(datValidUntil->GetValue() + timValidUntil->GetValue()) != DateToStr(role->GetAccountExpires())) { if (datValidUntil->GetValue().IsValid()) options += wxT("\n VALID UNTIL ") + qtDbString(DateToAnsiStr(datValidUntil->GetValue() + timValidUntil->GetValue())); else if (!role->GetIsValidInfinity() && role->GetAccountExpires().GetValue() != -1) options += wxT("\n VALID UNTIL 'infinity'"); } if (txtConnectionLimit->GetValue().Length() == 0) { if (role->GetConnectionLimit() != -1) { options += wxT(" CONNECTION LIMIT -1"); } } else { if (txtConnectionLimit->GetValue() != NumToStr(role->GetConnectionLimit())) { options += wxT(" CONNECTION LIMIT ") + txtConnectionLimit->GetValue(); } } if (!options.IsNull()) sql += wxT("ALTER ROLE ") + qtIdent(name) + options + wxT(";\n"); if (!connection->BackendMinimumVersion(9, 5) && chkUpdateCat->GetValue() != role->GetUpdateCatalog()) { if (!connection->HasPrivilege(wxT("Table"), wxT("pg_authid"), wxT("update"))) sql += wxT(" -- Can't update 'UpdateCatalog privilege: can't write to pg_authid.\n") wxT("-- "); sql += wxT("UPDATE pg_authid SET rolcatupdate=") + BoolToStr(chkUpdateCat->GetValue()) + wxT(" WHERE OID=") + role->GetOidStr() + wxT(";\n"); } int cnt = lbRolesIn->GetCount(); wxArrayString tmpRoles = role->GetRolesIn(); // check for added roles for (pos = 0 ; pos < cnt ; pos++) { wxString roleName = lbRolesIn->GetString(pos); int index = tmpRoles.Index(roleName); if (index >= 0) { // role membership unchanged tmpRoles.RemoveAt(index); } else { bool admin = false; if (roleName.Right(PGROLE_ADMINOPTION_LEN) == PGROLE_ADMINOPTION) { admin = true; roleName = roleName.Left(roleName.Length() - PGROLE_ADMINOPTION_LEN); } else { // new role membership without admin option index = tmpRoles.Index(roleName + PGROLE_ADMINOPTION); if (index >= 0) { // old membership with admin option tmpRoles.RemoveAt(index); sql += wxT("REVOKE ADMIN OPTION FOR ") + qtIdent(roleName) + wxT(" FROM ") + qtIdent(name) + wxT(";\n"); continue; } } index = tmpRoles.Index(roleName); if (index >= 0) { // admin option added to existing membership tmpRoles.RemoveAt(index); } sql += wxT("GRANT ") + qtIdent(roleName) + wxT(" TO ") + qtIdent(name); if (admin) sql += wxT(" WITH ADMIN OPTION"); sql += wxT(";\n"); } } // check for removed roles for (pos = 0 ; pos < (int)tmpRoles.GetCount() ; pos++) { sql += wxT("REVOKE ") + qtIdent(tmpRoles.Item(pos)) + wxT(" FROM ") + qtIdent(name) + wxT(";\n"); } } else { // Create Mode sql = wxT( "CREATE ROLE ") + qtIdent(name); if (canLogin) { sql += wxT(" LOGIN"); if (!passwd.IsEmpty()) sql += wxT(" ENCRYPTED PASSWORD ") + qtDbString(connection->EncryptPassword(name, passwd)); } if (createDB || createRole || !inherits || superuser) sql += wxT("\n "); if (superuser) sql += wxT(" SUPERUSER"); if (!inherits) sql += wxT(" NOINHERIT"); if (createDB) sql += wxT(" CREATEDB"); if (createRole) sql += wxT(" CREATEROLE"); if (connection->BackendMinimumVersion(9, 1)) { if (replication) sql += wxT(" REPLICATION"); } if (datValidUntil->GetValue().IsValid()) sql += wxT("\n VALID UNTIL ") + qtDbString(DateToAnsiStr(datValidUntil->GetValue() + timValidUntil->GetValue())); else sql += wxT("\n VALID UNTIL 'infinity'"); if (txtConnectionLimit->GetValue().Length() > 0) { sql += wxT(" CONNECTION LIMIT ") + txtConnectionLimit->GetValue(); } int cnt = lbRolesIn->GetCount(); wxString grants; if (cnt) { wxString roleName; for (pos = 0 ; pos < cnt ; pos++) { bool admin = false; roleName = lbRolesIn->GetString(pos); if (roleName.Right(PGROLE_ADMINOPTION_LEN) == PGROLE_ADMINOPTION) { roleName = roleName.Left(roleName.Length() - PGROLE_ADMINOPTION_LEN); admin = true; } grants += wxT("GRANT ") + qtIdent(roleName) + wxT(" TO ") + qtIdent(name); if (admin) grants += wxT(" WITH ADMIN OPTION;\n"); else grants += wxT(";\n"); } } sql += wxT(";\n") + grants; if (superuser && !chkUpdateCat->GetValue() && !connection->BackendMinimumVersion(9, 5)) sql += wxT("UPDATE pg_authid SET rolcatupdate=false WHERE rolname=") + qtDbString(name) + wxT(";\n"); } wxArrayString vars; wxString dbname; wxString parameter; wxString value; size_t index; if (role) { for (index = 0 ; index < role->GetVariables().GetCount() ; index++) vars.Add(role->GetVariables().Item(index)); } int cnt = lstVariables->GetItemCount(); // check for changed or added vars for (pos = 0 ; pos < cnt ; pos++) { wxString newDb = lstVariables->GetText(pos); wxString newVar = lstVariables->GetText(pos, 1); wxString newVal = lstVariables->GetText(pos, 2); wxString oldVal; for (index = 0 ; index < vars.GetCount() ; index += 3) { dbname = vars.Item(index); parameter = vars.Item(index + 1); value = vars.Item(index + 2); if (newDb == dbname && newVar == parameter) { oldVal = value; vars.RemoveAt(index); vars.RemoveAt(index); vars.RemoveAt(index); break; } } if (oldVal != newVal) { if (newDb.Length() == 0) sql += wxT("ALTER ROLE ") + qtIdent(name); else sql += wxT("ALTER ROLE ") + qtIdent(name) + wxT(" IN DATABASE ") + newDb; if (newVar != wxT("search_path") && newVar != wxT("temp_tablespaces")) { sql += wxT("\n SET ") + newVar + wxT(" = '") + newVal + wxT("';\n"); } else { sql += wxT("\n SET ") + newVar + wxT(" = ") + newVal + wxT(";\n"); } } } // check for removed vars for (pos = 0 ; pos < (int)vars.GetCount() ; pos += 3) { dbname = vars.Item(pos); parameter = vars.Item(pos + 1); value = vars.Item(pos + 2); if (dbname.Length() == 0) { sql += wxT("ALTER ROLE ") + qtIdent(name) + wxT(" RESET ") + parameter + wxT(";\n"); } else { sql += wxT("ALTER ROLE ") + qtIdent(name) + wxT(" IN DATABASE ") + dbname + wxT(" RESET ") + parameter + wxT(";\n"); } } AppendComment(sql, wxT("ROLE"), 0, role); if (seclabelPage && connection->BackendMinimumVersion(9, 2)) sql += seclabelPage->GetSqlForSecLabels(wxT("ROLE"), qtIdent(name)); return sql; }
int main() { std::vector< int > intCases; intCases.push_back(123); intCases.push_back(0); intCases.push_back(-456); intCases.push_back(INT_MAX); intCases.push_back(INT_MIN); std::vector< float > floatCases; floatCases.push_back(12.34f); floatCases.push_back(0.0f); floatCases.push_back(-3.1415926575); floatCases.push_back(1e20); floatCases.push_back(1e-20); std::vector< std::string > strIntCases; strIntCases.push_back("123"); strIntCases.push_back("0"); strIntCases.push_back("-456"); std::vector< std::string > strFloatCases; strFloatCases.push_back("12.34"); strFloatCases.push_back("0.0"); strFloatCases.push_back("-3.1415926535"); strFloatCases.push_back("123"); strFloatCases.push_back("-456"); strFloatCases.push_back("0"); std::vector< std::string > strVec2Cases; strVec2Cases.push_back("1.2,-9.8"); strVec2Cases.push_back("0.0,0.0"); strVec2Cases.push_back("-1.0,2.0"); strVec2Cases.push_back("1,2.3"); strVec2Cases.push_back("3.141592,6"); std::vector< std::string > strBoolCases; strBoolCases.push_back("true"); strBoolCases.push_back("false"); strBoolCases.push_back("1"); strBoolCases.push_back("0"); strBoolCases.push_back("TRUE"); strBoolCases.push_back("FaLSe"); std::vector< b2Vec2 > vec2Cases; vec2Cases.push_back(b2Vec2(5.5f, 10.1f)); vec2Cases.push_back(b2Vec2(0.0f, 0.0f)); vec2Cases.push_back(b2Vec2(-3.4f, -2.8f)); vec2Cases.push_back(b2Vec2(1e10, 1e-10)); std::vector< bool > boolCases; boolCases.push_back(false); boolCases.push_back(true); typedef std::vector< int >::const_iterator IntIterator; typedef std::vector< float >::const_iterator FloatIterator; typedef std::vector< std::string >::const_iterator StrIterator; typedef std::vector< b2Vec2 >::const_iterator Vec2Iterator; typedef std::vector< bool >::const_iterator BoolIterator; bool (*pIntToStr)(int, std::string *) = &YPT::ConvertIntToStr; bool (*pStrToInt)(const std::string &, int *) = &YPT::ConvertStrToInt; bool (*pStrToFloat)(const std::string &, float *) = &YPT::ConvertStrToFloat; bool (*pStrToVec2)(const std::string &, b2Vec2 *) = &YPT::ConvertStrToVec2; bool (*pStrToBool)(const std::string &, bool *) = &YPT::ConvertStrToBool; bool (*pFloatToStr)(float, std::string *) = &YPT::ConvertFloatToStr; bool (*pVec2ToStr)(const b2Vec2 &, std::string *) = &YPT::ConvertVec2ToStr; bool (*pBoolToStr)(bool, std::string *) = &YPT::ConvertBoolToStr; boost::function<bool (int, std::string *)> IntToStr(pIntToStr); boost::function<bool (const std::string &, int *)> StrToInt(pStrToInt); boost::function<bool (const std::string &, float *)> StrToFloat(pStrToFloat); boost::function<bool (const std::string &, b2Vec2 *)> StrToVec2(pStrToVec2); boost::function<bool (const std::string &, bool *)> StrToBool(pStrToBool); boost::function<bool (float, std::string *)> FloatToStr(pFloatToStr); boost::function<bool (const b2Vec2 &, std::string *)> Vec2ToStr(pVec2ToStr); boost::function<bool (bool, std::string *)> BoolToStr(pBoolToStr); // test - ConvertIntToStr std::cout << std::endl << "---YPT::ConvertIntToStr" << std::endl; for (IntIterator it = intCases.begin(); it != intCases.end(); ++it) { Test(IntToStr, *it); } // test - ConvertStrToInt std::cout << std::endl << "---YPT::ConvertStrToInt" << std::endl; for (StrIterator it = strIntCases.begin(); it != strIntCases.end(); ++it) { Test(StrToInt, *it); } // test - ConvertStrToFloat std::cout << std::endl << "---YPT::ConvertStrToFloat" << std::endl; for (StrIterator it = strFloatCases.begin(); it != strFloatCases.end(); ++it) { Test(StrToFloat, *it); } // test - ConvertStrToVec2 std::cout << std::endl << "---YPT::ConvertStrToVec2" << std::endl; for (StrIterator it = strVec2Cases.begin(); it != strVec2Cases.end(); ++it) { Test(StrToVec2, *it); } // test - ConvertStrToBool std::cout << std::endl << "---YPT::ConvertStrToBool" << std::endl; for (StrIterator it = strBoolCases.begin(); it != strBoolCases.end(); ++it) { Test(StrToBool, *it); } // test - ConvertFloatToStr std::cout << std::endl << "---YPT::ConvertFloatToStr" << std::endl; for (FloatIterator it = floatCases.begin(); it != floatCases.end(); ++it) { Test(FloatToStr, *it); } // test - ConvertVec2ToStr std::cout << std::endl << "---YPT::ConvertVec2ToStr" << std::endl; for (Vec2Iterator it = vec2Cases.begin(); it != vec2Cases.end(); ++it) { Test(Vec2ToStr, *it); } // test - ConvertBoolToStr std::cout << std::endl << "---YPT::ConvertBoolToStr" << std::endl; for (BoolIterator it = boolCases.begin(); it != boolCases.end(); ++it) { Test(BoolToStr, *it); } return 0; }
wxString dlgSchedule::GetUpdateSql() { wxString sql, name; name = GetName(); if (schedule) { // edit mode wxString vars; if (name != schedule->GetName()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscname = ") + qtDbString(name)); } if (txtComment->GetValue() != schedule->GetComment()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscdesc = ") + qtDbString(txtComment->GetValue())); } if ((!chkEnabled->IsChecked() && schedule->GetEnabled()) || (chkEnabled->IsChecked() && !schedule->GetEnabled())) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscenabled = ") + BoolToStr(chkEnabled->IsChecked())); } if (calStart->GetValue() + timStart->GetValue() != schedule->GetStart()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscstart = '") + DateToAnsiStr(calStart->GetValue() + timStart->GetValue()) + wxT("'")); } if (calEnd->GetValue().IsValid()) { if (schedule->GetEnd().IsValid()) { if (calEnd->GetValue() + timEnd->GetValue() != schedule->GetEnd()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscend = '") + DateToAnsiStr(calEnd->GetValue() + timEnd->GetValue()) + wxT("'")); } } else { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscend = '") + DateToAnsiStr(calEnd->GetValue() + wxTimeSpan()) + wxT("'")); } } else { if (schedule->GetEnd().IsValid()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscend = NULL")); } } if (ChkListBox2StrArray(chkMinutes) != schedule->GetMinutes()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscminutes = '") + ChkListBox2PgArray(chkMinutes) + wxT("'")); } if (ChkListBox2StrArray(chkHours) != schedule->GetHours()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jschours = '") + ChkListBox2PgArray(chkHours) + wxT("'")); } if (ChkListBox2StrArray(chkWeekdays) != schedule->GetWeekdays()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscweekdays = '") + ChkListBox2PgArray(chkWeekdays) + wxT("'")); } if (ChkListBox2StrArray(chkMonthdays) != schedule->GetMonthdays()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscmonthdays = '") + ChkListBox2PgArray(chkMonthdays) + wxT("'")); } if (ChkListBox2StrArray(chkMonths) != schedule->GetMonths()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jscmonths = '") + ChkListBox2PgArray(chkMonths) + wxT("'")); } if (!vars.IsEmpty()) sql = wxT("UPDATE pgagent.pga_schedule SET ") + vars + wxT("\n") wxT(" WHERE jscid=") + NumToStr(recId) + wxT(";\n"); } else { // create mode // Handled by GetInsertSQL } unsigned int x = 0; int y = 0; wxDateTime tmpDateTime; wxString newDate, newTime; // Remove old exceptions for (x = 0; x < deleteExceptions.Count(); x++) { sql += wxT("DELETE FROM pgagent.pga_exception\n WHERE jexid = ") + deleteExceptions[x] + wxT(";\n"); } // Update dirty exceptions for (y = 0; y < lstExceptions->GetItemCount(); y++) { if (lstExceptions->GetText(y, 2) == BoolToStr(true) && lstExceptions->GetText(y, 3) != wxEmptyString) { if (lstExceptions->GetText(y, 0) == _("<any>")) newDate = wxT("null"); else { tmpDateTime.ParseFormat(lstExceptions->GetText(y, 0), wxT("%x")); newDate = wxT("'") + tmpDateTime.FormatISODate() + wxT("'"); } if (lstExceptions->GetText(y, 1) == _("<any>")) newTime = wxT("null"); else { tmpDateTime.ParseTime(lstExceptions->GetText(y, 1)); newTime = wxT("'") + tmpDateTime.FormatISOTime() + wxT("'"); } sql += wxT("UPDATE pgagent.pga_exception SET jexdate = ") + newDate + wxT(", jextime = ") + newTime + wxT("\n WHERE jexid = ") + lstExceptions->GetText(y, 3) + wxT(";\n"); } } // Insert new exceptions for (y = 0; y < lstExceptions->GetItemCount(); y++) { if (lstExceptions->GetText(y, 2) == wxEmptyString && lstExceptions->GetText(y, 3) == wxEmptyString) { if (lstExceptions->GetText(y, 0) == _("<any>")) newDate = wxT("null"); else { tmpDateTime.ParseFormat(lstExceptions->GetText(y, 0), wxT("%x")); newDate = wxT("'") + tmpDateTime.FormatISODate() + wxT("'"); } if (lstExceptions->GetText(y, 1) == _("<any>")) newTime = wxT("null"); else { tmpDateTime.ParseTime(lstExceptions->GetText(y, 1)); newTime = wxT("'") + tmpDateTime.FormatISOTime() + wxT("'"); } sql += wxT("INSERT INTO pgagent.pga_exception (jexscid, jexdate, jextime)\n VALUES (") + NumToStr(recId) + wxT(", ") + newDate + wxT(", ") + newTime + wxT(");\n"); } } return sql; }
int dlgSchedule::Go(bool modal) { int returncode; if (schedule) { // edit mode recId = schedule->GetRecId(); txtID->SetValue(NumToStr(recId)); chkEnabled->SetValue(schedule->GetEnabled()); calStart->SetValue(schedule->GetStart().GetDateOnly()); timStart->SetTime(schedule->GetStart()); if (schedule->GetEnd().IsValid()) { calEnd->SetValue(schedule->GetEnd().GetDateOnly()); timEnd->SetTime(schedule->GetEnd()); } else { calEnd->SetValue(wxInvalidDateTime); timEnd->SetTime(wxInvalidDateTime); timEnd->Disable(); } unsigned int x; for (x = 0; x < schedule->GetMonths().Length(); x++ ) if (schedule->GetMonths()[x] == 't') chkMonths->Check(x, true); for (x = 0; x < schedule->GetMonthdays().Length(); x++ ) if (schedule->GetMonthdays()[x] == 't') chkMonthdays->Check(x, true); for (x = 0; x < schedule->GetWeekdays().Length(); x++ ) if (schedule->GetWeekdays()[x] == 't') chkWeekdays->Check(x, true); for (x = 0; x < schedule->GetHours().Length(); x++ ) if (schedule->GetHours()[x] == 't') chkHours->Check(x, true); for (x = 0; x < schedule->GetMinutes().Length(); x++ ) if (schedule->GetMinutes()[x] == 't') chkMinutes->Check(x, true); wxString id, dateToken, timeToken; wxDateTime val; long pos = 0; wxStringTokenizer tkz(schedule->GetExceptions(), wxT("|")); while (tkz.HasMoreTokens() ) { dateToken.Empty(); timeToken.Empty(); // First is the ID id = tkz.GetNextToken(); // Look for a date if (tkz.HasMoreTokens()) dateToken = tkz.GetNextToken(); // Look for a time if (tkz.HasMoreTokens()) timeToken = tkz.GetNextToken(); if (!dateToken.IsEmpty() && !timeToken.IsEmpty()) { val.ParseDate(dateToken); val.ParseTime(timeToken); pos = lstExceptions->AppendItem(0, val.FormatDate(), val.FormatTime()); } else if (!dateToken.IsEmpty() && timeToken.IsEmpty()) { val.ParseDate(dateToken); pos = lstExceptions->AppendItem(0, val.FormatDate(), _("<any>")); } else if (dateToken.IsEmpty() && !timeToken.IsEmpty()) { val.ParseTime(timeToken); pos = lstExceptions->AppendItem(0, _("<any>"), val.FormatTime()); } lstExceptions->SetItem(pos, 2, BoolToStr(false)); lstExceptions->SetItem(pos, 3, id); } wxNotifyEvent ev; } else { // create mode } // setup de-/select buttons InitSelectAll(); returncode = dlgProperty::Go(modal); SetSqlReadOnly(true); return returncode; }
wxString dlgJob::GetUpdateSql() { wxString sql, name; name = GetName(); if (job) { // edit mode wxString vars; if (name != job->GetName()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jobname = ") + qtDbString(name)); } if (cbJobclass->GetValue().Trim() != job->GetJobclass()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jobjclid= (SELECT jclid FROM pgagent.pga_jobclass WHERE jclname=") + qtDbString(cbJobclass->GetValue()) + wxT(")")); } if (chkEnabled->GetValue() != job->GetEnabled()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jobenabled = ") + BoolToStr(chkEnabled->GetValue())); } if (txtHostAgent->GetValue() != job->GetHostAgent()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jobhostagent = ") + qtDbString(txtHostAgent->GetValue())); } if (txtComment->GetValue() != job->GetComment()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jobdesc = ") + qtDbString(txtComment->GetValue())); } if (!vars.IsEmpty()) sql = wxT("UPDATE pgagent.pga_job SET ") + vars + wxT("\n") wxT(" WHERE jobid=") + NumToStr(recId) + wxT(";\n"); } else { // create mode // done by GetInsertSql } int pos, index; wxArrayString tmpSteps = previousSteps; for (pos = 0 ; pos < lstSteps->GetItemCount() ; pos++) { wxString str = lstSteps->GetText(pos, 3); if (!str.IsEmpty()) { index = tmpSteps.Index(str); if (index >= 0) tmpSteps.RemoveAt(index); } if(lstSteps->GetItemData(pos)) { str = *(wxString *)lstSteps->GetItemData(pos); if (!str.IsEmpty()) sql += str; } } for (index = 0 ; index < (int)tmpSteps.GetCount() ; index++) { sql += wxT("DELETE FROM pgagent.pga_jobstep WHERE jstid=") + NumToStr(((pgaStep *)StrToLong(tmpSteps.Item(index)))->GetRecId()) + wxT(";\n"); } wxArrayString tmpSchedules = previousSchedules; for (pos = 0 ; pos < lstSchedules->GetItemCount() ; pos++) { wxString str = lstSchedules->GetText(pos, 3); if (!str.IsEmpty()) { index = tmpSchedules.Index(str); if (index >= 0) tmpSchedules.RemoveAt(index); } if(lstSchedules->GetItemData(pos)) { str = *(wxString *)lstSchedules->GetItemData(pos); if (!str.IsEmpty()) sql += str; } } for (index = 0 ; index < (int)tmpSchedules.GetCount() ; index++) { sql += wxT("DELETE FROM pgagent.pga_schedule WHERE jscid=") + NumToStr(((pgaStep *)StrToLong(tmpSchedules.Item(index)))->GetRecId()) + wxT(";\n"); } return sql; }
wxString dlgStep::GetUpdateSql() { wxString sql; if (step) { // edit mode wxString name = GetName(); wxString kind = wxT("sb")[rbxKind->GetSelection()]; wxString vars; if (name != step->GetName()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstname=") + qtDbString(name)); } if (chkEnabled->GetValue() != step->GetEnabled()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstenabled=") + BoolToStr(chkEnabled->GetValue())); } if (hasConnStrSupport && kind == wxT("s")) { if (rbRemoteConn->GetValue()) { if (step->HasConnectionString()) { if (txtConnStr->GetValue().Trim() != step->GetConnStr()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstconnstr=") + qtDbString(txtConnStr->GetValue().Trim())); } } else { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstconnstr=") + qtDbString(txtConnStr->GetValue().Trim()) + wxT(", ")); vars.Append(wxT("jstdbname=''")); } } else { if (step->HasConnectionString()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstdbname=") + qtDbString(cbDatabase->GetValue().Trim()) + wxT(", ")); vars.Append(wxT("jstconnstr=''")); } else { if (cbDatabase->GetValue().Trim() != step->GetDbname()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstdbname=") + qtDbString(cbDatabase->GetValue().Trim())); } } } } else if (kind == wxT("s")) { if (cbDatabase->GetValue().Trim() != step->GetDbname()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstdbname=") + qtDbString(cbDatabase->GetValue().Trim())); } } else { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstdbname=''")); if (hasConnStrSupport) vars.Append(wxT(", jstconnstr=''")); } if (rbxKind->GetSelection() != kind) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstkind=") + qtDbString(kind)); } if (rbxOnError->GetSelection() != wxString(wxT("fsi")).Find(step->GetOnErrorChar())) { wxString onerror = wxT("fsi")[rbxOnError->GetSelection()]; if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstonerror='") + onerror + wxT("'")); } if (txtComment->GetValue() != step->GetComment()) { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstdesc=") + qtDbString(txtComment->GetValue())); } if (sqlBox->GetText() != step->GetCode()) { { if (!vars.IsEmpty()) vars.Append(wxT(", ")); vars.Append(wxT("jstcode=") + qtDbString(sqlBox->GetText())); } } if (!vars.IsEmpty()) sql = wxT("UPDATE pgagent.pga_jobstep\n") wxT(" SET ") + vars + wxT("\n") wxT(" WHERE jstid=") + NumToStr(step->GetRecId()) + wxT(";\n"); } else { // create mode; handled by GetInsertSql() } return sql; }
CString CBooleanVariable::GetString(void) const { return BoolToStr(m_Value); }