سایت آموزشی فارسی

دوستان عزیز و کسانی که دنبال مقالات آموزشی کامپیوتر به زبان فارسی هستند سایت زیر می تونه کمک خوبی بهشون بکنه :

http://www.ostadonline.com/

سرفصل مطالب به شکل زیر است :

آموزشInternet
آموزشPhotoshop
آموزشHTML
آموزش مباحث پيشرفته در طراحي صفحات وب
ليست اسناد و منابع اينترنتي
آموزش متدولوژي و تكنولوژي صفحات وبCIW
آموزشJava&Active-x
آشنايي با مفاهيم واصطلاحات اينترنتي
مفاهيم پايه فن آوري اطلاعات
آموزشWord
آموزشPower-Point
مقدمه اي بر ويروسها و برنامه هاي مخرب
آشنايي باAccess
كدنويسي باJava-Script
آموزشExcel-2000
آموزش مهارت رفتاري
آموزش شبكه هاي بي سيم
آموزشFront-Page
آموزشFlash-mx
آموزشWindows-XP
آموزش CSS


سایت های زیر هم مطالب خوبی دارن ولی انگلیسی هستند :

http://www.w3schools.com/

http://www.trainingtools.com/

راهنماي ارتقا به سيستم‌عامل ويندوز ويستا

ماهنامه شبکه

 
شايد در نگاه اول حتي فكر اين‌كه بخواهيد سيستم‌عامل فعلي خود را به ويستا ارتقا دهيد نيز بسيار دشوار باشد؛ چرا‌كه ممكن است شما را به ياد دردسر‌هايي بيندازد كه هنگام نصب نسخه‌هاي قبلي ويندوز با آن‌ها سرو‌كله زده‌ايد، اما اصلاً نبايد نگران باشيد. نصب ويستا بسيار آسان‌تر و سريع‌تر از نصب نسخه‌هاي قبلي ويندوز است. البته هيچ‌گاه ارتقاي فوري سيستم‌عامل كنوني خود به ويستا را پيشنهاد نمي‌كنيم. ممكن است بتوان دلايل زيادي را براي اين‌كار آورد؛ نظير ناسازگاري نرم‌افزارها و سخت‌افزارهاي فعلي با نسخه‌ جديد، كه لزوم به دست‌آوردن اطلاعات بيشتر را در اين رابطه اجتناب‌ناپذير مي‌كند، اما شايد صبر دسته‌اي از كاربران هم به سر آمده باشد و بخواهند سريع‌تر نسخه جديد ويندوز را تجربه كنند. در اين مقاله به بررسي راه‌هاي ارتقا به ويستا مي‌پردازيم و به ترفندها و كارهايي اشاره خواهيم كرد كه بايد در رابطه با اين كار انجام داد. البته براي تجربه كردن ويستا راه‌حل ديگري نيز در اختيار كاربران قرار داده شده است:‌ اين‌كه، قبل از نصب و پيش از اين‌كه اكس‌پي يا ساير داده‌هاي پي‌سي شما از ويستا متأثر شوند، ويستا را در يك محيط آزمايشي تجربه كنيد! اين ويژگي به شما امكان مي‌دهد بدون‌ آن‌كه واقعاً ويستا را نصب كنيد، بتوانيد به تمام بخش‌هاي آن مراجعه كنيد تا به‌درستي با اين سيستم‌عامل آشنا شويد. بنابراين اگر آماده‌ايد، با هم به دنياي جديد ويستا قدم مي‌گذاريم. به طور حتم قبل از هرچيز، از سادگي مراحل انجام كار شگفت‌زده خواهيد شد.

توضیحات بیشتر را در ادامه بخوانید :
ادامه نوشته

سونی اریکسون p1

موبايل پارسه || www.Mobile-Parse.blogfa.com

سونی اريکسون P1 :
سونی اريکسون P1 تلفن هوشمندی است که دارای سيمبين OS ، صفحه کليد QWERTY ، صفحه نمايشی لمسی TFT با وضوح QVGA و دوربين 3.2 مگاپيکسل با کانون اتوماتيک است . پردازشگر موجود در تلفن همانند مدل های M600 ،W950 ، P990 (٢٠٨ مگاهرتز) است .

بقیه مطالب را در ادامه بخوانید :

ادامه نوشته

سونی اریکسون k990

Sony Ericsson K990


این گوشی جدید که از سری سایبر شات سونی اریکسون است با نام K990 عرضه خواهد شد.

در این گوشی از یک صفحه نمایش بزرگ و لمسی استفاده شده است که وقتی قسمت D-Panel (در قسمت پایین گوشی)را به بالا هدایت کنید صفحه نمایش این گوشی به صورت خودکار نصف می شود و صفحه کلید نمایان شده و به تصور اشتباه بیننده مبنی بر عدم وجود صفحه کلید خط بطلان می کشد.

دوربین این گوشی به یک لنز Carl Zeiss مجهز شده است که قادر به ثبت تصاویر با کیفیت 6 مگاپیکسل می باشد.

نکته :اینکه در تمامی گوشی های سری سایبر شات سونی (K) از لنزها و فلاش های با کیفیت سونی که در دوربین های دیجیتال حرفه ای به کار می رود استفاده شده است.

