int main(void) { LONG result = RETURN_OK; do { dt.dat_Stamp.ds_Days = days; dt.dat_Format = FORMAT_DOS; dt.dat_StrDate = s; DateToStr(&dt); dt.dat_Stamp.ds_Days = -1; StrToDate(&dt); //printf("date \"%s\" day = %ld\n", s, days); if (dt.dat_Stamp.ds_Days != days) { printf("Bad results for date \"%s\" (day #%ld). " "StrToDate thought it was day #%ld\n", s, (long)days, (long)dt.dat_Stamp.ds_Days); result = RETURN_ERROR; } days++; } while (!CheckSignal(SIGBREAKF_CTRL_C) && (days < 36525)); /* 2078-01-01: same as 1978 in FORMAT_DOS */ return result; }
void __fastcall TMainFrm::RetrievePOPHeaders(int inMsgCount ) { AnsiString stTemp; AnsiString stformat; int intIndex; TListItem *itm; stTemp = StatusBar1->Panels->Items[1]->Text; lvHeaders->Items->Clear(); for (intIndex = 1;intIndex<= inMsgCount ;intIndex++) { // Clear the message properties ShowStatus(stformat.sprintf("Messsage %d of %d", intIndex, inMsgCount)); Application->ProcessMessages(); Msg->Clear(); POP->RetrieveHeader(intIndex, Msg); // Add info to ListView itm = lvHeaders->Items->Add(); itm->ImageIndex = 5; itm->Caption = Msg->Subject; itm->SubItems->Add(Msg->From->Text); itm->SubItems->Add(DateToStr(Msg->Date)); itm->SubItems->Add(IntToStr(POP->RetrieveMsgSize(intIndex))); itm->SubItems->Add("n/a"); // itm.SubItems.Add(POP.RetrieveUIDL(intIndex)); } ShowStatus(stTemp); }
void TJvNTEventLogMainForm::ReadEvents(void) { TListItem *pItem; ListView1->Items->BeginUpdate(); Screen->Cursor = crHourGlass; __try { ListView1->Items->Clear(); JvNTEventLog1->First(); while( !JvNTEventLog1->Eof() ) { pItem = ListView1->Items->Add(); pItem->Caption = JvNTEventLog1->EventRecord->EventType; pItem->SubItems->Add(DateToStr(JvNTEventLog1->EventRecord->DateTime)); pItem->SubItems->Add(TimeToStr(JvNTEventLog1->EventRecord->DateTime)); pItem->SubItems->Add(JvNTEventLog1->EventRecord->Source); pItem->SubItems->Add(IntToStr(JvNTEventLog1->EventRecord->Category)); pItem->SubItems->Add(IntToStr(JvNTEventLog1->EventRecord->ID & 0x0FFFFFFF)); pItem->SubItems->Add(JvNTEventLog1->EventRecord->UserName); pItem->SubItems->Add(JvNTEventLog1->EventRecord->Computer); JvNTEventLog1->Next(); } } __finally { ListView1->Items->EndUpdate(); Screen->Cursor = crDefault; } }
void __fastcall TTimelineMainForm::TimeLine1Click(TObject *Sender) { if( TimeLine1->Selected != NULL ) { Caption = Format("%s (%s)", OPENARRAY(TVarRec, ( TimeLine1->Selected->Caption, DateToStr(TimeLine1->Selected->Date) ) ) ); } }
void pgDatabase::AppendSchemaChange(const wxString &sql) { wxDateTime dt; dt.Now(); schemaChanges.Append(wxT("-- ") + DateToStr(dt) + wxT("\n")); schemaChanges.Append(sql); schemaChanges.Append(wxT("\n\n")); }
int main(void) { UtilityBase = (struct UtilityBase *)OpenLibrary("utility.library", 0); if (UtilityBase) { dt.dat_StrDate = "31-dec-2000"; dt.dat_Format = FORMAT_DOS; if (StrToDate(&dt)) { dt.dat_StrDate = s; if (DateToStr(&dt)) { printf("Verified date: \"%s\" days = %ld min = %ld tick = %ld\n", s, dt.dat_Stamp.ds_Days, dt.dat_Stamp.ds_Minute, dt.dat_Stamp.ds_Tick); Amiga2Date(dt.dat_Stamp.ds_Days * 60 * 60 * 24 + dt.dat_Stamp.ds_Minute * 60 + dt.dat_Stamp.ds_Tick / 50, &cd); printf("\nAmiga2Date says:\n\n"); printf("sec = %d\n", cd.sec); printf("min = %d\n", cd.min); printf("hour = %d\n", cd.hour); printf("mday = %d\n", cd.mday); printf("month = %d\n", cd.month); printf("year = %d\n", cd.year); printf("wday = %d\n", cd.wday); printf("\n-------- One day later -----------\n\n"); Amiga2Date((dt.dat_Stamp.ds_Days + 1) * 60 * 60 * 24 + dt.dat_Stamp.ds_Minute * 60 + dt.dat_Stamp.ds_Tick / 50, &cd); printf("\nAmiga2Date says:\n\n"); printf("sec = %d\n", cd.sec); printf("min = %d\n", cd.min); printf("hour = %d\n", cd.hour); printf("mday = %d\n", cd.mday); printf("month = %d\n", cd.month); printf("year = %d\n", cd.year); printf("wday = %d\n", cd.wday); } else puts("DateToStr failed!"); } else puts("StrToDate failed!"); CloseLibrary((struct Library *)UtilityBase); } return 0; }
//--------------------------------------------------------------------------- AnsiString __fastcall TFormReport::DateReplace(AnsiString str) { AnsiString result = str; result = StringReplace(result, "[DateStart]", DateToStr(DateStart->Date), TReplaceFlags() <<rfReplaceAll<< rfIgnoreCase); result = StringReplace(result, "[DateEnd]", DateToStr(DateEnd->Date), TReplaceFlags() <<rfReplaceAll<< rfIgnoreCase); AnsiString s = ""; result = StringReplace(result, "[Pokupatel]", (id_partner > 0) ? " and id_partner="+IntToStr(id_partner) : s, TReplaceFlags() <<rfReplaceAll<< rfIgnoreCase); result = StringReplace(result, "[Grupa]", (id_group > 0) ? " and id_group="+IntToStr(id_group) : s, TReplaceFlags() <<rfReplaceAll<< rfIgnoreCase); return result; }
void __fastcall TForm1::FormCreate(TObject *Sender) { TDateTime today; today = Now(); dateNow = DateToStr(today); if(Form1->setDatePublication->Text == 0) { Form1->setDatePublication->Text = dateNow; } }
void __fastcall TTimelineMainForm::Move1Click(TObject *Sender) { AnsiString S; if( TimeLine1->Selected != NULL ) { S = DateToStr(TimeLine1->Selected->Date); if( InputQuery("Move item", "Move to new date:", S) ) { TimeLine1->Selected->Date = StrToDate(S); } } }
void ProfileClass::FormatSQL( TQuery* query ) { // common SQL code for new and updated record query->ParamByName("tpid")->AsInteger = ProfileID; query->ParamByName("name")->AsString = theName; query->ParamByName("descr")->AsString = Description; DateMod->PutDateToDatabase( query, "date", DateToStr(DateMod->GetToday()) ); query->ParamByName("note")->AsSmallInt = NoteExists; if ( !theProject->isBeforeVersion( 2, 1 ) ) { query->ParamByName("flag")->AsInteger = ProfileFlag; } }
/* ** Configure wake up for RTC alarm interrupt */ void configWakeRTC(void) { unsigned int currTime = 0; unsigned int alarmTime = 0x00002000; /* 20 Seconds for RTC Wake */ unsigned int alarmDate = 0; unsigned char time[9]= {0}; unsigned char date[9]= {0}; /* Force RTC into 24hr format */ RTCHourModeSet(RTC_INST_BASE, RTC_24HOUR_MODE); /* get current time */ currTime = RTCTimeGet(RTC_INST_BASE); /* get current date */ alarmDate = RTCCalendarGet(RTC_INST_BASE); TimeToStr(currTime, time); DateToStr(alarmDate, date); ConsoleUtilsPrintf("\n\r Current Time & Date: %s, %s", time, date); /* Add alarm time to current time */ alarmTime = addTime(alarmTime, currTime, &alarmDate); /* Set alarm Time */ RTCAlarmTimeSet(RTC_INST_BASE, alarmTime); /* Set alarm Date */ RTCAlarmCalendarSet(RTC_INST_BASE, alarmDate); TimeToStr(alarmTime, time); DateToStr(alarmDate, date); ConsoleUtilsPrintf("\n\r RTC Alarm Wake Time & Date: %s, %s", time, date); /* Run the RTC. The seconds tick from now on.*/ RTCRun(RTC_INST_BASE); }
// --------------------------------------------------------------------------- void __fastcall TStdDataForm::FilterOnRadioGroupClick(TObject *Sender) { FilterOnLabel->Caption = "Records where " + FilterOnRadioGroup->Items->Strings[FilterOnRadioGroup->ItemIndex] + " >="; switch (FilterOnRadioGroup->ItemIndex) { case 0: Orders->OnFilterRecord = OrdersFilterOnDate; FilterCriteria->Text = DateToStr(FLastDate); break; case 1: Orders->OnFilterRecord = OrdersFilterOnAmount; FilterCriteria->Text = FloatToStr(FLastAmount); break; } ActiveControl = FilterCriteria; }
/* ** Displays the Time and Date on the UART console */ void RtcTimeCalDisplay(void) { unsigned int time = 0; unsigned int cal = 0; unsigned char strTime[9] = {'\0'}; unsigned char strDate[9] = {'\0'}; time = RTCTimeGet(SOC_RTC_0_REGS); cal = RTCCalendarGet(SOC_RTC_0_REGS); TimeToStr(time, strTime); DateToStr(cal, strDate); ConsoleUtilsPrintf("\rCurrent Time And Date: %s, %s, ", strTime, strDate); switch(cal & MASK_DOTW) { case 0x00: ConsoleUtilsPrintf("Sun"); break; case 0x01: ConsoleUtilsPrintf("Mon"); break; case 0x02: ConsoleUtilsPrintf("Tue"); break; case 0x03: ConsoleUtilsPrintf("Wed"); break; case 0x04: ConsoleUtilsPrintf("Thu"); break; case 0x05: ConsoleUtilsPrintf("Fri"); break; case 0x06: ConsoleUtilsPrintf("Sat"); default: break; } }
void __fastcall TTimelineMainForm::TimeLine1DragDrop(TObject *Sender, TObject *Source, int X, int Y) { AnsiString S; if( (Sender == Source) && (TimeLine1->Selected != NULL ) ) { S = DateToStr(TimeLine1->DateAtPos(X)); if( InputQuery("Confirm move", Format("Move \"%s\" to new date:", OPENARRAY(TVarRec, (TimeLine1->Selected->Caption) ) ), S ) ) { TimeLine1->Selected->Date = StrToDate(S); TimeLine1->Selected->Level = TimeLine1->LevelAtPos(Y); } } }
void __fastcall TTimelineMainForm::TimeLine1ItemMoved(TObject *Sender, TJvTimeItem *Item, TDateTime &NewStartDate, int &NewLevel) { AnsiString S; if( TimeLine1->Dragging() ) { return; } S = DateToStr(NewStartDate); if( !InputQuery("Confirm move", Format("Move \"%s\" to new date:", OPENARRAY(TVarRec ,(Item->Caption) ) ), S) ) { NewStartDate = Item->Date; NewLevel = Item->Level; } }
void writelog(char *file, char *text) { BPTR fh; struct DateTime dt; char datebuf[14],timebuf[10],utbuf[100]; DateStamp(&dt.dat_Stamp); dt.dat_Format = FORMAT_INT; dt.dat_Flags = 0; dt.dat_StrDay = NULL; dt.dat_StrDate = datebuf; dt.dat_StrTime = timebuf; DateToStr(&dt); sprintf(utbuf,"%s %s - %s\n",datebuf,timebuf,text); if(!(fh=Open(file,MODE_OLDFILE))) if(!(fh=Open(file,MODE_NEWFILE))) return; Seek(fh,0,OFFSET_END); FPuts(fh,utbuf); Close(fh); }
void __fastcall TfrmRaporSecimi::MuaddelRaporOncesiHazirlik(void) { // Muaddel Cetveli için üretim reçetesi oluþturulur... frmStokKarti->UretimRecetesiSifirla(); frmStokKarti->UretimRecetesiOlustur(comboDepartmanBaslangic->Text+editBaslangicStokKodu->Text); // Muaddel Cetveli için paraflar atanýyor... frmMuaddelCetveli->qrlabelYETKILI1ADI->Caption = comboYETKILI1->Text; frmMuaddelCetveli->qrlabelYETKILI1RUTBE->Caption = editYETKILI1RUTBE->Text; frmMuaddelCetveli->qrlabelYETKILI1GOREVI->Caption = editYETKILI1GOREVI->Text; frmMuaddelCetveli->qrlabelYETKILI2ADI->Caption = comboYETKILI2->Text; frmMuaddelCetveli->qrlabelYETKILI2RUTBE->Caption = editYETKILI2RUTBE->Text; frmMuaddelCetveli->qrlabelYETKILI2GOREVI->Caption = editYETKILI2GOREVI->Text; frmMuaddelCetveli->qrlabelYETKILI3ADI->Caption = comboYETKILI3->Text; frmMuaddelCetveli->qrlabelYETKILI3RUTBE->Caption = editYETKILI3RUTBE->Text; frmMuaddelCetveli->qrlabelYETKILI3GOREVI->Caption = editYETKILI3GOREVI->Text; frmMuaddelCetveli->qrlabelYETKILI4ADI->Caption = comboYETKILI4->Text; frmMuaddelCetveli->qrlabelYETKILI4RUTBE->Caption = editYETKILI4RUTBE->Text; frmMuaddelCetveli->qrlabelYETKILI4GOREVI->Caption = editYETKILI4GOREVI->Text; frmMuaddelCetveli->qrlabelYETKILI5ADI->Caption = comboYETKILI5->Text; frmMuaddelCetveli->qrlabelYETKILI5RUTBE->Caption = editYETKILI5RUTBE->Text; frmMuaddelCetveli->qrlabelYETKILI5GOREVI->Caption = editYETKILI5GOREVI->Text; // Ýþletme Adý tanýmlanýyor..... frmMuaddelCetveli->qrlabelISLETME_ADI->Caption = comboDepartmanBaslangic->Text; // Kaç kopya alýnacaðý ayarlanýyor . . . frmMuaddelCetveli->QuickRep1->PrinterSettings->Copies = StrToFloat(editKopyaSayisi->Text); // Rapor tarihi atanýyor . . . frmMuaddelCetveli->qrlabelTARIH->Caption = DateToStr(DateTimePicker2->Date); frmMuaddelCetveli->queryURETIMRECETESI->Close(); frmMuaddelCetveli->tblSTOKKARTI->Close(); frmMuaddelCetveli->tblSTOKKARTI->Filtered = true; frmMuaddelCetveli->tblSTOKKARTI->Filter = "[INDEKS] = '" + comboDepartmanBaslangic->Text + editBaslangicStokKodu->Text + "'"; frmMuaddelCetveli->tblSTOKKARTI->Open(); frmMuaddelCetveli->queryURETIMRECETESI->Open(); }
void ProfileClass::LogRecord( AnsiString Text ) { AnsiString LogText; LogText = Text + " test_profile_description: (Part 1) "; LogText += "test_profile_id=" + IntToStr( ProfileID ) + ","; LogText += "test_profile_name=" + theName + ","; LogText += "test_profile_description=" + Description; LogMod->LogProjectDb( TLogMod::LOGLOCAL, LogText ); LogText = Text + " test_profile_description: (Part 2) "; LogText += "date_last_modified=" + DateToStr(DateLastModified) + ","; LogText += "note_exists=" + IntToStr(NoteExists) + ","; if ( !theProject->isBeforeVersion( 2, 1 ) ) { LogText += "profile_flags=" + IntToStr(ProfileFlag) + ","; } LogMod->LogProjectDb( TLogMod::LOGLOCAL, LogText ); }
//--------------------------------------------------------------------------- void __fastcall TfrmRaporSecimi::FiyatListesiRaporOncesiHazirlik(void) { frmFiyatListesi->qrlabelISLETME_ADI->Caption = comboDepartmanBaslangic->Text; frmFiyatListesi->qrlabelTARIH->Caption = DateToStr(DateTimePicker2->Date); // Ýmza Bilgisi Geliyor.... frmFiyatListesi->qrlabelYETKILI_ADI->Caption = comboYETKILI1->Text; frmFiyatListesi->qrlabelYETKILI_RUTBESI->Caption = editYETKILI1RUTBE->Text; frmFiyatListesi->qrlabelYETKILI_GOREVI->Caption = editYETKILI1GOREVI->Text; frmFiyatListesi->QRImage1->Picture->LoadFromFile(frmAnaMenu->Database->Directory + "LOGO.BMP"); frmFiyatListesi->querySTOKLISTESI->Active = false; frmFiyatListesi->querySTOKLISTESI->ParamByName("BASLANGIC_KOD")->AsFloat = StrToFloat(editBaslangicStokKodu->Text); frmFiyatListesi->querySTOKLISTESI->ParamByName("BITIS_KOD")->AsFloat = StrToFloat(editBitisStokKodu->Text); frmFiyatListesi->querySTOKLISTESI->ParamByName("DEPARTMAN")->AsString = comboDepartmanBaslangic->Text; frmFiyatListesi->querySTOKLISTESI->ParamByName("CINSI")->AsString = "%"+comboStokCinsiBaslangic->Text+"%"; frmFiyatListesi->querySTOKLISTESI->Active = true; }
void __fastcall TfrmRaporSecimi::GunlukSatisRaporuOncesiHazirlik(void) { // Günlük Satýþ Cetveli için paraflar atanýyor... frmGunlukSatisCizelgesi->qrlabelYETKILI1ADI->Caption = comboYETKILI1->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI1RUTBE->Caption = editYETKILI1RUTBE->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI1GOREVI->Caption = editYETKILI1GOREVI->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI2ADI->Caption = comboYETKILI2->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI2RUTBE->Caption = editYETKILI2RUTBE->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI2GOREVI->Caption = editYETKILI2GOREVI->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI3ADI->Caption = comboYETKILI3->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI3RUTBE->Caption = editYETKILI3RUTBE->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI3GOREVI->Caption = editYETKILI3GOREVI->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI4ADI->Caption = comboYETKILI4->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI4RUTBE->Caption = editYETKILI4RUTBE->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI4GOREVI->Caption = editYETKILI4GOREVI->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI5ADI->Caption = comboYETKILI5->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI5RUTBE->Caption = editYETKILI5RUTBE->Text; frmGunlukSatisCizelgesi->qrlabelYETKILI5GOREVI->Caption = editYETKILI5GOREVI->Text; // Ýþletme Adý tanýmlanýyor..... frmGunlukSatisCizelgesi->qrlabelISLETME_ADI->Caption = comboDepartmanBaslangic->Text + " GÜNLÜK SATIÞ LÝSTESÝ"; // Kaç kopya alýnacaðý ayarlanýyor . . . frmGunlukSatisCizelgesi->QuickRep1->PrinterSettings->Copies = StrToFloat(editKopyaSayisi->Text); // Rapor tarihi atanýyor . . . frmGunlukSatisCizelgesi->qrlabelTARIH->Caption = DateToStr(DateTimePicker2->Date); // tblSATIS_CETVELI Table Burada filtreleniyor... frmGunlukSatisCizelgesi->tblSATIS_CETVELI->Active = false; frmGunlukSatisCizelgesi->tblSATIS_CETVELI->Filtered = true; frmGunlukSatisCizelgesi->tblSATIS_CETVELI->Filter = "[TARIH] = "+DateTimePicker2->DateTime.DateString() +" AND "+"[DEPARTMAN] = '"+comboDepartmanBaslangic->Text+"'"; frmGunlukSatisCizelgesi->tblSATIS_CETVELI->Active = true; }
///----------------------------------------------------------------------------- void SaveLogFile(AnsiString Patch){ char* time_ptr; AnsiString LogPatch; AnsiString cur_time; AnsiString cur_date; cur_date += DateToStr(Date()); cur_date += " "; cur_time = TimeToStr(Time()); if((time_ptr = strchr(cur_time.c_str(),':')) != NULL){ *time_ptr = '.'; time_ptr++; if((time_ptr = strchr(cur_time.c_str(),':')) != 0x00){ *time_ptr = '.'; } } cur_time += " "; LogPatch = Patch; LogPatch += "Hammer Log File At "; LogPatch += cur_date; LogPatch += cur_time; LogPatch += ".log"; LogList->SaveToFile(LogPatch); return; }
bool __fastcall TMemoEditFrm_Edit(TStrings* Lines, TDateTime ADate, TIcon* Icon) { TMemoEditFrm* f; bool flResult; f = new TMemoEditFrm(Application); try { f->Icon = Icon; f->Caption = Format(f->Caption,OPENARRAY(TVarRec,(DateToStr(ADate) ) ) ); f->reLines->Lines = Lines; flResult = (f->ShowModal() == mrOk); if( flResult ) { Lines->Assign(f->reLines->Lines); } } __finally { delete f; } return flResult; }
//--------------------------------------------------------------------------- void __fastcall TDForm::DateTimePicker2Change(TObject *Sender) { Label7->Caption = DateToStr(DateTimePicker2->Date.DateString()); }
void __fastcall TResendLostCardnewFRM::cxButton2Click(TObject *Sender) { enableGS = false; int kh = StrToInt(cxTextEdit14->Text); String sql = "select * from CARD where BH='"; sql = sql + cxTextEdit5->Text + "'"; InDatabaseADOQuery->Close(); InDatabaseADOQuery->SQL->Clear(); InDatabaseADOQuery->SQL->Add(sql); InDatabaseADOQuery->Open(); if(!InDatabaseADOQuery->IsEmpty()) { InDatabaseADOQuery->Edit(); InDatabaseADOQuery->FieldByName("ZT")->AsString = "挂失"; InDatabaseADOQuery->Post(); } else { } sql = "select * from CARD_F where BH='" + cxTextEdit5->Text + "'"; InDatabaseADOQuery->Close(); InDatabaseADOQuery->SQL->Clear(); InDatabaseADOQuery->SQL->Add(sql); InDatabaseADOQuery->Open(); if(!InDatabaseADOQuery->IsEmpty()) { InDatabaseADOQuery->Edit(); InDatabaseADOQuery->FieldByName("ZT")->AsString = "挂失"; InDatabaseADOQuery->Post(); } else ShowMessage("此卡信息不在CARD_F表中,请确认!"); sql = "select * from KZT where BH='" + cxTextEdit5->Text + "'"; InDatabaseADOQuery->Close(); InDatabaseADOQuery->SQL->Clear(); InDatabaseADOQuery->SQL->Add(sql); InDatabaseADOQuery->Open(); if(!InDatabaseADOQuery->IsEmpty()) { InDatabaseADOQuery->Edit(); InDatabaseADOQuery->FieldByName("GS")->AsInteger = 1; InDatabaseADOQuery->Post(); } else ShowMessage("此卡信息不在KZT表中,请确认!"); sql = "insert into GS values(:BH,:KH,:GSRQ,:USERNAME)"; InDatabaseADOQuery->Close(); InDatabaseADOQuery->SQL->Clear(); InDatabaseADOQuery->SQL->Add(sql); InDatabaseADOQuery->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text; InDatabaseADOQuery->Parameters->ParamByName("KH")->Value = kh; InDatabaseADOQuery->Parameters->ParamByName("GSRQ")->Value = DateToStr(Date()); InDatabaseADOQuery->Parameters->ParamByName("USERNAME")->Value = OperatorName; InDatabaseADOQuery->ExecSQL(); InDatabaseADOQuery->Close(); InDatabaseADOQuery->SQL->Clear(); sql = "select * from SFJPARAM"; InDatabaseADOQuery->SQL->Add(sql); InDatabaseADOQuery->Open(); if(!InDatabaseADOQuery->IsEmpty()) { int pos[2000]; int port[2000]; int i = 0; InDatabaseADOQuery->First(); while(!InDatabaseADOQuery->Eof) { pos[i] = InDatabaseADOQuery->FieldByName("JH")->AsInteger; port[i] = InDatabaseADOQuery->FieldByName("SFJPORT")->AsInteger; i++; InDatabaseADOQuery->Next(); } int posnum = i; InDatabaseADOQuery->Close(); InDatabaseADOQuery->SQL->Clear(); sql = "delete from CMDLIST where PARA="; sql += kh; sql += " and status=0"; InDatabaseADOQuery->SQL->Add(sql); InDatabaseADOQuery->ExecSQL(); InDatabaseADOQuery->Close(); InDatabaseADOQuery->SQL->Clear(); sql = "insert into CMDLIST values(:SFJPORT,:SFJD,:CMD,:PARA,:STATUS,:SENDTIME)"; InDatabaseADOQuery->SQL->Add(sql); for(i = 0; i < posnum; i++) { InDatabaseADOQuery->Parameters->ParamByName("SFJPORT")->Value = port[i]; InDatabaseADOQuery->Parameters->ParamByName("SFJD")->Value = pos[i]; InDatabaseADOQuery->Parameters->ParamByName("CMD")->Value = 1; InDatabaseADOQuery->Parameters->ParamByName("PARA")->Value = kh; InDatabaseADOQuery->Parameters->ParamByName("STATUS")->Value = 0; InDatabaseADOQuery->Parameters->ParamByName("SENDTIME")->Value = NULL; InDatabaseADOQuery->ExecSQL(); } InDatabaseADOQuery->Close(); //填写操作记录表 InDatabaseADOQuery->SQL->Clear(); sql = "insert into OperationList values(:BH,:KH,:JE,:YE,:LX,:Operator,:DateTime)"; InDatabaseADOQuery->SQL->Add(sql); InDatabaseADOQuery->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text; InDatabaseADOQuery->Parameters->ParamByName("KH")->Value = kh; InDatabaseADOQuery->Parameters->ParamByName("JE")->Value = 0; InDatabaseADOQuery->Parameters->ParamByName("YE")->Value = StrToFloat(cxTextEdit17->Text); InDatabaseADOQuery->Parameters->ParamByName("LX")->Value = "挂失"; InDatabaseADOQuery->Parameters->ParamByName("Operator")->Value = OperatorName; InDatabaseADOQuery->Parameters->ParamByName("DateTime")->Value = DateTimeToStr(Date()); InDatabaseADOQuery->ExecSQL(); InDatabaseADOQuery->Close(); cxButton2->Enabled = false; cxButton3->Enabled = true; enableGS = true; if(mrOk == MessageBox(this->Handle, "登记挂失信息成功,是否将单条挂失记录下传!", "请选择", MB_OKCANCEL|MB_ICONQUESTION)) { SingleGSForm->cxTextEdit1->Text = cxTextEdit14->Text; SingleGSForm->ShowModal(); } } else { ShowMessage("登记挂失信息成功,该收费系统中没有入库的POS机!"); InDatabaseADOQuery->Close(); cxButton2->Enabled = false; cxButton3->Enabled = false; enableGS = true; } }
void __fastcall TResendLostCardnewFRM::cxButton3Click(TObject *Sender) { //New Card /* ADOQuery2->Close(); ADOQuery2->SQL->Clear(); ADOQuery2->SQL->Add("select min(KH) as maxkh from KZT where SY='N' and GS=0"); ADOQuery2->Open(); if(!ADOQuery2->IsEmpty()) { cxTextEdit18->Text = ADOQuery2->FieldByName("maxkh")->AsInteger; */ if(cxTextEdit18->Text.IsEmpty()) { ShowMessage("必须输入补卡号!"); return; } int tmpbkh = StrToInt(cxTextEdit18->Text); if(tmpbkh > 189999) { ShowMessage("补卡号不能大于189999!"); return; } int middlekh; ADOQuery2->Close(); ADOQuery2->SQL->Clear(); String tmpsqlstr = "select * from KZT where KH="; tmpsqlstr += cxTextEdit18->Text; tmpsqlstr += " and SY='N' and GS='0'"; ADOQuery2->SQL->Add(tmpsqlstr); ADOQuery2->Open(); if(!ADOQuery2->IsEmpty()) { ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = -1; ADOQuery2->Post(); //launchnewcard WORD status; int tmpbalance; int tmpkh,tmpsycs; double tmpintye; double tmpye; unsigned char keymode,secnum,Delayms,mode; unsigned char key[6]; unsigned char dwmm[6]; unsigned char daytime[4]; unsigned char kh[4]; unsigned char balance[4]; unsigned char cardtype[1]; unsigned char czmm[3]; unsigned char synum[3]; // unsigned char readcomno[5] = ""; Delayms = DelaySecond; keymode = CARDPasswordEdition; secnum = UsingSecNUM; key[0] = CARDPassword[0]; key[1] = CARDPassword[1]; key[2] = CARDPassword[2]; key[3] = CARDPassword[3]; key[4] = CARDPassword[4]; key[5] = CARDPassword[5]; if(LoadHModule) { if(readwatercardinfo)//readcardinfo) { // status = readcardinfo(readcomno,keymode,secnum,key,kh,balance,dwmm,synum,daytime,cardtype,czmm,Delayms); status = readwatercardinfo(readcomno,keymode,secnum,key,kh,balance,dwmm,daytime,cardtype,Delayms); if(status > 99) { ShowMessage("通讯错误!"); ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text); ADOQuery2->Post(); } else if (1 == status) { ShowMessage("请把卡片放好!"); ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text); ADOQuery2->Post(); } else if (2 == status) { ShowMessage("卡号大于192000或等于0!"); cxButton3->Enabled = false; ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text); ADOQuery2->Post(); } else if (4 == status) { ShowMessage("卡片密码不对!"); cxButton3->Enabled = false; ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text); ADOQuery2->Post(); } else if (5 == status) { ShowMessage("读写卡不稳定!"); cxButton3->Enabled = false; ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text); ADOQuery2->Post(); } else if (0 == status) { ShowMessage("此卡不能做为新卡发行,请更换新卡!"); cxButton3->Enabled = false; ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text); ADOQuery2->Post(); } else { unsigned char writesynum[2]; writesynum[0] = 0x00; writesynum[1] = 0x00; int maxsycs1 = 0; int maxsycs2 = 0; int maxsycs; String maxsycssqlstr = "select MAX(sycs) as maxsycs from MX where BH='"; maxsycssqlstr += cxTextEdit5->Text; maxsycssqlstr += "'"; ADOQuery3->Close(); ADOQuery3->SQL->Clear(); ADOQuery3->SQL->Add(maxsycssqlstr); ADOQuery3->Open(); if(!ADOQuery3->IsEmpty()) { maxsycs1 = ADOQuery3->FieldByName("maxsycs")->AsInteger; } ADOQuery3->Close(); maxsycssqlstr = "select MAX(sycs) as maxsycs from MXBAK where BH='"; maxsycssqlstr += cxTextEdit5->Text; maxsycssqlstr += "'"; ADOQuery3->SQL->Clear(); ADOQuery3->SQL->Add(maxsycssqlstr); ADOQuery3->Open(); if(!ADOQuery3->IsEmpty()) { maxsycs2 = ADOQuery3->FieldByName("maxsycs")->AsInteger; } ADOQuery3->Close(); if(maxsycs1 < maxsycs2) maxsycs = maxsycs2; else maxsycs = maxsycs1; writesynum[0] = (unsigned char)(maxsycs/256); writesynum[1] = (unsigned char)(maxsycs%256); WORD writestatus; unsigned char writedaytime[4]; unsigned char writebalance[4]; unsigned char writeczmm[3]; unsigned char writecardtype[1]; unsigned char writekh[4]; int writetmpkh = atoi(cxTextEdit18->Text.t_str()); writekh[0] = (char)(writetmpkh/256/256/256); writekh[1] = (char)((writetmpkh%(256*256*256))/256/256); writekh[2] = (char)((writetmpkh%(256*256))/256); writekh[3] = (char)writetmpkh; unsigned char writereadcomno[5] = readcomno; unsigned char writekeymode = keymode; unsigned char writesecnum = secnum; unsigned char writekey[6];// = key; writekey[0] = CARDPassword[0]; writekey[1] = CARDPassword[1]; writekey[2] = CARDPassword[2]; writekey[3] = CARDPassword[3]; writekey[4] = CARDPassword[4]; writekey[5] = CARDPassword[5]; unsigned char writedwmm[2]; writedwmm[0] = DWPassword[0]; writedwmm[1] = DWPassword[1]; unsigned char writemode = 0x00; unsigned char writeDelayms = DelaySecond; String writetmpstr = DateToStr(UseDateEdit->Date); char* writetmpdatestr = writetmpstr.t_str(); writedaytime[0] = char(((int)writetmpdatestr[2]-48)*16+((int)writetmpdatestr[3]-48)); writedaytime[1] = char(((int)writetmpdatestr[5]-48)*16+((int)writetmpdatestr[6]-48)); writedaytime[2] = char(((int)writetmpdatestr[8]-48)*16+((int)writetmpdatestr[9]-48)); writedaytime[3] = 0x00; // ShowMessage(PrepayTextEdit->Text.t_str()); double writetmpbalance = StrToFloat(cxTextEdit17->Text); writetmpbalance *= 100; writebalance[0] = 0x00; writebalance[1] = (char)((int)writetmpbalance/65536); writetmpbalance = (int)writetmpbalance%65536; writebalance[2] = (char)((int)writetmpbalance/256); writetmpbalance = (int)writetmpbalance%256; writebalance[3] = (char)writetmpbalance; unsigned char writetmpczmm[5]; strcpy(writetmpczmm, cxTextEdit12->Text.t_str()); writetmpczmm[0] = writetmpczmm[0]<<4; writetmpczmm[1] = writetmpczmm[1]<<4; writetmpczmm[1] = writetmpczmm[1]>>4; writeczmm[0] = writetmpczmm[0] + writetmpczmm[1]; writetmpczmm[2] = writetmpczmm[2]<<4; writetmpczmm[3] = writetmpczmm[3]<<4; writetmpczmm[3] = writetmpczmm[3]>>4; writeczmm[1] = writetmpczmm[2]+writetmpczmm[3]; writeczmm[2] = 0x00; writecardtype[0] = atoi(cxTextEdit13->Text.t_str()); if(LaunchWaterNewCard)//LaunchNewCard) { /* writestatus = LaunchNewCard(writereadcomno, writekeymode, writesecnum, writekey, writekh, writebalance, writedwmm, writesynum, writedaytime, writecardtype, writeczmm, writemode, writeDelayms); */ writestatus = LaunchWaterNewCard(writereadcomno, writekeymode, writesecnum, writekey, writekh, writebalance, writedwmm, writedaytime, writecardtype, writemode, writeDelayms); if(writestatus) { ShowMessage("写卡失败!"); ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text); ADOQuery2->Post(); } else { String tmpsql; String tmpsql2 = "insert into CARD_F values(:BH,:KH,:BKH,:XM,:XB,";; //填写退卡表 tmpsql = "insert into CARD_T values(:BH,:KH,:BKH,:XM,:XB,"; tmpsql = tmpsql+":SFZH,:BM,:BZ,:ZB,:ZW,:JB,:RQ,:TKRQ,:YJ,:TYJ,"+ ":ZT,:GRMM,:BTBZ,:BT_YE,:BTYEDT,:BTSYCS,:SF_YE,"+ ":SFYEDT,:SYCS,:FKSK,:SF_FL,:GLF,:FKJE,:TKJE,:TKBT,"+ ":SF_KL,:USERNAME,:YW,:TKCB,:BKCB,:TKOperator)"; tmpsql2 = tmpsql2 + ":SFZH,:BM,:BZ,:ZB,:ZW,:JB,:RQ,:TKRQ,:YJ,:TYJ,"+ ":ZT,:GRMM,:BTBZ,:BT_YE,:BTYEDT,:BTSYCS,:SF_YE,"+ ":SFYEDT,:SYCS,:FKSK,:SF_FL,:GLF,:FKJE,:TKJE,:TKBT,"+ ":SF_KL,:USERNAME)"; ADOQuery3->Close(); ADOQuery3->SQL->Clear(); ADOQuery3->SQL->Add(tmpsql); ADOQuery2->Close(); ADOQuery2->SQL->Clear(); String stmpsql = "select * from CARD where BH='" + cxTextEdit5->Text + "'"; ADOQuery2->SQL->Add(stmpsql); ADOQuery2->Open(); if(!ADOQuery2->IsEmpty()) { //补发卡不计退卡记录 ADOQuery3->Parameters->ParamByName("BH")->Value = ADOQuery2->FieldByName("BH")->Value; ADOQuery3->Parameters->ParamByName("KH")->Value = ADOQuery2->FieldByName("KH")->Value; ADOQuery3->Parameters->ParamByName("BKH")->Value = ADOQuery2->FieldByName("BKH")->Value; ADOQuery3->Parameters->ParamByName("XM")->Value = ADOQuery2->FieldByName("XM")->Value; ADOQuery3->Parameters->ParamByName("XB")->Value = ADOQuery2->FieldByName("XB")->Value; ADOQuery3->Parameters->ParamByName("SFZH")->Value = ADOQuery2->FieldByName("SFZH")->Value; ADOQuery3->Parameters->ParamByName("BM")->Value = ADOQuery2->FieldByName("BM")->Value; ADOQuery3->Parameters->ParamByName("BZ")->Value = ADOQuery2->FieldByName("BZ")->Value; ADOQuery3->Parameters->ParamByName("ZB")->Value = ADOQuery2->FieldByName("ZB")->Value; ADOQuery3->Parameters->ParamByName("ZW")->Value = ADOQuery2->FieldByName("ZW")->Value; ADOQuery3->Parameters->ParamByName("JB")->Value = ADOQuery2->FieldByName("JB")->Value; ADOQuery3->Parameters->ParamByName("RQ")->Value = ADOQuery2->FieldByName("RQ")->Value; ADOQuery3->Parameters->ParamByName("TKRQ")->Value = DateTimeToStr(Now()); ADOQuery3->Parameters->ParamByName("YJ")->Value = ADOQuery2->FieldByName("YJ")->Value; ADOQuery3->Parameters->ParamByName("TYJ")->Value = ADOQuery2->FieldByName("TYJ")->Value; ADOQuery3->Parameters->ParamByName("ZT")->Value = "挂补";//ADOQuery2->FieldByName("ZT")->Value; ADOQuery3->Parameters->ParamByName("GRMM")->Value = ADOQuery2->FieldByName("GRMM")->Value; ADOQuery3->Parameters->ParamByName("BTBZ")->Value = ADOQuery2->FieldByName("BTBZ")->Value; ADOQuery3->Parameters->ParamByName("BT_YE")->Value = ADOQuery2->FieldByName("BT_YE")->Value; ADOQuery3->Parameters->ParamByName("BTYEDT")->Value = ADOQuery2->FieldByName("BTYEDT")->Value; ADOQuery3->Parameters->ParamByName("BTSYCS")->Value = ADOQuery2->FieldByName("BTSYCS")->Value; ADOQuery3->Parameters->ParamByName("SF_YE")->Value = ADOQuery2->FieldByName("SF_YE")->Value; ADOQuery3->Parameters->ParamByName("SFYEDT")->Value = ADOQuery2->FieldByName("SFYEDT")->Value; ADOQuery3->Parameters->ParamByName("SYCS")->Value = ADOQuery2->FieldByName("SYCS")->Value; ADOQuery3->Parameters->ParamByName("FKSK")->Value = ADOQuery2->FieldByName("FKSK")->Value; ADOQuery3->Parameters->ParamByName("SF_FL")->Value = ADOQuery2->FieldByName("SF_FL")->Value; ADOQuery3->Parameters->ParamByName("GLF")->Value = ADOQuery2->FieldByName("GLF")->Value; ADOQuery3->Parameters->ParamByName("FKJE")->Value = ADOQuery2->FieldByName("FKJE")->Value; ADOQuery3->Parameters->ParamByName("TKJE")->Value = 0;//ADOQuery2->FieldByName("TKJE")->Value; ADOQuery3->Parameters->ParamByName("TKBT")->Value = 0;//ADOQuery2->FieldByName("TKBT")->Value; ADOQuery3->Parameters->ParamByName("SF_KL")->Value = ADOQuery2->FieldByName("SF_KL")->Value; ADOQuery3->Parameters->ParamByName("USERNAME")->Value = ADOQuery2->FieldByName("USERNAME")->Value; ADOQuery3->Parameters->ParamByName("YW")->Value = 0; ADOQuery3->Parameters->ParamByName("TKCB")->Value = 0; ADOQuery3->Parameters->ParamByName("BKCB")->Value = StrToInt(cxTextEdit20->Text); ADOQuery3->Parameters->ParamByName("TKOperator")->Value = OperatorName; ADOQuery3->ExecSQL(); ADOQuery3->Close(); } //Wallet修改大钱包数据 ADOQuery2->Close(); ADOQuery2->SQL->Clear(); tmpsql = "select * from CARD where BH='" + cxTextEdit5->Text + "'"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Open(); if(!ADOQuery2->IsEmpty()) { ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit18->Text); ADOQuery2->Post(); } //CARD ADOQuery2->Close(); ADOQuery2->SQL->Clear(); tmpsql = "select * from CARD where BH='" + cxTextEdit5->Text + "'"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Open(); ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = atoi(cxTextEdit18->Text.t_str()); ADOQuery2->FieldByName("ZT")->AsString = "发卡"; ADOQuery2->Post(); //CARD_F ADOQuery2->Close(); ADOQuery2->SQL->Clear(); tmpsql = "select * from CARD_F where BH='" + cxTextEdit5->Text + "'"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Open(); ADOQuery3->SQL->Clear(); ADOQuery3->SQL->Add(tmpsql2); ADOQuery3->Parameters->ParamByName("BH")->Value = ADOQuery2->FieldByName("BH")->Value; ADOQuery3->Parameters->ParamByName("KH")->Value = ADOQuery2->FieldByName("KH")->Value; ADOQuery3->Parameters->ParamByName("BKH")->Value = ADOQuery2->FieldByName("BKH")->Value; ADOQuery3->Parameters->ParamByName("XM")->Value = ADOQuery2->FieldByName("XM")->Value; ADOQuery3->Parameters->ParamByName("XB")->Value = ADOQuery2->FieldByName("XB")->Value; ADOQuery3->Parameters->ParamByName("SFZH")->Value = ADOQuery2->FieldByName("SFZH")->Value; ADOQuery3->Parameters->ParamByName("BM")->Value = ADOQuery2->FieldByName("BM")->Value; ADOQuery3->Parameters->ParamByName("BZ")->Value = ADOQuery2->FieldByName("BZ")->Value; ADOQuery3->Parameters->ParamByName("ZB")->Value = ADOQuery2->FieldByName("ZB")->Value; ADOQuery3->Parameters->ParamByName("ZW")->Value = ADOQuery2->FieldByName("ZW")->Value; ADOQuery3->Parameters->ParamByName("JB")->Value = ADOQuery2->FieldByName("JB")->Value; ADOQuery3->Parameters->ParamByName("RQ")->Value = ADOQuery2->FieldByName("RQ")->Value; ADOQuery3->Parameters->ParamByName("TKRQ")->Value = DateTimeToStr(Now()); ADOQuery3->Parameters->ParamByName("YJ")->Value = ADOQuery2->FieldByName("YJ")->Value; ADOQuery3->Parameters->ParamByName("TYJ")->Value = ADOQuery2->FieldByName("TYJ")->Value; ADOQuery3->Parameters->ParamByName("ZT")->Value = ADOQuery2->FieldByName("ZT")->Value; ADOQuery3->Parameters->ParamByName("GRMM")->Value = ADOQuery2->FieldByName("GRMM")->Value; ADOQuery3->Parameters->ParamByName("BTBZ")->Value = ADOQuery2->FieldByName("BTBZ")->Value; ADOQuery3->Parameters->ParamByName("BT_YE")->Value = ADOQuery2->FieldByName("BT_YE")->Value; ADOQuery3->Parameters->ParamByName("BTYEDT")->Value = ADOQuery2->FieldByName("BTYEDT")->Value; ADOQuery3->Parameters->ParamByName("BTSYCS")->Value = ADOQuery2->FieldByName("BTSYCS")->Value; ADOQuery3->Parameters->ParamByName("SF_YE")->Value = ADOQuery2->FieldByName("SF_YE")->Value; ADOQuery3->Parameters->ParamByName("SFYEDT")->Value = ADOQuery2->FieldByName("SFYEDT")->Value; ADOQuery3->Parameters->ParamByName("SYCS")->Value = ADOQuery2->FieldByName("SYCS")->Value; ADOQuery3->Parameters->ParamByName("FKSK")->Value = ADOQuery2->FieldByName("FKSK")->Value; ADOQuery3->Parameters->ParamByName("SF_FL")->Value = ADOQuery2->FieldByName("SF_FL")->Value; ADOQuery3->Parameters->ParamByName("GLF")->Value = ADOQuery2->FieldByName("GLF")->Value; ADOQuery3->Parameters->ParamByName("FKJE")->Value = ADOQuery2->FieldByName("FKJE")->Value; ADOQuery3->Parameters->ParamByName("TKJE")->Value = ADOQuery2->FieldByName("TKJE")->Value; ADOQuery3->Parameters->ParamByName("TKBT")->Value = ADOQuery2->FieldByName("TKBT")->Value; ADOQuery3->Parameters->ParamByName("SF_KL")->Value = ADOQuery2->FieldByName("SF_KL")->Value; ADOQuery3->Parameters->ParamByName("USERNAME")->Value = ADOQuery2->FieldByName("USERNAME")->Value; ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = atoi(cxTextEdit18->Text.t_str()); ADOQuery2->FieldByName("ZT")->AsString = "发卡"; ADOQuery2->Post(); ADOQuery3->ExecSQL(); ADOQuery3->Close(); //KZT ADOQuery2->Close(); ADOQuery2->SQL->Clear(); tmpsql = "select * from KZT where BH='" + cxTextEdit5->Text + "'"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Open(); ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = atoi(cxTextEdit18->Text.t_str()); ADOQuery2->FieldByName("GS")->AsInteger = 0; ADOQuery2->FieldByName("SY")->AsString = "Y"; ADOQuery2->FieldByName("FKRQ")->AsString = DateTimeToStr(Now()); ADOQuery2->Post(); ADOQuery2->Close(); ADOQuery2->SQL->Clear(); tmpsql = "select * from KZT where KH=-1"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Open(); ADOQuery2->Edit(); ADOQuery2->FieldByName("KH")->AsInteger = StrToInt(cxTextEdit14->Text); ADOQuery2->FieldByName("GS")->AsInteger = 1; ADOQuery2->Post(); //填写操作记录表 ADOQuery2->Close(); ADOQuery2->SQL->Clear(); tmpsql = "insert into OperationList values(:BH,:KH,:JE,:YE,:LX,:Operator,:DateTime)"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text; ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str()); ADOQuery2->Parameters->ParamByName("JE")->Value = 0; ADOQuery2->Parameters->ParamByName("YE")->Value = StrToFloat(cxTextEdit17->Text);; ADOQuery2->Parameters->ParamByName("LX")->Value = "补发卡"; ADOQuery2->Parameters->ParamByName("Operator")->Value = OperatorName; ADOQuery2->Parameters->ParamByName("DateTime")->Value = DateTimeToStr(Now()); ADOQuery2->ExecSQL(); ADOQuery2->Close(); //补发卡明细 /* ADOQuery2->Close(); ADOQuery2->SQL->Clear(); tmpsql = "insert into BFKMX values(:BH,:KH,:BKH,:JE,:YE,:LX,:Operator,:DateTime)"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text; ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit14->Text.t_str()); ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str()); ADOQuery2->Parameters->ParamByName("JE")->Value = 0; ADOQuery2->Parameters->ParamByName("YE")->Value = StrToFloat(cxTextEdit17->Text);; ADOQuery2->Parameters->ParamByName("LX")->Value = "补发卡"; ADOQuery2->Parameters->ParamByName("Operator")->Value = OperatorName; ADOQuery2->Parameters->ParamByName("DateTime")->Value = DateTimeToStr(Now()); ADOQuery2->ExecSQL(); ADOQuery2->Close(); */ //MX ADOQuery2->Close(); ADOQuery2->SQL->Clear(); tmpsql = "insert into MX values(:BH,:KH,:SF_YE,"; tmpsql = tmpsql + ":SFJE,:SYCS,:SFRQ,:JYNO,"; tmpsql = tmpsql + ":GZZID,:SFLX,:CZY,:SCRQ)"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text; ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str()); ADOQuery2->Parameters->ParamByName("SF_YE")->Value = StrToFloat(cxTextEdit17->Text); ADOQuery2->Parameters->ParamByName("SFJE")->Value = 0;//atoi(cxTextEdit20->Text.t_str()); ADOQuery2->Parameters->ParamByName("SYCS")->Value = 0; ADOQuery2->Parameters->ParamByName("SFRQ")->Value = DateTimeToStr(Now()); ADOQuery2->Parameters->ParamByName("JYNO")->Value = 0; ADOQuery2->Parameters->ParamByName("GZZID")->Value = 1; ADOQuery2->Parameters->ParamByName("SFLX")->Value = "F"; ADOQuery2->Parameters->ParamByName("CZY")->Value = OperatorName; ADOQuery2->Parameters->ParamByName("SCRQ")->Value = DateTimeToStr(Now()); ADOQuery2->ExecSQL(); ADOQuery2->Close(); int bkf = 0; if(!cxTextEdit20->Text.IsEmpty()) bkf = StrToInt(cxTextEdit20->Text); //补卡费 ADOQuery2->Close(); ADOQuery2->SQL->Clear(); tmpsql = "insert into MX values(:BH,:KH,:SF_YE,"; tmpsql = tmpsql + ":SFJE,:SYCS,:SFRQ,:JYNO,"; tmpsql = tmpsql + ":GZZID,:SFLX,:CZY,:SCRQ)"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text; ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str()); ADOQuery2->Parameters->ParamByName("SF_YE")->Value = 0; ADOQuery2->Parameters->ParamByName("SFJE")->Value = bkf; ADOQuery2->Parameters->ParamByName("SYCS")->Value = 0; ADOQuery2->Parameters->ParamByName("SFRQ")->Value = DateTimeToStr(Now()); ADOQuery2->Parameters->ParamByName("JYNO")->Value = 0; ADOQuery2->Parameters->ParamByName("GZZID")->Value = 1; ADOQuery2->Parameters->ParamByName("SFLX")->Value = "G"; ADOQuery2->Parameters->ParamByName("CZY")->Value = OperatorName; ADOQuery2->Parameters->ParamByName("SCRQ")->Value = DateTimeToStr(Now()); ADOQuery2->ExecSQL(); ADOQuery2->Close(); //MXBAK /* ADOQuery2->SQL->Clear(); tmpsql = "insert into MXBAK values(:BH,:KH,:SF_YE,"; tmpsql = tmpsql + ":SFJE,:SYCS,:SFRQ,:JYNO,"; tmpsql = tmpsql + ":GZZID,:SFLX,:CZY,:SCRQ)"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text; ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str()); ADOQuery2->Parameters->ParamByName("SF_YE")->Value = StrToFloat(cxTextEdit17->Text.t_str()); ADOQuery2->Parameters->ParamByName("SFJE")->Value = 0;//atoi(cxTextEdit20->Text.t_str()); ADOQuery2->Parameters->ParamByName("SYCS")->Value = 0; ADOQuery2->Parameters->ParamByName("SFRQ")->Value = DateTimeToStr(Now()); ADOQuery2->Parameters->ParamByName("JYNO")->Value = 0; ADOQuery2->Parameters->ParamByName("GZZID")->Value = 1; ADOQuery2->Parameters->ParamByName("SFLX")->Value = "F"; ADOQuery2->Parameters->ParamByName("CZY")->Value = OperatorName; ADOQuery2->Parameters->ParamByName("SCRQ")->Value = DateTimeToStr(Now()); ADOQuery2->ExecSQL(); ADOQuery2->Close(); ADOQuery2->SQL->Clear(); tmpsql = "insert into MXBAK values(:BH,:KH,:SF_YE,"; tmpsql = tmpsql + ":SFJE,:SYCS,:SFRQ,:JYNO,"; tmpsql = tmpsql + ":GZZID,:SFLX,:CZY,:SCRQ)"; ADOQuery2->SQL->Add(tmpsql); ADOQuery2->Parameters->ParamByName("BH")->Value = cxTextEdit5->Text; ADOQuery2->Parameters->ParamByName("KH")->Value = atoi(cxTextEdit18->Text.t_str()); ADOQuery2->Parameters->ParamByName("SF_YE")->Value = 0; ADOQuery2->Parameters->ParamByName("SFJE")->Value = atoi(cxTextEdit20->Text.t_str()); ADOQuery2->Parameters->ParamByName("SYCS")->Value = 0; ADOQuery2->Parameters->ParamByName("SFRQ")->Value = DateTimeToStr(Now()); ADOQuery2->Parameters->ParamByName("JYNO")->Value = 0; ADOQuery2->Parameters->ParamByName("GZZID")->Value = 1; ADOQuery2->Parameters->ParamByName("SFLX")->Value = "G"; ADOQuery2->Parameters->ParamByName("CZY")->Value = OperatorName; ADOQuery2->Parameters->ParamByName("SCRQ")->Value = DateTimeToStr(Now()); ADOQuery2->ExecSQL(); ADOQuery2->Close(); */ beepofreaddll(readcomno, '10'); ShowMessage("挂失补发新卡成功!"); ADOQuery1->Close(); InDatabaseADOQuery->Close(); // this->Close(); } } } } } }
//--------------------------------------------------------------------------- void __fastcall TFormMain::Calendar1Change(TObject *Sender) { Caption = "Calendar Browser " + DateToStr(Calendar1->CalendarDate); }
//--------------------------------------------------------------------------- // Guarda en el fichero ema.cfg la configuracion presente en la ventana de configuracion. //--------------------------------------------------------------------------- void __fastcall TFConfigMeteo::BAjustes_MeteoClick(TObject *Sender) { if(Application->MessageBox("¿Desea guardar ajustes?", "ATENCION", MB_OKCANCEL ) == IDCANCEL ) { return; } strcpy(&ConfMeteo[0], "cfg:"); strncpy(&ConfMeteo[5], EKPluvio->Text.c_str(),3); strncpy(&ConfMeteo[9], ELimiteNubes->Text.c_str(),3); strncpy(&ConfMeteo[13], EOffset_Bar->Text.c_str(),3); strncpy(&ConfMeteo[17], EAltura_Bar->Text.c_str(),3); strncpy(&ConfMeteo[21], Ezener1->Text.c_str(),3); strncpy(&ConfMeteo[25], Ezener2->Text.c_str(),3); strncpy(&ConfMeteo[29], Ezener3->Text.c_str(),3); strncpy(&ConfMeteo[33], Ezener4->Text.c_str(),3); strncpy(&ConfMeteo[37], Ezener5->Text.c_str(),3); strncpy(&ConfMeteo[41], Ezener6->Text.c_str(),3); // strncpy(&ConfMeteo[45], EMinFichero->Text.c_str(),1); strncpy(&ConfMeteo[49], EOffset_IR->Text.c_str(),3); strncpy(&ConfMeteo[53], EOffset_UV->Text.c_str(),3); strncpy(&ConfMeteo[58], EKAnem_mec->Text.c_str(),3); strncpy(&ConfMeteo[62], EK1Anem_term->Text.c_str(),4); strncpy(&ConfMeteo[67], EK2Anem_term->Text.c_str(),4); strcpy(&ConfMeteo[80], TimeToStr(Time()).c_str()); strcpy(&ConfMeteo[90], DateToStr(Date()).c_str()); strcpy(&ConfMeteo[110], EDirectorio->Text.c_str() ); strcpy(&ConfMeteo[210], Ejpg->Text.c_str() ); strcpy(temp, dir_trab); strcat(temp, "ema.cfg"); if((conf_ema = fopen(temp, "wt")) != NULL) { fwrite(ConfMeteo, sizeof(ConfMeteo), 1, conf_ema); fclose(conf_ema); } //Refresca la matriz de configuracion con los nuevos datos confEMA.kpluvio = atoi(EKPluvio->Text.c_str()); confEMA.alerta_nube = atoi(ELimiteNubes->Text.c_str()); confEMA.bar_ofset = atoi(EOffset_Bar->Text.c_str()); confEMA.bar_altura = atoi(EAltura_Bar->Text.c_str()); for (int sens = 0; sens<6; sens++) // se actualiza Referencia { // Referencia[sens] = Ref[sens]; confEMA.RefZener[sens] = Ref[sens]; } confEMA.luzIR_ofset = atoi(EOffset_IR->Text.c_str()); confEMA.luzUV_ofset = atoi(EOffset_UV->Text.c_str()); confEMA.kmecanico = atoi(EKAnem_mec->Text.c_str()); confEMA.k1termico = atoi(EK1Anem_term->Text.c_str()); confEMA.k2termico = atoi(EK2Anem_term->Text.c_str()); strcpy(confEMA.direc_datos, EDirectorio->Text.c_str()); strcpy(confEMA.direc_jpg, Ejpg->Text.c_str()); }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------ // Блок действий с работой/доплатой //------------------------------------------------------------------------------ //===================================================================== // добавление/редактирование работы TWork* TController::addWork() { bool payment = false; // добавляется доплата или работа if(formWork->rgType->ItemIndex == 1) payment = true; //-------------------------------------------------------------------------- /* 1) проверяются, заполнены ли все поля */ if((Trim(formWork->edtNumber->Text) == "") || (Trim(formWork->memoTitle->Text) == "")) { ShowMessage("Не все поля заполнены!"); return NULL; } //-------------------------------------------------------------------------- // если добавляется доплата, смотрим, есть ли такая работа if(payment) { bool flag = false; // есть ли такая работа int wnum = 0; for(int i=0; i<selectedKHR->Works.size(); i++) { if(StrToInt(formWork->edtNumber->Text) == selectedKHR->Works[i]->ulWorkNum) { flag = true; wnum = i; } } if(!flag) { ShowMessage("Нет работы, к которой добавляется доплата."); return NULL; } else if (selectedKHR->Works[wnum]->havePayment && selectedWork == NULL) { ShowMessage("У этой работы уже есть доплата."); return NULL; } } else /* проверка на наличие такой работы */ { for(int i=0; i<selectedKHR->Works.size(); i++) { // собственный номер работы пропускается if((selectedWork != NULL) && (selectedWork->ulWorkNum == selectedKHR->Works[i]->ulWorkNum)) break; else if(StrToInt(formWork->edtNumber->Text) == selectedKHR->Works[i]->ulWorkNum && (!payment)) { ShowMessage("Работа с таким номером существует!"); return NULL; } } } //-------------------------------------------------------------------------- /* проверка правильности ввода дат начала и окончания */ if((int)formWork->dtStartDate->Date > (int)formWork->dtEndDate->Date) { ShowMessage("Работа не может начинаться раньше, чем заканчивается!"); return NULL; } //-------------------------------------------------------------------------- /* заполнение информации о работе */ TWork *newWork = new TWork; newWork->ulWorkNum = StrToInt(formWork->edtNumber->Text); if(payment) newWork->bPayment = true; else newWork->bPayment = false; newWork->szTitle = STR(formWork->memoTitle->Text); for (int i=0; i < formWork->sgWorks->RowCount; i++) { if(formWork->sgWorks->Cells[0][i] != "") { if(StrToInt(formWork->sgWorks->Cells[0][i]) != newWork->ulWorkNum) { if(Model->existWork(selectedKHR, StrToInt(formWork->sgWorks->Cells[0][i]))) { // добавить проверку на наличие такой работы в КХР TDependance *dep=new TDependance; dep->ulWork = StrToInt(formWork->sgWorks->Cells[0][i]); if(formWork->listReq->Items->Item[i]->Checked == true) dep->bNeedToStart = true; else dep->bNeedToStart = false; newWork->WorkDep.push_back(dep); } else { ShowMessage("Нет работы с номером, указанным в зависимости!"); delete newWork; return NULL; } } else { ShowMessage("У работы не может быть связь от самой себя!"); delete newWork; return NULL; } } } newWork->dtStart = StrToDate(DateToStr(formWork->dtStartDate->Date)); newWork->dtEnd = StrToDate(DateToStr(formWork->dtEndDate->Date)); newWork->ulLength = Model->numWorkDays(newWork->dtStart, newWork->dtEnd); newWork->center.x = workCoord.x; newWork->center.y = workCoord.y; /* в случае если происходит редактирование работы, её состояние и координаты должны сохраняться */ if(!formMain->AddOrEdit) newWork->eWorkState = selectedWork->eWorkState; else newWork->eWorkState = E_WS_OPEN; //-------------------------------------------------------------------------- /* 3) проверка на корректность связей: для доплаты проверка не производится */ if (formWork->cbCorrect->Checked == true && !payment) { if(!checkWork(selectedKHR, newWork)) { ShowMessage("Связи некорректны! "); delete newWork; return NULL; } } //-------------------------------------------------------------------------- /* 4) проверка на наличие исполнителей */ for (int i=0; i < formWork->sgVolume->RowCount; i++) { if(formWork->sgVolume->Cells[0][i] != "") //если строчка заполнена { // проверка на наличие исполнителя if(!Model->checkExecutor(selectedKHR, STR(formWork->sgVolume->Cells[0][i]))) { if(MessageDlg("Такого исполнителя: " + formWork->sgVolume->Cells[0][i]+ " - не существует! Добавить в список?", mtInformation, TMsgDlgButtons() << mbNo << mbYes , 7) == 7) { // нажата кнопка "Отмена" delete newWork; return NULL; } else { // добавление нового исполнителя в список Model->addExecutor(selectedKHR, STR(formWork->sgVolume->Cells[0][i])); TWorkVolume *vol = new TWorkVolume; int id = Model->executorByName(selectedKHR, STR(formWork->sgVolume->Cells[0][i])); vol->ulExecutor = id; for(int j=1; j<formWork->sgVolume->ColCount; j++) { if(formWork->sgVolume->Cells[j][i] != "") { if(StrToFloat(Trim(formWork->sgVolume->Cells[j][i])) != 0) { bool k = Model->checkQuart(j, newWork->dtStart, newWork->dtEnd); if(!k) { ShowMessage("Неправильно распределена трудоёмкость по кварталам!"); delete newWork; return NULL; } } vol->ulVolume[j-1] = StrToInt(formWork->sgVolume->Cells[j][i]); } else vol->ulVolume[j-1] = 0; } newWork->WorkVolume.push_back(vol); } } else { // исполнитель существует TWorkVolume *vol = new TWorkVolume; int id = Model->executorByName(selectedKHR, STR(formWork->sgVolume->Cells[0][i])); vol->ulExecutor = id; for(int j=1; j<formWork->sgVolume->ColCount; j++) { if(formWork->sgVolume->Cells[j][i] != "") { if(StrToFloat(Trim(formWork->sgVolume->Cells[j][i])) != 0) { bool k = Model->checkQuart(j, newWork->dtStart, newWork->dtEnd); if(!k) { ShowMessage("Неправильно распределена трудоёмкость по кварталам!"); delete newWork; return NULL; } } vol->ulVolume[j-1] = StrToInt(formWork->sgVolume->Cells[j][i]); } else vol->ulVolume[j-1] = 0; } newWork->WorkVolume.push_back(vol); } } } // установка связи доплаты с работой при редактировании доплаты if(payment) if(!formMain->AddOrEdit) { for(int i = 0;i < selectedKHR->Works.size(); i ++) { if(selectedKHR->Works[i]->ulWorkNum == newWork->ulWorkNum) { selectedKHR->Works[i]->havePayment = true; Model->addPayment(selectedKHR->Works[i], selectedWork); } if(selectedKHR->Works[i]->ulWorkNum == selectedWork->ulWorkNum) { selectedKHR->Works[i]->connectPayment.clear(); selectedKHR->Works[i]->havePayment = false; } } } // Изменение номера редактируемой работы у связанных с ней работ, доплат, вех if(!formMain->AddOrEdit) if(selectedWork->ulWorkNum != newWork->ulWorkNum) { vector <TWork*> workNext = Model->getNext(selectedKHR, selectedWork); vector <TWork*> workPrev; for(int t = 0; t < workNext.size(); t ++) for(int i = 0; i < selectedKHR->Works.size(); i++) if(selectedKHR->Works[i]->ulWorkNum == workNext[t]->ulWorkNum) { for(int j = 0; j < selectedKHR->Works[i]->WorkDep.size(); j++) if(selectedKHR->Works[i]->WorkDep[j]->ulWork == selectedWork->ulWorkNum) selectedKHR->Works[i]->WorkDep[j]->ulWork = newWork->ulWorkNum; } for(int i = 0; i < selectedKHR->Payments.size(); i++) if(selectedKHR->Payments[i]->ulWorkNum == selectedWork->ulWorkNum) selectedKHR->Payments[i]->ulWorkNum = newWork->ulWorkNum; for(int i = 0; i < selectedKHR->Stages.size(); i++) if(selectedKHR->Stages[i]->ulStageNum == selectedWork->ulWorkNum) selectedKHR->Stages[i]->ulStageNum = newWork->ulWorkNum; for(int i =0; i < selectedKHR->Connects.size(); i++) if(selectedKHR->Connects[i]->begin == selectedWork->ulWorkNum) selectedKHR->Connects[i]->begin = newWork->ulWorkNum; } /* проверки пройдены, работа включается в список новая работа => добавление */ if(formMain->AddOrEdit) { selectedWork = newWork; if(formWork->rgType->ItemIndex == 0) { selectedKHR->Works.push_back(newWork); Model->addConnections(selectedKHR, selectedWork); } else { // нужно изменить информацию о работе, к кот. добавляется доплата TWork* pwork = getWorkByNum(selectedKHR, newWork->ulWorkNum); pwork->havePayment = true; Model->addPayment(pwork, newWork); selectedKHR->Payments.push_back(newWork); } } else { newWork->center.x = selectedWork->center.x ; newWork->center.y = selectedWork->center.y ; Model->editWork(selectedWork, newWork); if(!selectedWork->bPayment) Model->addConnections(selectedKHR, selectedWork); coordClear(); delete newWork; } // clearSelected(); // ни работа, ни КХР не выбрана return selectedWork; }
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; }
//--------------------------------------------------------------------------- void __fastcall TDForm::FormCreate(TObject *Sender) { Label6->Caption = DateToStr(DateTimePicker1->Date.DateString()); Label7->Caption = DateToStr(DateTimePicker2->Date.DateString()); Label12->Caption = DateToStr(DateTimePicker3->Date.DateString()); }