Menyamakan Jam Komputer dengan MS SQL Server

Saya pernah mengalami suatu kejadian seperti ini, jam dan tanggal komputer client tidak sesuai dengan tanggal sekarang (mungkin baterei CMOS perlu diganti), akibatnya, tanggal surat jalan mundur dari waktu sekarang. Padahal nomor bukti surat jalan tersebut otomatis. Nah untuk masalah seperti ini, menyamakan jam komputer client dan server SQL terkadang diperlukan oleh program. 

Pertama-tama saya melakukan query untuk mendapatkan data jam dan tanggal ke server:

with AdoQuery1 do begin
    Close;
    SQL.Clear;
    SQL.Add('Select Convert(Varchar(10), GetDate(),111) ');
    Open;
end;

Perintah query diatas akan menghasilkan field seperti ini



Ektrak dua field diatas menjadi tahun, bulan, dan tanggal dan ubah menjadi tipe integer. Thn, Bln, Tgl adalah variabel bertipe Word

with AdoQuery1 do begin
    Thn :=  StrToInt(Copy(Fields[0].AsString,1,4));

    if copy(Fields[0].AsString,6,1) = '0' then
        Bln := StrToInt(copy(Fields[0].AsString,7,1))
    else
        Bln := StrToInt(Fields[0].AsString);

        if copy(Fields[0].AsString,9,1) = '0' then
             Tgl := StrToInt(copy(Fields[0].AsString,10,1))
        else
             Tgl := StrToInt( copy( Fields[0].AsString,9,2));
end;


Begitu juga dengan jam. Jam, Menit, Detik, dan Mili adalah variabel bertipe Word

with AdoQuery1 do begin
    Jam := StrToInt(Copy(Fields[1].AsString,1,2));
    Menit := StrToInt(Copy(Fields[1].AsString,4,2));
    Detik := StrToInt(Copy(Fields[1].AsString,7,2));
    Mili := StrToInt(Copy(Fields[1].AsString,10,2));
end;

Sekarang lakukan persiapan untuk menuliskannya ke Windows. NewDateTime adalah variabel bertipe TSystemTime. Deklarasikan pada bagian Var terlebih dahulu.

 FillChar(NewDateTime, SizeOf(NewDateTime), #0);

  NewDateTime.wYear := Thn;
  NewDateTime.wMonth := Bln;
  NewDateTime.wDay := Tgl;
  NewDateTime.wHour := Jam;
  NewDateTime.wMinute := Menit;
  NewDateTime.wSecond := Detik;
  NewDateTime.wMilliseconds := 0;


Tulis ke Windows:

SetLocalTime(NewDateTime);

Menyamakan Jam Komputer dengan MS SQL Server Rating: 4.5 Diposkan Oleh: Good Dreamer

0 comments:

Posting Komentar

Diberdayakan oleh Blogger.