مجموعه ای بی نظیر از آموزشهای تصویری اس کیو ال 2005 - sql server 2005

مجموعه ای از آموزشهای sql server 2005 همراه با لینک دانلود حتما در ادامه مطلب ببینید.
ادامه نوشته

آموزش sql server 2005

برای دوستانی که مایل به یادگیری مجموعه آموزشهای اس کیو ال 2005 بصورت فارسی هستند مجموعه زیر را پیشنهاد می کنم :

سرفصل مطالب را در ادامه بخوانید :



ادامه نوشته

فایلها و گروههای فایل filegroups

فايلهاي ايجاد شده براي بانك اطلاعاتي (Datafile و Logfile)

هر بانك اطلاعاتي در SQL Server 2005  حداقل از دو فايل ايجاد شده است : فايل داده (Data) و فايل log. فايل داده شامل داده ها و اشيايي مانند جداول ، stored procedures,Indexes و views ها است. Log شامل اطلاعاتي است كه براي بازيابي تمام عمليات صورت گرفته روي بانك مورد نياز است . فايل داده را مي توان براي اهداف مديريتي و تعيين فضاي ذخيره اطلاعات در چند filegroup گروه بندي كرد.

 

 

Database Files

بانك هاي اطلاعاتي SQL Server 2005  داراي سه نوع فايل است كه در جدول زير آمده است :

فايل

شرح

Primary

اين فايل شامل اطلاعات Startup بانك اطلاعاتي و بقيه فايلهاي بانك اطلاعاتي مي باشد.  اطلاعات اصلي و اشياء بانك اطلاعاتي مي تواند در اين فايل و فايل Secondary ذخيره گردد.هر بانك اطلاعاتي يك فايل Primary دارد. پسوند پيش فرض نام فايل براي اين فايلها mdf است

Secondary

اين فايلهاي داده اختياري هستند.با قرار دادن اين فايلها روي درايوهاي مختلف مي توان فايلهاي يك بانك را روي چندين ديسك پخش كرد. در ضمن اگر حجم بانك اطلاعاتي ما از ماكزيمم حجمي كه يك فايل در ويندوز مي تواند داشته باشد بزرگتر شود مي توان از اين فايلها استفاده كرد. پسوند پيش فرض نام فايل براي اين فايلها ndf است .

Transaction Log

اين فايلها شامل اطلاعات Log است كه براي بازيابي بانك اطلاعاتي مورد استفاده قرار مي گيرد.هر بانك اطلاعاتي حداقل يك فايل Log دارد. پسوند پيش فرض نام فايل براي اين فايلها ldf است .

 

براي مثال يك بانك ساده با نام Sales مي توانيم ايجاد كنيم كه شامل يك فايل Primary باشد كه همه اشياء و اطلاعات بانك اطلاعاتي در آن ذخيره شوند.و داراي يك فايل Log باشد كه شامل عمليات انجام شده روي بانك اطلاعاتي باشد.

به همين ترتيب يك بانك اطلاعاتي با نام Orders مي توانيم داشته باشيم كه شامل يك فايل Primary و پنج فايل Secondary باشد. و داراي چهار فايل Log باشد. در اين حالت داده ها و اشياء بانك اطلاعاتي بين شش فايل پخش مي گردد و تمام عمليات انجام شده در بانك در چهار فايل Log ذخيره مي شود.

به طور پيش فرض فايلهاي داده و Log در يك درايو و يك مسير قرار داده مي شوند. دليل اين كار اين است كه SQL Server را بتوان روي سيستمهاي با يك درايو اجرا كرد. اگر چه اين كار بهينه نيست . ما (مايكروسافت) توصيه مي كنيم كه فايلهاي داده و Log را روي ديسك هاي جداگانه قرار دهيد.

 

Filegroup ها

هر بانك اطلاعاتي داراي يك filegroup اوليه مي باشد.اين filegroup شامل فايل داده primary و هر فايل secondary ي مي باشد كه در filegroup  ديگري قرار نگرفته باشد. Filegroup هاي ديگري را مي توانيم ايجاد كنيم تا توسط آنها فايلها را دسته بندي كنيم. اين دسته بندي اعمال مديريت فايلها را آسانتر مي كند.

براي مثال سه فايل Data1.ndf, Data2.ndf و Data3.ndf را مي توانيم روي سه درايو مختلف ايجاد كنيم و آنها را در يك filegroup به نام fgroup1 قرار دهيم. آنگاه يك جدول خاص را مي توانيم در fgroup1 ايجاد كنيم. خواندن و نوشتن اطلاعات در اين جدول روي سه درايو پخش مي شود كه اين كار سرعت را افزايش مي دهد. همين افزايش سرعت را مي توانيم با استفاده از يك فايل و تكنولوژي RAID بدست آوريم. اگر چه فايلها و filegroup ها به شما اجازه مي دهند كه فايلهاي جديد را به راحتي به ديسك جديد اضافه كنيد.

تمام فايلهاي بانك اطلاعاتي در filegroup هاي جدول زير ذخيره مي شوند.

Filegroup

توضيحات

Primary

اين filegroup شامل فايل داده Primary مي باشد. تمام جداول سيستمي در اين filegroup قرار مي گيرند.

User-Defined

