احتساب ايام العطل او الدوام بين تاريخين

Posted by admin | Posted in SQL server | Posted on 30-12-2009

Tagged Under :

منذ اسبوع احتجت الى سكريبت لاحتساب ابام الدوام بين تاريخين فوجدت عندي سكريبت يقوم بهذا الاحتساب لكنه يعتمد على ان ايام العطل هي السبت والاحد ولحسن الحظ كان هذا مناسبا وكافيا  لما احتاجه ومضطر عليه ذلك الوقت  .

لكن في هذا اليوم ساقدم لكم سكريبت ابسط بحيث يمكن اختيار ايام العطل بشكل مختلف (وهذا السكريبت بالاعتماد على  التدوينة   Get Date of All Weekdays or Weekends of the Year ) وهذا هو السكريبت

 

DECLARE @StartDate DATETIME, @EndDate DATETIME

SELECT @StartDate = '20100101' --اول تاريخ
SELECT @EndDate   = '20100131' --آخر تاريخ 
;WITH cte AS (
SELECT 1 AS DayID,
@StartDate AS FromDate,
DATENAME(dw, @StartDate) AS Dayname
UNION ALL
SELECT cte.DayID + 1 AS DayID,
DATEADD(d, 1 ,cte.FromDate),
DATENAME(dw, DATEADD(d, 1 ,cte.FromDate)) AS Dayname
FROM cte
WHERE DATEADD(d,1,cte.FromDate) < @EndDate
)

SELECT FromDate AS Date, Dayname
FROM CTE
WHERE DayName IN ('Friday','Saturday')
OPTION (MaxRecursion 370)

حيث يقوم هذا السكريبت بعرض ايام العطل في شهر كانون الثاني /يناير (ايام العطل في هذا السكريبت هي الجمعة والسبت ويمكن تغييرها بسهولة من اخر جملة).

لعرض عددايام العطل  فقط نغير في  جملة Select  الاخيرة كمايلي :

SELECT Count(*)
FROM CTE
WHERE DayName IN ('Friday','Saturday')
OPTION (MaxRecursion 370)

 

لعرض عدد  ايام الدوام

SELECT Count(*)
FROM CTE
WHERE DayName not IN ('Friday','Saturday')
OPTION (MaxRecursion 370)

فكما نرى يمكن الاعتماد على هذا السكريبت في اخراج الايام المحددة كما نريدها وبسهولة .

ملاحظة : اذا كان الاحتساب لمدة طويلة اكبر من سنة() يجب زيادة OPTION (MaxRecursion 370)  الى رقم اعلى بحيث يكون اكبر من عدد الايام المتوقع .

كيفية تشغيل ملف تنفيذي من صفحة ويب .

Posted by admin | Posted in Asp.net | Posted on 21-12-2009

كنت قد عملت على مشروع سابق واحتجت فيه الى استخدام المسح الضوئي للوثالئق وقد قمت وقتها بالبحث عن حل مناسب لاستخدمه بواسطة ال Asp.net لكن لم اجد حلول مناسبة او وجدت بعض الادوات ولكنها مكلفة .لذا اضطررت لعمل برنامج عادي windows form وطلب هذا البرنامج من خلال صفحات الويب وبعد ذلك تحميل هذه الملفات. وقد استخدمت الكود  التالي والذي يمكن استخدامه لتشغيل اي ملف من جهاز الكلينت اذا تم اعطاء الصلاحيات المناسبة

<script type="text/javascript" language="javascript">
function runApp()
{
try
{
 var shell = new ActiveXObject("WScript.shell");
 shell.Run("file:///E:/Downloads/msgr9us.exe", 1, true);
}
catch(e) {

    alert("An exception occurred in the script. Error name: " + e.name
        + ". Error message: " + e.message);
}
}
</script>

 

ونضع الزر الذي سيقوم بالتشغيل

  <asp:button id="Button2" text="Open Web site" 
onclientclick="runApp();return false;" runat="server"   />

بعد ذلك يجب اعطاء الصلاحيات المناسبة للانترنت اكسبلورر لنتمكن من تشغيل هذا الملف وذلك عن طريق فتح خيارات الانترنت اكسبلورر ونعطي الصلاحيات كما في الصورة التالي :

Runexe

ارجو ان لكم الاستفادة من هذا الدرس .

خدمة Public DNS من شركة جوجل

Posted by admin | Posted in تكنولوجيا, مقالات تقنية وفنية | Posted on 04-12-2009

اطلقت شركة جوجل خدمة Public DNS  وكما هو معروف ان DNS هو ترجمة اسم موقع الانترنت الى رقم الآي بي مثل  http://www.msacom.net  الى 98.131.160.83 . حيث يمكن استخدام هذه الخدمة مجانا  كبديل عن الترجمة لمزود خدمة الانترنت ISP .

من اهم الميزات لهذه الخدمة كما تذكر :

1-سرعة اكبر في التصفح والسبب في ذلك ان سيرفرات جوجل موزعة في كل العالم وبالتالي الاستفادة من هذه الخدمة من اقرب سيرفر جغرافيا .

2-الامان والحماية حيث توفر هذه الخدمة الحماية من هجومات الانترنت من النوع

Spoofing attacks leading to DNS cache poisoning    و  Denial-of-service (DoS) attacks

للاستفادة من هذه الخدمة فقط نحتاج  الى تغيير ال DNS في الرواتر وفي اعدادات لسبكة للجهاز وتغيير ال DNS الى  8.8.8.8  وال Alternate  DNS الى 8.8.4.4

ويمكن مشاهدة هذا الفيديو حيث يشرح الطريقة

 

 

وموقع الخدمة هو  http://code.google.com/speed/public-dns/