Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ]Server İşletim Sisteminde Çalışan Windows Servis te is not a valid date Hata
#1
S.a 
Otomatik Yedekleme yapmak için Ufak bir Servis Yazıyorum
Servis Windows 7 ve Windows 10 Çalışıyor ancak aynı servisi Windows 2008 R2 Çalıştırdığımda
Servis içerisinde Stringten Tarihe Dönüşüm Yaptığımğım Satır

TDateTime TYedekleme_Tarihi = Now ();
TYedekleme_Tarihi          = StrToDate( '17.08.2019');


is not a valid date Hatası Veriyor
Server Tarih Ataması nasıl olmalı
Cevapla
#2
strtodate yerine encodedate fonksiyonu ile dener misin.
Cevapla
#3
Muhtemelen tarih formatı Windows ile server farklı özellikle kısa tarih formatına bakın
PostgreSQL - Linux - Delphi, Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#4
selamlar, aynı konu 2 gün önce benim başıma geldi. Windows 10 işletim sisteminde yapmış olduğum programda normal olarak çalışırken, server 2018 de çalışmadı program. Tarih sorgusunun devamına +'AM' veya da +'PM' kodunu da ekleyince sorunum tamamen çözülmüş oldu. Aşağıdaki şekilde deneyebilirsin. Ama serverin bölgesel ayarlarından kısa tarih ve uzun tarih ile saat ayarlarını iki haneli hale getirmeyi unutma..

if edit3.Text = '11:00:00 PM' then

  begin
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#5
(26-08-2019, Saat: 20:46)3ddark Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Muhtemelen tarih formatı Windows ile server farklı özellikle kısa tarih formatına bakın

Hem Server 2008 de hemde windows 7 
kısa tarih formatı gg.aa.yyyy
Uzun tarih formatı gg aaaa yyyy gggg
Her ikinsinde tarih formatı aynı
ayrı kodları vcl forma yapıştırıp server 2008 çalıştırdıgımda sorun olmuyor
Serviste neden hata veriyor anlayamadım

strtodate yerine encodedate fonksiyonu kullanmak istemiyorum 

Çünkü hem strtodate kullanımı daha basit 

Hemde strtodate strtotime servisin birçok yerinde kullandım



A.s Wiseman 


Yarın deneyip bilgi vereceğim inşaallah 
Cevapla
#6
Çünkü service olarak çalıştığındaki user ile vcl olarak çalışan user farklı . Muhtemeldir ki service olarak çalışırken kullandığı user in formatı farklı. Format settings. Shirtdatrformati setlersen sorunun çözülür. Hatta bunu bir alışkanlık haline getirmek icab eder ki sonradan sonradan ayrı ayrı ama aynı konu hakkında mülahazalara girmeyesin.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.
Cevapla
#7
(26-08-2019, Saat: 21:57)wiseman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.selamlar, aynı konu 2 gün önce benim başıma geldi. Windows 10 işletim sisteminde yapmış olduğum programda normal olarak çalışırken, server 2018 de çalışmadı program. Tarih sorgusunun devamına +'AM' veya da +'PM' kodunu da ekleyince sorunum tamamen çözülmüş oldu. Aşağıdaki şekilde deneyebilirsin. Ama serverin bölgesel ayarlarından kısa tarih ve uzun tarih ile saat ayarlarını iki haneli hale getirmeyi unutma..

if edit3.Text = '11:00:00 PM' then

  begin

(26-08-2019, Saat: 22:44)ahmet_sinav Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Çünkü service olarak çalıştığındaki user ile vcl olarak çalışan user farklı . Muhtemeldir ki service olarak çalışırken kullandığı user in formatı farklı. Format settings. Shirtdatrformati setlersen sorunun çözülür. Hatta bunu bir alışkanlık haline getirmek icab eder ki sonradan sonradan ayrı ayrı ama aynı konu hakkında mülahazalara girmeyesin.

Evet servis ile vcl form ayrı kullanicilarda çalışıyor
Yarın Format settings deneyeyim inşallah 
Yardımlarınız için allah razı olsun
Cevapla
#8
Sorunum Servis ile Çalıştığı System Kullanıcısının Tarih ayarları ingilizce olmasından kaynaklanıyormuş

TFormatSettings *FS = new TFormatSettings();
    FS->DateSeparator = '.';
    FS->ShortDateFormat ="dd.mm.yyyy";
    FS->LongDateFormat  ="dd.mm.yyyy hh:ss:nn";
    FS->LongTimeFormat  ="hh:nn:ss";
    FS->TimeSeparator   =':';

Bu Şekilde Çözdüm 
Yarımlarınlarınız için allah razı olsun
Cevapla
#9
İlave olarak connection nesnesi ile sql e bağlandıktan hemen sonra "set dateformat dmy" gibi bir sorgu ile o bağlantıda çalışan sorgularda kullanılacak formatı ayarlayabilirsiniz.
Cevapla
#10
DPR içerisinde aşağıdaki yöntemlerden biri kullanılabilir

procedure pr_SystemDateTimeStandart;
Var
 // Tarih/Saat Formatları Sistemden Bağımsız Düzeltmek için
 {$IF CompilerVersion >= 23}
    FormatSettings: System.SysUtils.TFormatSettings;
 {$ELSE}
    FormatSettings: TFormatSettings;
 {$IFEND}
begin
   Application.UpdateFormatSettings := False;
   {$IF CompilerVersion >= 23}
       FormatSettings := TFormatSettings.Create(LOCALE_SYSTEM_DEFAULT);
   {$ELSE}
       GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, FormatSettings);
   {$IFEND}
   FormatSettings.ThousandSeparator := ',';
   FormatSettings.DecimalSeparator  := '.';
   FormatSettings.DateSeparator     := '.';
   FormatSettings.TimeSeparator     := ':';
   FormatSettings.ShortTimeFormat   := 'hh:nn';
   FormatSettings.LongTimeFormat    := 'hh:nn:ss'; // 'hh:mm'
   FormatSettings.ShortDateFormat   := 'dd.mm.yyyy';
end;

initialization
Application.UpdateFormatSettings := False;
SysUtils.FormatSettings.ThousandSeparator := '.';
SysUtils.FormatSettings.DecimalSeparator := ',';
SysUtils.FormatSettings.DateSeparator := '.';
SysUtils.FormatSettings.TimeSeparator := ':';
SysUtils.FormatSettings.ShortDateFormat := 'dd.mm.yyyy';
SysUtils.FormatSettings.ShortTimeFormat := 'hh:nn';
SysUtils.FormatSettings.LongTimeFormat := 'hh:nn:ss';
SysUtils.FormatSettings.CurrencyString:='₺';
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Bu kodu çevirirken nerede hata yapıyorum ? seci20 14 1.482 08-10-2019, Saat: 17:39
Son Yorum: crypto
  Server-client üzerinden Web arayüze erişim SercanTEK 10 442 02-10-2019, Saat: 10:33
Son Yorum: bilsoft8b
  [ÇÖZÜLDÜ] Rapor Baskısında 0 değerleri yazılmasın wiseman 2 115 01-10-2019, Saat: 18:04
Son Yorum: wiseman
  [ÇÖZÜLDÜ] fast report dil hatası wiseman 6 237 25-09-2019, Saat: 14:29
Son Yorum: wiseman
  Aign:=alLeft kullanımındaki hata 41linea41 4 189 13-09-2019, Saat: 22:38
Son Yorum: 41linea41



Konuyu Okuyanlar: 1 Ziyaretçi