هر filegroup ي كه توسط كاربر ايجاد مي گردد. چه در هنگام ايجاد بانك اطلاعاتي و چه بعدا هنگام ويرايش بانك اطلاعاتي.

 

Filegroup پيش فرض

تمام اشيائي كه در بانك اطلاعاتي مي سازم اگر به طور خاص filegroup آنها را مشخص نكنيم آنها در filegroup پيش فرض ايجاد مي شوند. در هر لحظه فقط يك filegroup را مي توانيم به عنوان filegroup

پيش فرض معرفي كنيم . فايلهاي درون filegroup پيش فرض بايد به اندازه كافي بزرگ باشند تا تمام اشياء جديدي كه ايجاد مي شوند را در خود جاي دهند. نام filegroup  پيش فرض PRIMARY filegroup است.

Filegroup پيش فرض مي تواند توسط دستور ALTER DATABASE اصلاح گردد. اشياء و جداول سيستمي بر روي PRIMARY filegroup باقي خواهند ماند حتي اگر شما filegroup ديگري را به عنوان filegroup پيش فرض معرفي كنيد.

SQL Server 2005 سرویسهای

 SQL Server 2005سرویسهای

 

Database Engine

Database Engine سرويس اصلي براي ذخيره سازي ، پردازش و امنيت اطلاعات مي باشد. این سرویس كنترل و اجراي اكثردستورات و تقاضاهاي شما را بر عهده دارد. اين سرويس همچنين وظيفه high availability را بر عهده دارد.

(high availability به معني اين است كه سرور شما هميشه در دسترس خواهد بود.)

Analysis Services

 

اين سرويس وظيفه پردازش تحليلي اطلاعات (OLAP) و استخراج اطلاعات (data mining) را از داده هاي موجود دارد. اين سرويس به شما اجازه مي دهد كه ساختارهاي چند بعدي شامل داده هاي جمع آوري شده از بقيه اطلاعات موجود را طراحي ، ايجاد و مديريت كنيد. Analysis Services برنامه هاي data mining را قادر مي سازد كه مدلهاي استخراج اطلاعات بصري را طراحي و ايجاد نمايند. اين مدلهاي استخراج اطلاعات مي تواند توسط گروه وسيعي از الگوريتمهاي استخراج اطلاعات مورد استفاده قرار بگيرند.

يك مثال ساده از كاربرد data mining :

فرض كنيم كه پليس 110 يك نرم افزار در اختيار دارد كه توسط آن آمار جرائم را نگهداري مي كند. در اين آمار، پليس اطلاعات مربوط به مكان و زمان وقوع جرم و نوع جرم مثلا دزدي را نگهداري مي كند. پس از مدتي پليس مي تواند اطلاعات مربوط به دزدي در يك مكان خاص را بررسي كند. مثلا پليس در بررسي و تحليل اطلاعات خود پي مي برد كه در فلان محله خاص بين ساعت 8 الي 10 صبح هيچ مورد دزدي گزارش نشده است بنابراين مي تواند نيروهاي خود را در آن زمان خاص در آن محله خاص كاهش داده و در جاي ديگري كه امكان وقوع دزدي بيشتر است استفاده كند.

 

Integration Services

اين سرويسها يك پلت فرم (مجموعه تكنولوژي) است كه راه حل هايي براي ايجاد يكپارچگي اطلاعات با سرعت بالا ارائه مي كند و شامل بسته هاي نرم افزاري پردازش extract, transform, and load (ETL) براي data warehousing است.

 

Replication

Replication مجموعه تكنولوژيهايي براي كپي اطلاعات و پخش اطلاعات و اشياء بانك اطلاعاتي از يك بانك اطلاعاتي به ديگري و سپس اعمال تغييرات همزمان بين دو بانك مي باشد. با استفاده از replication مي توانيد اطلاعات خود را بين مكانهاي مختلف و كاربران مختلف در هر جايي توسط شبكه هاي WAN و ارتباطات dial-up  و شبكه هاي بيسيم و اينترنت پخش كنيد.

 

Reporting Services

اين سرويس امكاناتي را براي ايجاد گزارش از بانك هاي اطلاعاتي مختلف در اختيارتان قرار مي دهد. گزارشهاي ايجاد شده توسط اين سرويس Web-enabled هستند و قابليت پخش روي انواع دستگاهها را دارند . شما مي توانيد اين گزارشات را با فرمتهاي مختلف (Excel و Word و PDF و Html و ...) ايجاد كنيد .

Notification Services

اين سرويس محيطي براي ايجاد برنامه هايي است كه پيامهايي را ايجاد و ارسال مي كنند. از اين سرويس مي توانيد براي ايجاد و ارسال پيامهاي شخصي و زمانبندي شده به هزاران يا ميليونها شخص يا دستگاههاي گوناگون استفاده نماييد.

Service Broker

اين سرويس به برنامه سازان كمك مي كند تا بتوانند برنامه هايي با مقياسهاي گوناگون و امنيت بالا توليد كنند. اين تكنولوژي جديد موتور بانكهاي اطلاعاتي ، يك پلت فرم ارتباطي بر اساس فرستادن پيام (message-based communication platform) را ارائه مي كند كه امكان اجراي كارها را به صورت كاملا مستقل از كامپوننت هاي برنامه ها فراهم مي سازد. اين سرويس شامل زيربنايي (ساختاري) براي نوشتن برنامه هاي غير همزمان (asynchronous ) روي يك بانك اطلاعاتي ، يك instance و همچنين برنامه هاي پخش شده (distributed) مي باشد.

 

