كيف يمكن الحصول علي تاريخ ووقت السيرفر فى شبكة محلية
تاريخ ووقت Server
السلام عليكم...
أضف تعريفات الأنواع التالية تحت عبارة type في القسم interface
type
TIME_OF_DAY_INFO = record
tod_elapsedt : DWord;
tod_msecs : DWord;
tod_hours : DWord;
tod_mins : DWord;
tod_secs : DWord;
tod_hunds : DWord;
tod_timezone : LongInt;
tod_tinterval : DWord;
tod_day : DWord;
tod_month : DWord;
tod_year : DWord;
tod_weekday : DWord;
end;
PTIME_OF_DAY_INFO = ^TIME_OF_DAY_INFO;
LPBYTE = ^Byte;
NET_API_STATUS = DWord;اكتب التصريح التالي في القسم interface أو القسم implementaion
function NetRemoteTOD(HostName: PWideChar; Buffer: LPBYTE): NET_API_STATUS;
stdcall; external 'netapi32.dll' name 'NetRemoteTOD';
{$EXTERNALSYM NetRemoteTOD}اكتب الدالة التالية في القسم implementation
function GetRemoteDateTime(Host: WideString): TDateTime;
var
TOD: PTIME_OF_DAY_INFO;
begin
if NetRemoteTOD(pWideChar(Host), @TOD) = 0 then
Result := EncodeDate(TOD^.tod_year, TOD^.tod_month, TOD^.tod_day) +
EncodeTime(TOD^.tod_hours, TOD^.tod_mins, TOD^.tod_secs, TOD^.tod_hunds * 10)
- TOD^.tod_timezone / 60 / 24
else
Result := 0;
end;للحصول على التاريخ و الوقت نقوم باستدعاء الدالة السابقة بإحدى طريقتين:
procedure TForm1.Button1Click(Sender: TObject);
var
SrvDate: TDateTime;
begin
// من الحاسوب المحلي
SrvDate := GetRemoteDateTime('');
// من حاسوب آخر على الشبكة
SrvDate := GetRemoteDateTime('\\computer_name');
Edit1.Text := DateTimeToStr(SrvDate);
end;حيث computer_name هو اسم الحاسوب الذي نريد قراءة التاريخ و الوقت منه. إذا لم يكن ذلك الحاسوب موجوداً أو لم يتم تأسيس اتصال معه فإن الدالة تعيد 0، أي تاريخ 30/12/1899.
نرجو الاستفادة و السلام.
وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ
صدق الله العظيم
شكرا اخي الحبيب علي اهتمامك وسرعة الرد وجزالك الله خيرا
حسب السيرفير الذي تعمل عليه ونوع قاعدة البيانات
بالنسبة لي عند التعامل في مثلهذه الحالات أضع تريكرز في جدول موجود على السيرفير عند التعامل مع قواعد بيانات فير بيرد
يضمن هذا التريكرز تابعين هما
current_time
current_date
أحصل على الإجابة بكل سهولة وسرعة
حكمت سراج الدين
السلام عليكم...
نعم... كانت إجابتي السابقة على أساس أن المقصود بالـ Server هو أي حاسوب آخر على الشبكة بصرف النظر إن كان يحتوي على محرك قواعد بيانات أم لا.
أما للحصول على الوقت و التاريخ من خلال محرك قواعد بيانات، فكما قال الأخ hikmat حيث يعتمد على نوع قاعدة البيانات. بالنسبة إلى SQL Server يمكن استعمال Query يتكون من الجملة التالية:
SELECT GETDATE() AS CurrentDateTime
نرجو الاستفادة و السلام.
وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ
صدق الله العظيم