Full-Text Search


 هنگامی که بخواهید یک کلمه یا متنی را در یک فیلد متنی جستجو کنید . و در query خود از like  استفاده کرده باشید این سرویس به شما کمک می کند تا query  شما سریع تر اجرا شود.

نسخه هاي SQL Server 2005

نسخه هاي SQL Server 2005

 

1 - SQL Server 2005 Enterprise Edition (32-bit and 64-bit)

اين نسخه براي نيازهاي زير طراحي شده است :

1 – سيستم هاي OLTP خيلي بزرگ (منظور سيستمهايي كه همزمان حدودا 100000 كاربربه آن وصل هستند)

(OLTP = Online Transaction Processing)

2 – سيستم هايي كه بايد داده هاي خيلي پيچيده را آناليز و پرداژش كنند.

3 – سيستم هاي Data Warehouse

4 – سيستم هاي وب (Web Sites)

 

2 - SQL Server 2005 Standard Edition (32-bit and 64-bit)

اين نسخه براي سازمانهاي كوچك و متوسط طراحي شده است. داراي امكانات پايه براي تجارت الكترونيك و Data Warehouse نيز هست .

3 - SQL Server 2005 Workgroup Edition (32-bit only)

اين نسخه براي سازمانهايي است كه يك نسخه SQL Server  مي خواهند كه محدوديتي در تعداد كاربر و بانك اطلاعاتي نداشته باشد .

 

4 - SQL Server 2005 Developer Edition (32-bit and 64-bit)

اين نسخه داراي تمام امكانات نسخه Enterprise Edition مي باشد ولي فقط براي شركتهاي برنامه نويسي مورد استفاده قرار مي گيرد كه بتوانند سيستم هاي نوشته شده خود را تحت SQL Server تست كنند.

 

5 - SQL Server 2005 Express Edition (32-bit only)

اين نسخه مجاني است و با Visual Studio 2005 به صورت مجاني ارائه مي شود.

دات نت در دلفی Delphi.Net

این هم یک سایت خوب برای کسانی که دوست دارند با دلفی دانت کار کنند. البته حتما می دونید که بورلند با ارائه آخرین ورژن دلفی codegear rad studio 2007  با پشتیبانی از دات نت 2 و دات نت 3 . زمینه خوبی برای برنامه نویسی .net  در دلفی را بوجود آورده.

http://www.aspxdelphi.net

معرفی چند کامپوننت

Component
در اینجا فقط بهترین Component معرفی میشوند (البته این نظر شخصی من هست)

  • JEDI
    بسیاری از برنامه نویسان برای برنامه های حرفه ای خود از این Component استفاده کرده اند. به دلیل Open Source بودن توسط Borland مورد حمایت قرار گرفته است.

  • Indy
    بهترین گزینه برای کسانی که میخواهند برنامه نویسی شبکه انجام دهند.

  • DelphiX
    ابزاری نسبتا قوی برای کار با DirectX

  • KOL
    این مجموعه به برنامه نویس این امکان را میدهد که بتواند در دلفی EXE کم حجم تولید کند و این بخاطر استفاده از Library های است که تماما از Assembly استفاده شده  .

  • SUIPack
    یک ابزار پر قدرت برای قرار دادن و ساختن Skin در برنامه.

  • ALice
    یک روبات هوشمند و حاضر جواب (Source Delphi)

  • ZLPortIO
    قوی ترین ابزارها  برای ارتباط با پورت سریال (Serial Port) ، که برروی تمام Windows ها قابل استفاده است.

  • kbmMEMTABLE
    اگر میخواهید که یک Memory Table در برنامه درست کنید میتوانید از این ابزار که به صورت Open Source میباشد استفاده کنید.

  • EasyTable
    به وسیله این Component میتوانید  بانک اطلاعاتی (Database) ایجاد کنید که Engine آن در داخل برنامه میباشد.

  • llPDFLib
    یک Component قوی برای  خواندن  و ساختن PDF ، 

  • KDTele Tools
    این ابزار قوی ترین برنامه برای کنترل Telephony هست به وسیله این Component میتوانید پیغامگیر ، منشی تلفنی ، و حتی تلفن پاسخگو درست کنید.

  • MiTeC System Information
    Component فوق العاده برای نمایش کامل اطلاعات سیستم  CPU  ، RAM , HARD  و ...

  • TMAGRAS
    با این Component که به صورت Free است میتوانید RAS و RAS Admin را کنترل کنید. در Sample این ابزا یک Dialup Manager بسیار قوی وجود دارد که براحتی میتوانید تمام Connection ها را کنترل کنید.

  • ZipTV
    Componentی پر قدرت برای فشرده سازی . به وسیله این Component به راحتی میتوانید یک برنامه شبیه Winzip بنویسید. و از  Zip ,Tar , Microsoft Cabinet , Lha/Lzh , GZip , JAR , RAR , ARJ , ACE , Zoo   پشتیبانی میکند

  • GExperts
    این ابزار میتوانید قدرت IDE (محیط کار Delphi) را بالا ببرید.

  • Disk Controls
    بهترین Component برای دیسک و Folder .

  • HashLib!
    ابزاری قدرتمند و سریع برای انواع Hash کردن.

  • Core Lab
    مجموعه ODAC, SDAC, MyDAC که دسترسی مستقیم به بانک اطلاعاتی (Direct Access) به Oracle ,MySQL و SQL Server فراهم میکند.

  • EldoS Components Pack
    این Component به صورت یک مجموعه (Patck) میباشد و بیشتر کامپونتت ها برای Interface هستند ، توصیه میکنم از این کامپوننت استفاده کنید.

  • RAIZE COMPONENTS
    این Component یکی از قویترین مجموعه های برای تغییر ظاهر برنامه میباشد.

  • DIHtmlParser
    ا
    ین کامپوننت همونجوری که از اسمش پیداست برای تفکیک فایلهای HTML بکار میرود با این ابزار میتوانید TAG های HTML را Filter کنید.

  • FTDI’s D2XX USB Drivers for Delphi
    یک مجموعه خوب برای کار بر روی USB

  • ZipMaster
    این کامپوننت برای مدیریت فایلهای Zip است و Open Source

دانلود fastreport 4.5

اینم لینک دانلود جدیدترین ورژن fastreport

http://rapidshare.com/files/82417716/FastReport4.5.rar



آموزش fastreport

کتاب آموزشی fastreport به زبان فارسی که البته برای افراد مبتدی مناسب است . من خودم با fastreport زیاد کارکردم و در تمام برنامهام برای گزارش سازی از این کامپوننت استفاده می کنم بنظر من کاملترین و راحتترین گزارش ساز هست .



EBook آموزش Fast Report :
EBook آموزش Rave Report :
_

http://www.parsaspace.com/nabegheh//Learning/FastReport.rar

آموزش triggerدر Sql Server 2000

قسمت دوم:

ایجاد و مدیریت تریگرها:

تریگرها معمولاً با استفاده از Query Analyzer یا گزینه های موجود در Enterprise Manager ایجاد و مدیریت می شوند. یک تریگر با استفاده از عبارت Create Trigger ایجاد می شود. در فرآیند ایجاد تریگر، تریگر بر روی یک جدول یا دید اعمال می شود، بعد از اینکه تریگر ایجاد شد، با استفاده از عبارت Alter Trigger می توان آن را تغییر داد. با استفاده از رویه های ذخیره شده سیستمی یا Enterprise Manager می توان تریگرها را تغییرنام داده و مشاهده کرد. از عبارت Drop Trigger برای حذف یک تریگر استفاده
می شود و از عبارت
Alter Table برای فعال یا غیرفعال کردن تریگرها استفاده می شود.

ایجاد تریگر:

عبارت های اصلی عبارت Create Trigger را می توان به صورت زیر خلاصه کرد:

Create Trigger trigger_name

ON table_name or view_name

FOR {INSERT,UPDATE,DELETE}

[WITH ENCRYPTION]

AS transact_sql statements

عبارت Create Trigger:

برای ایجاد تریگر با استفاده از عبارت Create Trigger نام تریگر، بعد از این عبارت قرار می گیرد. در تریگر نمی توان نام پایگاه داده را به عنوان یک پیشوند به نام شیء اضافه کرد بنابراین با استفاده از عبارت USE database_name و کلمه کلیدی GO قبل از ایجاد تریگر پایگاه داده را انتخاب نمائید. GO باید بیان شود چون Create Trigger باید اولین عبارت یک دسته پرس و جو باشد.

مجوز پیش فرض برای ایجاد تریگرها به طور پیش فرض در دست صاحب جدول می باشد.

برای مثال برای ایجاد یک تریگر به نام Alerter در پایگاه داده BookShopDB می توان از کد زیر استفاده نمود.

USE BookShopDB

GO

Create trigger alerter

عبارت ON:

تریگرها را باید به یک جدول یا یک دید تخصیص داد. از عبارت ON استفاده کنید تا به تریگر بگویید بر کدام جدول یا دید اعمال شود.

مثال:

Create Trigger alerter

ON employees

یک تریگر فقط بر یک جدول یا دید اعمال می شود. اگر باید همان تریگر را بر جدول دیگری اعمال کنید، یک تریگر با نام دیگری ایجاد کنید که حاوی همان منطق باشد. سپس تریگر جدید را بر جدول دیگر اعمال کنید. After (گروه پیش فرض تریگر) را می توان فقط بر یک جدول اعمال کرد. گروه تریگر جدید یعنی Instead of را می توان هم بر جدول و هم بر دید اعمال کرد.

عبارت های For, After, Instead of:

وقتی تریگر ایجاد می شود، نوع رویداد تریگر باید مشخص شود. رویدادهی معتبر شامل Insert, Update, Delete می باشند. یک تریگر می تواند به د لیل رخداد یک، دو یا هر سه رویداد برانگیخته شود. اگر می خواهید یک تریگر در صورت رخداد همه رویدادها برانگیخته شود Insert, Update, Delete را بعد از عبارتهای For, After یا Instead of بیاورید. رویدادها می توانند به هر تریبی لیست شوند. برای مثال برای اینکه یک تریگر به نام Alerter در صورت بروز همه رویدادها برانگیخته شود، می توان از کد زیر استفاده کرد:

Create Trigger alerter

ON employees

FOR insert,update,delete

عبارت For با عبارت After مترادف است. بنابراین کد قبلی یک تریگر از نوع After ایجاد می کند.

عبارت With Encryption: 

این گزینه برای پنهان کردن محتویات یک تریگر استفاده می شود. این گزینه کاربر را از به کارگیری sp_helptext به منظور مشاهده محتویات تریگر منع می کند. تحت این شرایط، کاربران قادر به انتخاب ستون های نوع Text از جدول Syscomments نخواهند بود. (برای مثال دستور SELECT text FROM syscomments WHERE name=tablename را نمی توان به کار گرفت)، زیرا متون رمزگذاری شده اند.

عبارت AS:

پس از این عبارت مجوعه ای از دستورات SQL ذکر می شوند.

?نکته:

برخی از فرمانها را نمی توان از طریق تریگرها به اجرا درآورد. این دستورات عبارتند از:

Create, Drop, Grant, Revoke. در مقابل دستورات Select into, Truncate table, Alter table, Alter database, Update Statistics, Reconfigure, Load Database, Load Transaction و کلیه دستورات مربوط به DISK دستورات معتبری هستند.

مثال:

این مثال نحوه ایجاد یک تریگر را نشان می دهد وقتی یک Insert, Update یا Delete بر جدول Employees رخ می دهد، تریگر یک Email را به کاربری به نام BarryT می فرستد.

USE BookShopDB

GO

CREATE TRIGGER alerter

ON employees

AFTER INSERT, UPDATE, DELETE

AS

EXEC master..xp_sendmail ‘BarryT’,

‘A record was just inserted, update or deleted in the employees table.’

GO

مدیریت تریگر:

تریگرها اشیاء پایگاه داده ای قدرتمند هستند که وقتی یک جدول یا یک دید تغییر می کند به طور خودکار اجرا می شوند. از چندین دستور و ابزار پایگاه داده ای برای مدیریت تریگرها استفاده می شود.

تریگرها را می توان:

ü با استفاده از Alter Trigger تغییر داد.

ü با استفاده از رویه ذخیره شده سیستمی sp_rename تغییر نام داد.

ü با پرس و جوی جداول سیستمی با استفاده از رویه های ذخیره شده سیستمی sp_help trigger و یا sp_helptext مشاهده کرد.

ü با استفاده از عبارت Drop Trigger آن ها را حذف کرد.

ü با استفاده از عبارتهای Disable Trigger و Enable Trigger (موجود در عبارت Alter Table) فعال یا غیرفعال کرد.

تغییر و تغییرنام تریگرها:

برای تغییر یک تریگر، می توان آن را حذف کرده و دوباره ایجاد کرد. راه دیگر، استفاده از عبارت Alter Trigger می باشد. ساختار عبارت Alter trigger شبیه به ساختار
Create Trigger می باشد. اما Alter Trigger، تریگر را از جداول سیستمی Syscomments و Sysobjects حذف نمی کند. مثال زیر نشان می دهد که چگونه می توان Alter را تغییر داد تا فقط به روز رسانی های جدول Employees را گزارش دهد:

Alter Trigger alerter

ON employees

AFTER UPDATE

AS

EXEC master..xp_sendmail ‘BarryT’,

‘A record was just hupdated in the employees table.;

GO

توجه داشته باشید که Update تنها رویدادی است که بعد از عبارت AFTER آمده است و این که متن موجود در پیغام Email نیز تغییر کرده است.

تغییر نام یک تریگر:

برای تغییر نام یک تریگر از رویه سیستمی ذخیره شده sp_rename استفاده می شود.

مثال زیر نحوه تغییر نام تریگر Alerter به EmpAlerter را نشان می دهد.

Sp_rename @objname=alerter, @newname=empaleter

مشاهده، حذف و غیر فعال کردن تریگرها:

وقتی یک رویه ذخیره شده ایجاد می شود، نام آن و سایر اطلاعات شناسایی آن درجدول سیستمی Sysobjects پایگاه داده جاری ذخیره می شوند.متن موجود در تریگر در جدول سیستمی Syscomments ذخیره می شود. عبارت Select زیر تمامی تریگرهایی را نشان می دهد که بر جداول پایگاه داد BookShopDB اعمال شده است.

Select * from BookShopDB.sysobjects where type=’tr’

ستون Type همیشه تریگرهایی را لیست می کند که دارای مقدار tr باشند.

نمایش خصوصیات یک تریگر:

برای نمایش خصوصیات یک تریگر از رویه سیستمی sp_help استفاده می شود.

برای مثال برای نمایش خصوصیات تمامی تریگرهای تعریف شده برای جدول Employees، کد زیر را تایپ کنید:

Sp_helpTrigger @tbname=employees

نمایش متن موجود در یک تریگر:

برای اینکه اطلاعات با سازماندهی بیشتری نمایش داده شوند، از رویه ذخیره شده سیستمی sp_helptext استفاده کنید. برای مثال برای نمایش متن موجود در تریگر با نام Alerter عبارت زیر را تایپ کنید:

Sp_helptext @objname=alerter

حذف تریگر:

حذف یک تریگر آن را از جدول سیستمی Syscomments و Sysobjects حذف می کند. از عبارت Drop Trigger می توان برای حذف یک یا چند تریگر استفاده نمود. اگر یک جدول یا یک دیدِ دارای تریگر را حذف کنید، تمام تریگرهای تخصیص داده شده به جدول یا دید نیز حذف خواهند شد.

برای حذف Alerter از پایگاه داده BookShopDB کد زیر را تایپ کنید.

USER BookShopDB

DROP Trigger alerter

غیرفعال کردن تریگرها:

ممکن است بخواهید یک تریگر یا تریگرهای مربوط به یک جدول را غیرفعال سازید. بری مثال وقتی که می خواهید مشکل یک پایگاه داده را عیب یابی کنید یا تغییرات یک پایگاه داده را بررسی کنید یا رویه ای را ایجاد کنید که در آن صورت تریگر موجود بر یک جدول باید غیر فعال شود. برای غیرفعال کردن یک تریگر از عبارت Alter Table استفاده کنید. کد زیر تریگر Alter را در جدول Employees غیر فعال می کند.

Alter Table employees Disable Trigger alerter

برای غیرفعال کردن همه تریگرهای موجود در یک جدول، بعد از عبارت Disable Trigger از کلمه کلیدی All استفاده کنید. برای فعال کردن یک یا همه تریگرها در عبارت Alter table، Disable را به Enable تغییر دهید.

آموزش تریگر در Sql Server 2000

قسمت اول:

تریگرها: 

از آنجا که تریگرها دسته هایی از فرامین SQL مرتبط به هم را مورد استفاده قرار می دهند، شبیه به رویه های ذخیره شده هستند. با این وجود، تریگرها تنها هنگام درج، بهنگام سازی، و حذف داده ها اجرا می شوند.

پیش از این تریگرها برای تأمین جامعیت ارجاعی در بانک اطلاعاتی استفاده می شدند. اما اکنون SQL Server دارای محدودیتهای کلید اصلی و خارجی است که تقریباً نیاز به استفاده از تریگرها را برای تأمین جامعیت ارجاعی مرتفع می کند. با این وجود، هنوز در برخی از مواقع می توان به خوبی از مزایای تریگرها بهره گرفت.

تریگرها مجموعه ای از دستورات SQL هستند که به هنگام رویدادUpdate, Insert, Delete اجرا می شوند. هر جدول از بانک اطلاعاتی می تواند حداکثر سه تریگر داشته باشد. (داشتن تریگر برای جدول الزامی نیست).

به عنوان مثال جدول Author می تواند شامل سه تریگر زیر باشد:

Authors_ti: تریگر درج، که هنگام عمل درج در جدول Authors اجرا می شود.

Authors_tu: تریگر بهنگام سازی، که در اثر بهنگام سازی جدول Authors اجرا می شود.

Authors_td: تریگر حذف، که هنگام حذف داده ای از جدول Authors اجرا می شود.

گسترش جامعیت داده ها با استفاده از تریگرها:

کیفیت یک پایگاه داده بر حسب سازگاری و صحت و درستی داده های موجود در آن پایگاه داده سنجیده می شود.

تریگرها به شما امکان می دهند تا رویه ای بنویسید تا به هنگام تغییر داده های جدول بر اثر اعمال دستورات Insert, Update, Delete برانگیخته شوند. یک تریگر را می توان بر یک جدول یا یک View اعمال کرد. از تریگرها برای اعمال قوانین تجاری بر یک پایگاه داده استفاده می شود. برای مثال، یک قانون تجاری تعریف شده برای پایگاه داده BookShopDB به صورت زیر است: وقتی یک کتاب به سفارش اضافه می شود، در فهرست انبار به عنوان کالای فروخته شده علامت گذاری می شود.

یک تریگر که بر جدول BookOrders اعمال شده است می تواند به هنگام درج یک سفارش کتاب برانگیخته شود. منطق تجاری موجود در تریگر، کتاب را در جدول Books قرار داده و کتاب را به عنوان فروخته شده علامت گذاری می کند.

از تریگردر موارد زیر استفاده می شود:

ü تغییرات باید در جدول مرتبط به هم در پایگاه داده به صورت آبشاری اعمال شود، برای مثال برای جدول orders یک تریگر ایجاد کرده و اعمال می نمایید تا وقتی سفارش وارد می شود تعداد موجود در جدول Inventory تغییر پیدا کند. برای جدول inventory یک تریگر دیگر ایجاد کرده و اعمال می نمایید تا وقتی تعداد تغییر می کند، یک درخواست خرید به جدول Purchasing اضافه شود.

ü اگر پایگاه داده نرمالیزه نشده است (یعنی داده ها بیش از حد تکرار شده اند) می باید راه خودکار برای به روز در آوردن این داده های تکراری (که در چندین جدول وجود دارند) ارائه دهید.

ü اگر یک مقدار در یک جدول باید با یک مقدار غیر مشابه در یک جدول دیگر مقایسه شود.

اگر می خواهید پیغام هایی به دلخواه خود ایجاد کنید و یا می خواهید مدیریت خطای پیچیده داشته باشید.

محدودیت های تریگر:

تریگرها را نمی توان در یک جدول موقت یا سیستمی ایجاد کرد.

برای جداولی که جامعیت ارجاعی آبشاری Update On یا On Delete برای آنها تعریف شده است نمی توان تریگرهای Instead of delete یا Instead of update تعریف کرد.

رویدادهای تریگر:

سه رویداد به طور خودکار یک تریگر را بر می انگیزد: رویدادهای Update, Insert, Delete که بر روی یک جدول یا View رخ می دهند. تریگرها را نمی توان به طور دستی برانگیخت. نوع تریگرها با رویداد مطابقت دارد برای مثال می توان یک تریگر به روز رسانی ایجاد کرد تا وقتی که یک Update بر روی یک جدول رخ می دهد این تریگر برانگیخته شود. در یک تریگر می توان به چندین رویداد پرداخت. به این معنی که می توانید یک رویه ایجاد کنید که هم تریگر به روز رسانی (Update) و هم درج (Insert) باشد در تعریف یک تریگر رویدادها را می توان با هر ترتیبی لیست کرد.

نمونه های خاصی وجود دارد که وقتی یک رویداد به منظور تغییر یا حذف داده ها رخ
می دهد تریگر معادل را بر نمی انگیزد.

برای مثال عبارت Truncate Table، تریگرهای تعریف شده برای رویدادهای Delete را بر نمی انگیزد. یک ویژگی مهم تریگرها این است که تراکنش های غیر موفق به طور خودکار Rollback می کنند. از آنجاکه Truncate Table یک رویداد ثبت شده نیست نمی تواند Rollback کند در نتیجه نمی تواند تریگر مربوطه به Delete را برانگیزد. همچنین عبارت Writetext باعث برانگیخته شدن تریگرهای Insert یا Update نمی شود.

اجرای تریگر:

وقتی در یک جدول مقداری درج می شود یا به روز در می آید یک تریگر برانگیخته می شود این تریگر داده جدید یا تغییر داده شده را در یک جدول به نام Inserted ذخیره می کند. وقتی یک جدول حذف می شود باز هم یک تریگر برانگیخته می شود این تریگر، داده های حذف شده را در جدولی به نام Deleted ذخیره می کند. جدول در حافظه وجود دارد و از طریق دستورات Transact SQL از درون تریگر پرس وجو می شود. این توانایی، در عملکرد اثر تریگرها بسیار مهم و اساسی است چرا که وظیفه ای که درون تریگر قرار دارد پیش از اعمال تغییرات، داده های موجود در جداول Inserted یا Deleted را با داده های موجود در جداول تغییر داده شده مقایسه می کند.

دو نوع گروه تریگر در SQL Server 2000 وجود دارد:

Instead of و After.

تریگرهای Instead of کار برانگیخته شدن را کوتاه کرده و در مکان خود اجرا می شوند. برای مثال، یک به روز رسانی در جدولی که حاوی یک تریگر از نوع Instead of است باعث می شود به جای عبارت به روز رسانی، کد Transact SQL مربوط به تریگر اجرا شود.

چند تفاوت اساسی بین گروه های تریگر وجود دارد که در جدول زیر نشان داده شده اند:

ویژگی

Instead of

After

محل اعمال

به روی یک جدول یا یک دید تعریف می شوند

تعریف یک تریگر بر روی یک دید، انواع به روز رسانی هایی که یک دید می تواند پشتیبانی کند را افزایش می دهد.

بر روی یک جدول تعریف می شوند

درصورتی تغییرات دیدها باعث برانگیخته شدن تریگرهای After می شود که داده های جدول در پاسخ به تغییرات دید، تغییر داده شوند.

تعداد ممکن

بر روی جدول یا دید می توان فقط یک تریگر تعریف کرد

می توانید بر روی دیدها دیدهای دیگری تعریف کنید طوری که هر دید، تریگر Instead of خودش را داشته باشد

بیش از یک تریگر مجاز است

ترتیب اجرا

چون فقط یک تریگر بر روی یک جدول یا دید امکان دارد پس ترتیب معنا ندارد

می توان تعیین کرد کدام تریگر اول و کدام آخر برانگیخته شود. از رویه ذخیره شده سیستمی Sp_Settriggerorder برای تعریف اولین و آخرین تریگر استفاده نمایید. بقیه تریگرهای اعمال شده بر روی یک جدول به ترتیب تصادفی اجرا می شوند.

می توان هردو تریگر را به یک جدول اعمال کرد. اگر برای جدول هر دو گروه تریگر و یک سری محدودیت را تعریف کنید، ابتدا تریگر نوع Instead of برانگیخته می شود سپس محدودیتها پردازش می شود و بعد تریگرهای نوع After برانگیخته می شوند. اگر محدودیتها نقض شوند، کارهایی که تریگر نوع Instead of انجام داده است، Rollback 
می کنند. اگر محدودیت ها نقض شوند یا اگر رویدادهای دیگری رخ دهد که تغییرات جدول با موفقیت انجام نشود، تریگرهای نوع
After اجرا نمی شوند.

تریگرها می توانند تا 32 سطح عمق داشته باشند و می توانند به طور خودبازگشتی برانگیخته شوند.