واحد پشتیبانی نرم افزار

نمونه اجرایی مبادله مکاتبات به گونه ECE

بهمن ۱۸م, ۱۳۸۸ دسته : متفرقه | ۳ دیدگاه »

در مقاله قبل سعی کردیم تا نگاهی عملیاتی به پروتوکول مبادله الکترونیکی مکاتبات یا ECE بیاندازیم.
در پی انتشار این مقاله که اولین مقاله عملی در این زمینه بشمار می رود ، تقاضاهای فراوانی از طریق ایمیل و همچنین پرسشهای متنوعی در زمینه چگونگی پیاده سازی آن بدستمان رسید.
لذا پس از بررسی موضوع در شرکت ، بر آن شدیم تا یک نمونه کامل از پیاده سازی را بصورت منبع باز در اختیارتان قرار دهیم.
شما می توانید یک برنامه کامل(شامل پروسه ارسال و دریافت) را از اینجا دانلود کنید:
tsa.ece.tester.rar
در مورد برنامه فوق ذکر نکات زیر الزامی است:
۱- این برنامه در دلفی ۶ نوشته شده و همانطور که می دانید مجموعه کامپاننتهای Indy نصب شده در این دلفی از SSL پشتیبانی نمی نمایند.برای آنکه بتوانید از Mail Server هایی استفاده نمایید که نوع Authentication آنها از نوع SSL می باشد (همانند gmail) باید ابتدا Indy 10 را در این دلفی نصب کنید و یا همین برنامه نمونه را در دلفی ۷ یا بالاتر باز نموده و اصلاحات لازم را بانجام رسانید.نمونه ای از کد کار در حالت SSL را می توانید در لینک زیر ببینید:
اینجا
۲- در بخش دریافت پیامها ، اگر نگاهی به کد بیاندازید ، تنها به رمزگشایی مکاتبات نوع Letter پرداخته ایم یعنی یک نامه رسمی و در مورد پیامهایی که از نوع رسید و یا Receipt می باشند تنها روش تشخیص آن در متن کد دیده می شود.بدیهی است که روش کار همانند Letter بوده و تنها کافیست با مطالعه مستندات ECE ، اسامی و کاربرد نودها و فیلدها را دانسته و جایگذاری نمایید.

۳- در بخش دریافت مکاتبات ، ابتدا پرونده های XML در مسیر Inbox از پوشه برنامه ، ذخیره می شوند ، سپس برای مشاهده مشخصات نامه دریافتی و همچنین Extract شدن تصویر نامه ، باید بر روی لیست فوقانی این بخش که از نوع FileListBox می باشد ، روی فایل مورد نظر دوبار کلیک کنید تا هم مشخصات نامه نمایش داده شود و هم پرونده حاوی تصویر و یا پیوست نامه Extract گردد.بعنوان نمونه یک پرونده XML در همین پوشه قرار دارد که می توانید اثر دوبار کلیک بر روی آنرا عملا مشاهده نمایید.

موفق باشید

پیاده سازی مبادله الکترونیک مکاتبات با استاندارد ECE

بهمن ۱۴م, ۱۳۸۸ دسته : متفرقه | ۵ دیدگاه »

تقریبا تمامی تولید کنندگان نرم افزارهای اتوماسیون اداری ، پس از ابلاغ معاونت راهبردی ریاست جمهوری مبنی بر انتخاب نرم افزارهایی که از پروتوکل ECE استفاده می کنند ، اقدام به پیاده سازی امکان تبادل مکاتبات به گونه ECE نموده اند.

اما بسیاری از شرکتهای کوچکتر ، هنوز در رویه پیاده سازی آن با مشکلاتی مواجه اند که اینموضوع ، عملا مبادله پبام با سایر نرم افزارهای اتوماسیون اداری را غیر ممکن ساخته است.

مستندات مربوط به این پروتوکل در سامانه http://www.ecep.ir بطور کامل وجود دارد.

در این مقاله سعی بر آنست که به پیاده سازی مرحله به مرحله روش مبادله ECE و مشکلات احتمالی بپردازیم.پلتفرم مورد بحث دلفی بوده لکن با اندک تغییرات ، قابل استفاده در ویژوال استودیو می باشد.

مقدمه:

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

۱- پروتوکول مورد بحث ، از بستر پست الکترونیکی نوع POP/SMTP استفاده می کند.بنابر این پیامها با استفاده از SMTP ارسال و مکاتبات دریافتی باید با استفاده از POP دریافت و بررسی و در صورت لزوم در دبیرخانه ثبت گردند.

۲- در پروتوکول ECE به ازای هر مکاتبه مورد نظر جهت ارسال ، یک پرونده XML با ساختار و شمای معرفی شده در مستندات ECE تولید می شود.این پرونده شامل مشخصات شناسنانه ای مکاتبه(شماره ثبت ، تاریخ ثبت ، موضوع نامه ، فوریت نامه، محرمانگی نامه ، فرستنده ، گیرنده/گیرندگان نامه) ، و همچنین متن نامه مورد نظر به قالبهای استانداری همچون doc یا docx یا pdf یا tif یا bmp یا jpg می باشد.ضمائم و پیوستهای نامه می تواند بصورت بخشی از نامه اصلی(که در ادامه تصویر نامه اضافه شده باشد) و یا با استفاده از پرکردن بخش Attachments از پرونده ECE با درنظر گرفتن مستندات ارائه شده ، در پرونده تولید شده XML درج گردند.

۳- پرونده XML تولید شده ، نهایتا با استفاده از SMTP Server ، به گیرنده/گیرندگان ، ایمیل می شود.

ابزارهای مورد نیاز:

۱- محیط برنامه سازی دلفی

۲- کنترل های ایمیل مربوط به پکیج Indy.این پکیج بطور پیشفرض در دلفی نصب شده و در قسمت Indy Clients از نوار کامپاننت دلفی در دسترس هستند.

۳- یک اکانت POP/SMTP Server: شامل Username و Password و POP Server Address و SMTP Server Address و پورتهای POP وSMTP .بعنوان نمونه برای تست می توانید از اکانت gmail استفاده کنید.اما توجه داشته باشید که سرویس POP/SMTP بطور پیشفرض در جیمیل فعال نیست و باید با ورود به بخش Setting گزینه مربوطه را فعال نمایید:

http://www.google.com/mail/help/images/screenshots/enable_pop/pop.gif

۴- یک نرم افزار ویرایشگر XML: یکی از بهترین نرم افزارها در این زمینه Oxygen XML Editor  می باشد که می توانید از لینک زیر دانلود نمایید:
http://rapidshare.com/files/322464135/O.x.y.g.e.n.X.M.L.E.d.i.t.o.r.v11.1.rar

مراحل پیاده سازی:

۱- تولید پرونده XML:


uses
xmldom,XMLIntf, msxmldom, XMLDoc,
SZCodeBaseX;

procedure CreateECEXMLDocument;

var

ms:TMemoryStream;

d,ns ,afc:WideString;

XMLDoc:TXMLDocument;

aln,aln2,aln3,an,ann:IXMLNode;

n,i:integer; sl:TStringList;

ss:TStringStream;

begin
XMLDoc:=TXMLDocument.Create(Self);

XMLDoc.Active:= True;

XMLDoc.version:= ‘1.0′;

XMLDoc.Encoding:=’UTF-8′;

XMLDoc.Options:=[doNodeAutoIndent];

ann:=xmlDoc.AddChild(’Letter’,”);

ns:=’http://www.irica.com/ECE/1383-12/SendSchema’;

ann.Attributes['xmlns']:= ns;
ann.Attributes['Any']:=”;

ss:=TStringStream.Create(”);
ms:=TMemoryStream.Create;


SZEncodeBase64(’c:\MYLETTER.TIF’,ss);

فرض آنست که تصویر نامه قبلا در c:\MYLETTER.TIF ذخیره شده است//

afc:=ss.DataString;


aln:=XMLDoc.ChildNodes.FindNode(’Letter’);

an:=aln.AddChild(’Protocol’,ns);

an.Attributes['Name']:=’ECE’;

an.Attributes['Version']:=’1.01′;

an:=aln.AddChild(’Software’,ns);


an.Attributes['SoftwareDeveloper']:=’G.A.M.A TSA Co’;

an.Attributes['Version']:=’7.1′;


an.Attributes['GUID']:=’9D4E9BE2-6573-412F-9AA0-4654A4901005′;

مقدار GUID توسط شرکت سازنده
بصورت اختیاری پر می شود و در حال حاضر مقدارآن اهمیتی ندارد //

an:=aln.AddChild(’Sender’,ns);

an.Attributes['Organization']:=’اداره کل منابع طبیعی سمنان‘;

an.Attributes['Department']:=’حوزه مدیریت‘;

an.Attributes['Position']:=’مدیر کل‘;

an.Attributes['Name']:=’مهندس …..‘;

an.Attributes['Code']:=’2322‘;

an.Attributes['Any']:=”;

an:=aln.AddChild(’Receiver’,ns);

an.Attributes['Organization']:=’سازمان جنگلها و مراتع کشور‘;

an.Attributes['Department']:=’اداره کل امور اداری‘;

an.Attributes['Position']:=’مدیر کل‘;

an.Attributes['Name']:=’جناب آقای
مهندس…..
‘;

an.Attributes['Code']:=’56433′;


an.Attributes['ReceiveType']:=’Origin’;

an.Attributes['Any']:=”;


an:=aln.AddChild(’OtherReceivers’,ns);

فرض بر آنست که این نامه تنها یک گیرنده داشته و لذا تنها یک تگ
OtherReceivers بدون فرزند ،
ایجاد می گردد.//

an:=aln.AddChild(’LetterNo’,ns);

an.Attributes['Any']:=”;

an.NodeValue:=’374321/21/الف‘;


an:=aln.AddChild(’LetterDateTime’,ns);


an.Attributes['ShowAs']:=’gregorian’;

an.Attributes['Any']:=”;

d:=solartochrists();


d:=StringReplace(d,’/',’-',[rfReplaceAll]);


d:=d+’T'+trim(LeftStr(TimeToStr(Now),5))+’:01′;

an.NodeValue:=d;

در خطوط فوق ابتدا تاریخ شمسی به میلادی تبدیل گردیده و سپس به فرمت
ISO 8601 تبدیل می گردد.//


an:=aln.AddChild(’RelatedLetters’,ns);

an:=aln.AddChild(’Subject’,ns);

an.NodeValue:=’تعیین تکلیف اراضی
اختلافی دامغان
‘;

an.Attributes['Any']:=”;

an:=aln.AddChild(’Priority’,ns);

an.Attributes['Name']:=’عادی‘;

an.Attributes['Code']:=’1′;

an.Attributes['Any']:=”;


an:=aln.AddChild(’Classification’,ns);

an.Attributes['Name']:=’عادی‘;

an.Attributes['Code']:=’1′;

an.Attributes['Any']:=”;

an:=aln.AddChild(’Keywords’,ns);

aln2:=aln.AddChild(’Origins’,ns);

an:=aln2.AddChild(’Origin’,ns);


an.Attributes['ContentType']:=’image/tiff’;


an.Attributes['Extension']:=’tif’;


an.Attributes['Description']:=’تصویر نامه‘;


an.Attributes['Any']:=”;

an.NodeValue:=afc;

اگر نامه شامل پیوست باشد ، خطوط زیر جهت درج پیوست در پرونده بکار می رود:


aln3:=aln.AddChild(’Attachments’,ns);

if assigned(ss) then ss.Free;


ss:=TStringStream.Create(”);


SZEncodeBase64(’c:\myAttach1.TIF’,ss);


afc:=ss.DataString;


an:=aln3.AddChild(’Attachment’,ns);


an.Attributes['ContentType']:=’image/tiff’;


an.Attributes['Extension']:=’tif’;


an.Attributes['Description']:=’تصویر پیوست‘;


an.Attributes['Any']:=”;


an.NodeValue:=afc;

ms.Free;

XMLDoc.SaveToFile(’c:\ece_test.xml’);

end;

همانطورکه در کد بالا مشاهده می شود ، پرونده نهایی در گردونه C بنام ece_test.xml ساخته می شود.توجه داشته باشید که پرونده های باینری مانند پرونده های doc و tif و …. باید به فرمت Base64 در فایل نهایی قرار بگیرند و بهمین منظور از یونیت SZCodeBaseX  و فانکشن SZEncodeBase64 آن استفاده شده است.این یونیت براحتی با جستجو در google قابل دانلود می باشد.

یک نمونه پرونده تولید شده با استفاده از تابع فوق از لینک زیر قابل دریافت می باشد:
ece_test.xml
2- ارسال پرونده از طریق ابمبل:

در مرحله بعد ، می توانید پرونده ece_test.xml تولید شده را که حاوی مشخصات شناسنامه ای نامه و تصویر آن می باشد ، با استفاده از پروتوکل SMTP و سرویس دهنده پست الکترونیکی (مثلا gmail) ارسال نمایید.

نکته مهم در ارسال نامه از طریق ایمیل آنست که برخی شرکتهای تولید کننده اتوماسیون اداری ، (مانند همکاران سیستم) اقدام به افزودن یک فیلد جدید به سرآیند (Header) پست الکترونیک می نمایند.این موضوع جهت شناسایی ایمیل ارسالی بعنوان یک مکاتبه الکترونیکی انجام شده و باعث می شود که گیرنده بتواند ایمیلهای دریافتی را که از نوع مکاتبه اداری با پروتوکل ECE هستند از ایمیلهای دیگر که ممکن است مکاتبه الکترونیکی نباشند تمییز دهد.گرچه افزودن این فیلد جدید (که در مستندات ECE بنام X-ECE_SEND و با مقدار ۱٫۰۱ تعریف شده است) بصورت یک عمل اختیاری(Optional) تعریف شده و نه اجباری ، لکن توصیه می شود برای سازگاری حداکثر با سایر اتوماسیونهای اداری ، این حوزه نیز به Mail Header اضافه گردد.

نمونه کد ارسال(شامل اضافه نمودن فیلد  X-ECE_SEND به Mail Header) بشرح  زیر می باشد:

Uses

IdBaseComponent, IdComponent, IdTCPConnection,IdTCPClient, IdMessageClient,IdPOP3, IdSMTP, IdHeaderList;

procedure SendByMail(mn:smallint;af:string);

var

ex:TIdHeaderList;

IdMsgSend:TIdMessage;

Begin

IdMsgSend:=TIdMessage.Create(Self);

IdMsgSend.MessageParts.Clear;

TIdAttachment.Create(IdMsgSend.MessageParts, ‘c:\ece_test.xml’);

ex:=TIdHeaderList.Create;

ex.Values['X-ECE_SEND']:=’1.01′;

with IdMsgSend do

begin

Body.Text:=’تصویر نامه به پیوست می باشد‘;

From.Text:=’info@tsa-co.ir’;

Recipients.EMailAddresses:=’ece@frw.ir’;

Subject:=’تعیین تکلیف اراضی اختلافی دامغان‘;

Priority:=TIdMessagePriority(mpHighest);

Headers.Add(’X-ECE_SEND: 1.01′);

SetExtraHeaders(ex);

end;

SMTP.UserID := ‘dp.semnan@frw.org.ir’;

SMTP.Password := ‘mypassword’;

SMTP.Host := ‘ mail.frw.org.ir’;

SMTP.Port := 25;

if not SMTP.Connected then SMTP.Connect;

SMTP.Send(IdMsgSend);

SMTP.Disconnect;

end;

اگر گیرنده را بصورت آزمایشی ، یک اکانت gmail تعریف کرده باشید ، با چک کردن ایمیل رسیده در gmail و سپس کلیک بر روی گزینه Show Orginal در آن ، می توانید اضافه شدن فیلد X-ECE_SEND  را ببینید.بعنوان نمونه:

….
….
….
Authentication-Results: mx.google.com; spf=neutral (google.com: 87.247.177.2 is neither permitted nor denied by best guess record for domain of dp.khuzestan@frw.org.ir) smtp.mail=dp.khuzestan@frw.org.ir
Message-Id: <4b672eba.1102be0a.1dd1.68a5SMTPIN_ADDED@mx.google.com>
Received: from UnknownHost [78.39.193.152] by mail.nedahosting.net with SMTP;
Mon, 1 Feb 2010 23:13:45 +0330
From: dp.khuzestan@frw.org.ir
Subject: Re:ECE 1388/11/12
To: gama@gmail.com
Content-Type: multipart/mixed; boundary=”=_NextPart_2rfkindysadvnqw3nerasdf”;
MIME-Version: 1.0
Date: Mon, 1 Feb 2010 23:12:20 +0330
X-Priority: 1
X-Library: Indy 8.0.25
X-ECE_SEND: 1.01
X-Cyberoam-Version: 9.6.0.62
X-Cyberoam-smtpxy-version: 1.0.7.0
X-Cyberoam-AV-Status: Clean
X-Cyberoam-Proto: SMTP
X-Cyberoam-AV-Policy: None
X-Cyberoam-AS-Policy: Global Spam Policy
….
….
….

This is a multi-part message in MIME format

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

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

http://tsa-co.ir/blogs/support/?p=69

چطور یک برنامه قابل حمل بسازیم!؟

مهر ۲۸م, ۱۳۸۸ دسته : متفرقه | بدون دیدگاه »

یک برنامه قابل حمل یا Portable Application(=پرتابل) برنامه ای است که به صورت مستقل و بدون نیاز به نصب در یک سیستم عامل اجرا شود و به درستی کار کند. معمولاٌ از این برنامه ها در حافظه های قابل حمل مانند CD و USB flash drive استفاده می شود. این روزها کاربران بسیاری با این برنامه ها آشنایی دارند و همیشه یکی دو جین از این نرم افزارها را روی کول دیسک خودشان به همراه دارند.

واژه “برنامه قابل حمل” نباید با “قابلیت حمل برنامه” اشتباه گرفته شود. منظور از “قابلیت حمل برنامه” یا Software Portability این است که سورس کد یک برنامه را بتوان برای پلت فرم های مختلف کامپیوتری کامپایل و بر روی آن ها اجرا کرد. برنامه های قابل حمل معمولاٌ برای تنها یک پلت فرم خاص ایجاد می شوند و در برخی مواقع حتی نیاز به پیش نیازهایی برای اجرا در همان پلت فرم دارند.

برنامه های قابل حمل برای این طراحی شده اند که :

  • بدون نیاز به نصب روی سیستم عامل، اجرا شوند
  • هیچ ردپایی از خود در سیستم عاملی که اجرا می شوند، باقی نگذارند
  • داده ها و تنظیماتشان را در کنار خودشان (حافظه قابل حمل) نگهداری کنند

پس شما برای اینکه یک برنامه قابل حمل بسازید باید شرط های زیر را رعایت کنید :

۱- یک فایل اجرایی از برنامه بسازید که در یک سیستم عامل خاص بدون نیاز به نصب فایل هایی خاص، اجرا شود و کار اصلی خودش را انجام دهد

برای این کار شما باید مطمئن شوید که برنامه شما برای اجرا به هیچ فایلی وابسته نیست، یا اگر وابسته است، از نوع فایل های ActiveX و DLLهای COM نیست! به این علت که این نوع فایل ها باید در سیستم عامل ویندوز کاربر ثبت شوند و معمولاٌ دردسر های زیادی با خود به همراه دارند. اگر فایل اجرایی برنامه شما به فایل های معمولی متنی یا نوع دار (مثلاً باینری) وابسته است، برای اجرا روی سیستم های مختلف مشکلی نخواهد داشت. در مورد وابستگی برنامه شما به یک دیتابیس هم باید به نوع فایل دیتابیس خود توجه کنید. دیتابیس های SQL Server را که به هیچ وجه منطقی نیست در برنامه های قابل حمل استفاده کنید، چون این نوع دیتابیس در برنامه های چندکاربره و تحت شبکه استفاده می شود. دیتابیس های Microsoft Access هم به علت وابستگی به یکسری فایل خاص ممکن است برنامه شما را برای اجرا با مشکل مواجه کند. بهترین انتخاب برای دیتابیس در یک برنامه قابل حمل SQLite خواهد بود. SQLite یک دیتابیس توکار است که هم سبک است و هم ساده و البته رایگان.

۲- برنامه شما هیچ تغییری در سیستم عامل کاربر یا فایل های سیستمی آن ندهد

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

البته در این مورد یک حالت خاص داریم، زمانی که برنامه قابل حمل برای تغییر قسمتی از سیستم عامل ساخته شده، مثلاً یک نرم افزار Registry Tweak یا یک برنامه برای حذف فایل های اضافی از روی سیستم عامل، که می توانید در این گونه موارد این شرط را رعایت نکنید و البته که کاربر از هدف اجرای نرم افزار شما آگاه است.

۳- تنظیمات و داده های احتمالی برنامه را در کنار خود برنامه ذخیره کنید

تنظیمات یک برنامه قابل حمل نیز باید قابل حمل باشد! این جمله بدین معنی است که اگر کاربر در یک سیستم عامل تنظیمات برنامه را تغییر داد، دفعه بعد و در یک سیستم عامل دیگر برنامه را با تنظیمات جدیدش (که در سیستم عامل قبلی تغییر داده) اجرا کند. پس نباید تنظیمات برنامه را در هارد دیسک های یک کامپیوتر ذخیره کرد (مگر اینکه برنامه از روی هارد دیسک اجرا شود)، بلکه باید در کنار برنامه (معمولاٌ فلش دیسک) ذخیره نمود. یادتان باشد که با توجه به قانون دوم، شما نباید تنظیمات برنامه خود را در رجیستری ویندوز ذخیره کنید. در این حالت بهترین راه ذخیره سازی تنظیمات در فایل های متنی با ساختار INI در کنار فایل اجرایی برنامه شماست.

csharpportable

نوشتن برنامه قابل حمل در پلت فرم دات نت

اکثر برنامه های نوشته شده با زبان های دات نتی پرتابل هستند! شاید بگویید که وابستگی به دات نت فریم ورک، پرتابل بودن نرم افزارهای نوشته شده در دات نت را نقض می کند. اما این تفکر شما اشتباه است. تمام نرم افزارهای پرتابل یک پیش نیاز دارند، آن هم پلت فرم اجراست. به طور مثال یک برنامه پرتابل فقط روی ویندوز اکس پی اجرا می شود. این پرتابل بودن این برنامه را نقض نمی کند، فقط پیش نیاز اجرا که همان پلت فرم است را مشخص می کند. در مورد دات نت نیز همینطور است. دات نت یک پلت فرم است که برنامه های نوشته شده توسط این فریم ورک برای اجرا به آن نیاز دارند. این به هیچ وجه پرتابل بودن برنامه های دات نت را نقض نمی کند.

پس در حالت عادی تمام نرم افزارهای تحت دات نت قابل حمل هستند. اگر یکی از شرط های بالا را نقض کنید، آن وقت برنامه دات نت خود را غیر قابل حمل کرده اید!

نوشتن برنامه قابل حمل در دلفی

در حالت عادی، برنامه های نوشته شده به این زبان، شرط اول را دارند. یعنی به فایل خاصی برای اجرا وابسته نیستند. کامپایلر دلفی کد Native تولید می کند، و به همین علت فایل اجرایی آن روی هر ویندوزی و بدون احتیاج به نصب اجرا می شود. مگر اینکه خود شما با وابسته کردن فایل اجرایی برنامه خود به کامپوننت خاصی، این شرط را نقض کنید. در دلفی شما فقط کافیست که دو شرط آخر را رعایت کنید تا یک برنامه پرتابل عالی ساخته باشید.

منبع:http://farasun.wordpress.com

آشنایی با ویندوز ۷ ، جدیدترین ویندوز مایکروسافت

مهر ۲۸م, ۱۳۸۸ دسته : متفرقه | بدون دیدگاه »
مقدمه

بعد از مدتها مایکروسافت، نسخه Windows 7 Ultimate beta Build 7000 خود را رسما در تاریخ جمعه ۹ ژانویه ۲۰۰۸ برای دانلود عمومی و تست در دو نسخه ۳۲bit ی به حجم ۲٫۴۳ GB و نسخه ۶۴bit ی به حجم ۳٫۱۵ GB منتشر نمود. فایل دانلود شده به صورت یک DVD Image و به فرمت ISO هست که به راحتی می‌توانید آن را به کمک هر برنامه‌ راینری همانند Nero برروی یک DVD رایت نمایید. این نسخه‌ها به دلیل بتا بودن و جهت تست کاربران به شکل مجانی از سایت مایکروسافت و در یک نسخه Ultimate قابل دریافت شدن هستند. مایکروسافت در این OS جدید نسبت به ویندوز Vista [و XP] (از لحاظ ظاهر، امکانات، مشکلات سخت‌افزاری و از همه مهم‌تر سرعت) تغییرات مثبتی داشته است. از سال ۲۰۰۰ و پس از ویندوز موفق XP قرار بود که این OS منتشر شود، اما به دلایل مختلف و مشکلات متعدد و همانند همیشه عجله بیل گیتس ویندوز Vista مشکلدار! را در سال ۲۰۰۶ منتشر نمود. اما به گفته مسولان مایکروسافت Windows 7 نسخه ارتقا یافته و بهینه شده Windows Vista هست که مشکلات آن را ندارد.بر خلاف تبلیغات زیاد برای Vista و فشار‌های آشکار و پنهان مایکروسافت بر شرکت‌های قطعه سازی و صنعت PC برای پشتیبانی ۱۰۰% از ویندوز ویستا در محصولات خود و ندادن درایور XP به همراه محصولات خود، سعی نمود که کاربران را به سمت ویستا بکشد. اما مشکلات متعدد سخت‌افزاری و نرم‌افزاری از یک سو و عطش زیاد ویستا برای مصرف بیهوده Resource کامپیوتر و کندی آن نسبت به XP در اکثر زمینه‌ها، سیاست‌ها و تبلیغات مایکروسافت را باطل نمود.

مکینتاش در نسخه جدید سیستم عامل خود با کلی امکانات گرافیکی و توانایی‌های جالب بسیار سریعتر و پایدارتر از ویندوز ویستا بود. همچنین در همین دوران بعضی از نسخه‌های جدید لینوکس هم پیشرفت‌های قابل توجهی نمودند و کاربران ناراضی ویندوز ویستا و حتی بعضی از کامپیوترسازان را به سمت خود جلب کردند (مانند لینوکس Ubuntu) مخصوصا که نسخه آخری مکینتاش قابل نصب روی PC هم بود و قرار است که کاملترین نسخه سازگار با PC خود را در سال ۲۰۱۲ بیرون بدهد!

به دلایل فوق و همچنین شکایت‌های مکرر کاربران از سرعت و مشکلات سازگاری ویندوز ویستا و رو آوردن مهم‌ترین متحدان سخت‌افزاری و کامپیوترسازی!! مایکروسافت مانند Dell به نصب Linux Ubuntu به جای ویندوز Vista برروی لپ تاپ‌های خود و حتی downgrade نموندن ویندوز ویستا به XP و خبرهای موفقیت سیستم‌ عامل‌های شرکت‌های دیگر، مایکروسافت را مجبور نمود که Windows 7 را بالاخره تولید و روانه بازار نماید.

تاریخچه

مایکروسافت پس از موفقیتی که در تولید ۲ سیستم عامل بسیار موفق خود یعنی Windows XP و Windows Server 2003 به دست آورد، تصمیم گرفت که پروژه جدید و بسیار متفاوتی را آغاز نماید. این پروژه جدید که یک سیستم عامل جدید بود در سال ۲۰۰۰ میلادی شروع شد و با Codename ی به نام Blackcomb چشم به دنیای مایکروسافت و محققان و برنامه نویسان آن گشود. پس از چند سال تحقیق و مطالعه مایکروسافت هدف خود را برای ساخت Blackcomb دقیقا مشخص نمود. این نوزاد باید دارای توانایی‌های جدیدی میبود که یکی از پیشرفته ترین و مهم‌ترین آنها تکنولوژی‌ به نام WinFS بود.در اوایل سال ۲۰۰۳ مایکروسافت پس از تاخیر کوتاهی که در پروژه پیش آمد نسخه کوچکی از Blackcomb را با Codename ی به نام Longhorn تولید نمود. در اواسط سال ۲۰۰۳ مایکروسافت لانگ هورن بخشی از توانا‌یی‌هایی که اساسا برای Blackcomb در نظر گرفته شده بود را به ارث برد. از جمله این توانایی‌های به ارث برده می‌توان به WinFS و Desktop Windows Manager و Component های جدید بر اساس Net Framwork. نام برد. (بعد ها بر اساس ویندوز لانگ هورن، ویندوز Vista تولید نهایی شد)

در تابستان ۲۰۰۳ که برای مایکروسافت به «تابستان کرم‌ها» مشهور شد، مایکروسافت شاهد حمله گسترده کرم‌ها (نوعی ویروس هستند) به تمامی سیستم عامل‌های خود شد. مشهورترین این ویروس‌ها Blaster و Sobig و Welchia بودند. به همین دلیل مایکروسافت تغییری در اولویت‌های خود دارد و پروژه لانگ هورن را موقتا متوقف نمود و شروع به ساخت Service Pack برای ویندوز‌های XP و Server 2003 نمود. مایکروسافت در سپتامبر ۲۰۰۴ پروژه لانگ هورن را از پایه دوباره شروع به کار نمود (reset نمود). تا اینکه در سال ۲۰۰۶ مهمترین featuresهای ویندوز Vista (نام نهایی لانگ هورن ) را کنار گذاشت و همچنین نام پروژه Blackcomb را به نام Vienna تغییر داد. با اینحال، مایکروسافت با توجه به تمامی این مسائل Windows Vista را منتشر نمود ولی در همان سال‌ها و در تاریخ ۲۰ Jun سال ۲۰۰۷ رسما اعلام نمود که «نام نسخه بعدی سیستم عامل، فعلا در درون کمپانی به Windows 7 خوانده می‌شود» این نام همانند همیشه چندین ماه قبل از این اعلام رسمی به بیرون درز نموده بود.

تا اینکه در تاریخ ۱۳ اکتبر ۲۰۰۸ Mike Nash نایب رئیس مدیر تولید مایکروسافت رسما نام Windows 7 را نام رسمی و نهایی پروژه Vienna نامید.

در ۱۶ اکتبر ۲۰۰۸ CEO مایکروسافت Steve Ballmer اعلام کرد که: «ویندوز ۷ مشکل سازگاری با سیستم عامل قبلی خود نخواهد داشت برعکس ویندوز Vista که اینچنین بوده!» و همچنین به این نکته اشاره کرد که «به دلیل رابطه‌ای که بین ویندوز ۷ و ویندوز ویستا هست (از لحاظ تاریخچه‌ای که عرض شد) در واقع ویندوز ۷ یک ویندوز ویستای بهبود یافته و بیشرفته خواهد بود.» در ۲۷ دسامبر ۲۰۰۸ اولین نسخه بتای ویندوز ۷ به بیرون درز کرد و بر اساس تست سایت ZDNet این ویندوز در بعضی از زمینه‌ها مهم از لحاظ سرعت از ویندوز XP و Vista بهتر بوده. این زمینه‌ها همانند، زمان Boot شدن و Shotdown ویندوز و سرعت کار با فایل‌ها و همچنین باز نمودن برنامه‌ها بوده.

مراحل نصب ویندوز ۷

مشخصات سیستم: پروسسور Intel 3GHz HT – 1MB Cache – FSB 800 – Socket 487 حافظه ۵۱۲MB*2 کارت گرافیک NVidia Gforce 5600 – 256MBحداقل حجم پارتیشن ‌قابل قبول برای نصب ویندوز ۷:
۸۳۰۱ MB

فضای اشغال شده پس از نصب ویندوز ۷:
۶٫۸۵GB

مدت زمان نصب ویندوز:
حدود ۲۰ دقیقه (بدون در نظر گرفتن زمان ورود اطلاعات و انتخاب گزینه‌ها)

مجموع مراحل مختلف زمان نصب(دستی و اتوماتیک):
۱۰ مرحله

مجموع دفعاتی که نیاز به تنظیمات کاربر می‌باشد:
۲ از ۱۰ مرحله

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

سرعت این ویندوز نسبت به ویندوز Vista بسیار بیشتر هست و از جهاتی همانند XP و در حالاتی هم مقدار خیلی کمی سریعتر هست. لطفا به تست سرعتی که در کامپیوتر خود در XP و ویندز ۷ انجام داده‌ام توجه نمایید. تقریبن می‌توان ویندوز ۷ را با تمام قدرت گرافیکیش هم سرعت XP و در حالاتی که حافظه شما بیش از ۱GB باشد کمی سریعتر از XP بدانید.به همین دلیل هم هست که ویندوز ۷ را می‌توان برروی سیستم‌های ضعیف که ویستا امکان نصب شدن برروی آنها را نداشته یا به سختی اجرا می‌شده، به راحتی نصب نمود. برای مثال Netbook ها که فقط برای شبکه گردی و کار‌های سبک دفتری همانند Microsoft Office استفاده می‌شوند به راحتی می‌توانند ویندوز ۷ را اجرا نمایند. (این NetBook ها از پروسسور جدید اینتل به نام Atom بهره می‌برند و اکثرن کار گرافیکشان Intel هست) خود ویندوز ۷ در سیستم‌های ضعیف تا حدود زیادی با حذف یکسری از توانایی‌های گرافیکی از پایین آمدن Performance کلی سیستم جلوگیری می‌کند. (همبنطور که در بخش تاریخچه اشاره شد، مایکروسافت برای انجام چنین کار‌هایی از Utility هایی در درون سیستم عامل جدید برای پایین یا بالا بردن تنظیمات جهت کنترل Performance استفاده می‌کند) شما هر زمان که خواستید می‌توانید از طریق فشار کلید‌های Win+Pause از کیبورد پنجره System را باز نموده و از پنل سمت چپ با انتخاب Advanced System Setting دیالوگ باکس System Properties را باز کرده و از تب Advanced برروی کلید Setting از کادر Performance کلیک نمایید:

با حذف همه یا تعدادی از گزینه‌های فوق می‌توانید سرعت عملکرد سیستم عامل را بازهم بیشتر افزایش دهید.

در همان پنجره System گزینه‌ای وجود دارد به نام Rate اگر برروی لینک مقابل آن کلیک نمایید به پنجره “Performance Information and Tools” وارد می‌شوید. در این پنجره به ۴ قطعه شما + توانایی اجرای بازی‌ها و برنامه‌ها ۳D امتیاز داده می‌شود، امتیازها از ۱ تا ۷٫۹ می‌باشند و ۷٫۹ یعنی بهترین بازدهی و سرعت. در سمت راست این جدول یک امتیاز بزرگ هم قرار دارد که به نام Base Score می‌باشد. این عدد میانگین امتیازات نیست بلکه کاربرد این امتیاز در انتخاب محصولات دیگر شرکت‌ها کاربرد دارد. برای مثال فرض کنید Base Score سیستم شما ۳٫۲ باشد اگر محصول شرکتی روی آن نوشته شده که برای سیستم‌هایی با Base Score 3 به بالا می‌باشد، شما می‌توانید با خیال راحت از برنامه آن شرکت استفادده نمایید.

اگر درایور جدیدی نصب نمودید یا قطعه جدیدی را اضافه نمودیدی، لازم هست که یک بار سیستم امتیاز دهی را Refresh نمایید. برای مثال امتیاز قطعات من را می‌توانید در شکل زیر مشاهده نمایید:

آنالیز تست‌های سرعت فوق این را به ما می‌گوید که ویندوز ۷ سرعتی معادل XP دارد و در جاهایی حتی سریع تر هم بوده است. در جاهایی که زمان تست ویندوز ۷ بیشتر از XP شده احتمالا به دلیل کم بودن حافظه سیستم من می‌باشد. در هر صورت اگر سرعت ویندوز ۷ بالاتر از XP نباشد تقریبا برابر آن هست.

شناسایی سخت افزارها و درایور ها در ویندوز ۷

بر خلاف ویندوز Vista و XP این ویندوز اکثر قطعات را شناسایی کرده و درایور آنها را نصب می‌نماید. به خصوص در ویندوز ۷ شبکه به شکل بسیار بهتر و راحتتری شناسایی و قابل تنظیم می‌باشد. در کامپیوتر من پس از نصب ویندوز XP کارت صدا و شبکه شناخته نمی‌شدند ولی در ویندوز ۷ هر دوی آنها را به خوبی شناخت! دیگر دوستان نیز در تست‌هایشان به همین نتیجه رسیدند.

کارت‌های گرافیک با چیپ Nvidia اصلا نگران درایور برای کارت خود نباشند! با تعاملی که بین کمپانی Nvidia و Microsoft صورت گرفته (و کلاس بالایی که Microsoft برای Nvidia گذاشته) شما می‌توانید درایور چنین کارت‌هایی را از طریق آپدیت مایکروسافت به حجم ۳۰ MB دانلود نمایید. به اعلام خود سایت Nvidia توجه نمایید. اگرچه همانند همیشه! درایور مایکروسافت برای اجرای بازی‌ها بدون مشکل نیست! اما اگر شما آخرین درایور کارت گرافیکتان را برای ویستا ندارید یا قصد بازی ندارید می‌توانید از همان نسخه مایکروسافت استفاده نمایید.

برنامه ها و ویندوز ۷

تقریبا اکثر برنامه‌ها بر روی ویندوز ۷ اجرا می‌شوند. بعضی از آنها هم که به درستی اجرا نمی‌شوند را می‌توان به روش‌هایی اجرا نمود. البته هستند برنامه هایی که به هیچ وجهی اکنون اجرا نمی‌شوند و در سایت‌شان هم اشاره شده که تا آمدن نسخه Release Candidate 1 از Windows 7 این OS را پشتیبانی نمی‌کنند!به کمک دو روش زیر برنامه‌هایی که امکان اجرا شدن نداشتند را ممکن هست بتوانید اجرا نمایم:
۱) قبل از نصب برنامه، بر روی فایل Setup.exe کلیک راست نمایید و از منو گزینه Run as Administrator را انتخاب نمایید.
۲) پس از نصب برنامه، کلیک راست برروی فایل اجرایی یا Shortcut برنامه و انتخاب گزینه Run as Administrator.
3) پس از نصب برنامه، کلیک راست برروی فایل اجرایی یا Shortcut برنامه و انتخاب Properties و رفتن به تب Compatibility و انتخاب یک یا ترکیبی از گزینه‌های پنجره زیر.

فارسی نویسی در ویندوز ۷

برای نوشتن فارسی در ویندوز ۷ کافیست که به: Control Panel\Change Keyboard or …\Keyboard and Language\Change Keyboards… رفته و برروی کلید Add کلیک کرده و به قسمت Pesian\Keyboard رفته و تیک Persian را روشن نمایید. پس از این می‌توانید فارسی تایپ نمایید. اما بعضی از حروف کیبورد جابه‌جا می‌باشند. مثلا کلید پ به جای ژ رفته و جای آن را این علامت ÷ گرفته. همچنین نیم فاصله دیگر برروی Shift+Z نیست و … برای رفع این مشکل خوشبختانه برنامه Keyboard Layout Manager نسخه ۲٫۹۲ در ویندوز ۷ کار می‌کند.

محیط ویندوز ۷ به روایت تصویر

اولین چیز‌هایی که توجه یک کاربر XP حتی Vista را به خود جلب می‌کرد تفاوت Taskbar آن بود! تا جایی که در یکی از سایت‌ها یکی از کاربران حرفه‌ای Mac در مقاله‌ای توانایی‌ها و قدرت این taskbar جدید ویندوز ۷ را با Taskbar زیبا و قدرتمند Mac مقایسه نموده بود و توانایی و قدرت Taskbar ویندوز را ستایش نموده‌ بود! (آخه اون‌ها خیلی نصبت به Mac تعصبی هستند!!) اولین نکته در Taskbar جدید، حذف Quick Lunch و Task Manager از Taskbar و ادغام بسیار هوشمندانه هر دوی آنها در هم و اضافه نمودن خاصیت Group similar taskbar buttons به آنها به علاوه چند توانایی زیباتر و بسیار مفید که جای آن در XP خیلی خیلی خالی بود و همواره نبود آن مشکلی برای من بود! (در ادامه خواهم گفت!)

به شکل پیش فرض ۳ عدد Shortcut برروی Taskbar قرار داده شده است که به غیر از Start Menu عبارتند از:

Internet Explorer 8 beta و Windows Media Player 11 را که همه می‌شناسند اما Library دیگر چیست!؟ این همان چیزی است که از زمان XP غیبتش به شکلی احساس می‌شد. در ادامه نکات مثبت آن را عرض خواهم نمود.

خوب حالا این آیکن‌ها چه فرق و وانایی‌هایی نسبت به Quick Lunch دارند. در حالت عادی این آیکون‌ها به شکل صاف (Flat) بوده ولی اگر روی آنها کلیک نمایید به شکل برجسته در آمده و پنجره آنها باز می‌شود. ولی با اجرا شدن برنامه‌شان نام برنامه در Task manager به نمایش در نخواهد آمد!؟ اگر شما نشانگر موش خود را برروی آیکن برنامه ببرید می‌توانید thumbnail پنجره یا پنجره‌های باز آن برنامه را مشاهده نمایید. حالا اگر مثلا ۴ تا پنجره از IE را باز نمایید Thumbnail همه آنها بالای سر همان یک آیکن IE قرار می‌گیرند. به این شکل در حجم Taskbar صرفه جویی می‌شود. البته می‌توان با تنظیمات Taskbar نام هر برنامه را کتار آیکنش قرار داد یا حتا به حالت XP تغییر شکل داد.

همچنین اگر شما هر پنجره‌ای از Windows Explorer را باز نمایید همانند Computer یا پارتیشن‌ها و … Thumbnail آنها در بالای آیکن Library قرار می‌گیرد. اما نکته مثبتی که قبلا به آن اشاره نمودم در این نسخه ویندوز این هست که، از این پس Dialog Box ها هم در Taskbar و در مجموعه بالای سر آیکن Library به نمایش در خواند آمد. در حالی که قبلا ما نمی‌توانستیم آنها را در Taskbar ببینیم و اگر به پشت پنجره‌ها رفته بودند باید همه یا تعدادی از آنها را Minimize می‌کردیم تا به آنها برسیم.

از کاربرد‌های دیگر Taskbar جدید، فرض کنیم چندین پنجره باز هستند و پنجره مورد نظر ما در زیر آنها قرار دارد. حالا می‌خواهیم به آن نگاهی انداخته ولی نمی‌خواهیم آن را به جلو بیاوریم، کافیست برروی آیکن گروه آن در Taskbar رفته و با به نمایش در آمدن Thumbnailهای آن آیکن، نشانگر موش را روی Thumbnail آن برنامه برده. با اینکار همه پنجره ها به شکل شیشه‌ای در آمده و فقط پنجره اصلی نمایش داده می‌شود ولی جای آن تغییر نمی‌یابد.

همچنین با Right Click نمودن برروی آیکن‌ها می‌توانید Recent Opening files های آن را مشاهده نمایید:

سوالات، نکات و … خود را در مورد برنامه فوق را در این تاپیک قرار دهید.

نویسنده مطلب: IgImAx (آدرس سایت)
لینک این مطلب در فوروم پرشین تولز

آموزش SQLserver (بخش هشتم)

مهر ۴م, ۱۳۸۸ دسته : متفرقه | بدون دیدگاه »

ایجاد کردن Check Constraint

شناخت Check Constraint
یکی از مهمترین بازرسی های طراحی پایگاه داده یکپارچه سازی داده ها می باشد. قاعده یکپارچگی داده ها تضمین می کند که داده های ایجاد شده در پایگاه داده اگر درست نباشد حداقل قابل قبول می باشد. چندین سطح از یکپارچگی داده ها وجود دارد. در درس ۷ ما درباره یکپارچگی رابطه ای مطالعه کردیم که تضمین می کند اجتماع بین جداول ایجاد و به طور صحیح نگهداری می گردند.
Check Constraintsبرای اجرای دو فرم اضافی از یکپارچگی پایگاه داده استفاده می شود. domain Integrity و entity Integrity . در اصطلاحات رابطه ای که Domain محدوده ای از مقادیری است که یک ستون می تواند داشته باشد. نوع داده های یک ستون یکی از ویژگیهای از یک Domain می باشد، اما تعریف نوع داده معمولاً کافی نیست. برای مثال، یک ستون Smallint می تواند شامل مقادیر صحیح از ۷۶۸/۳۲- تا ۷۶۷/۳۲ می باشد که ممکن نوع داده مناسبی برای یک ستونی که شامل سالی است که یک کارمند مدرک دانشگاهی را در دریافت می کند باشد. اما حدود اصلی مقادیر ستون Year Degree Awarded بیشتر محدود شده و بین ۱۹۰۰ و سال جاری می باشد. شما از یک Check Constraints استفاده می کنید، برای تخمین اینکه هیچ کس به طور واقعی مقادیر ۱۵۴۳ یا ۲۰۷۵ را به عنوان مقدار ستون وارد نمی کند. Entity Integrity Constraints جامعیت از موجودی خودش را اجرا می کند. مهمترین محدودیتهای یکپارچگی موجودیت آن است که هر موجودیت Entity Integrity باید به طور واحد قابل شناسایی باشد. این محدودیت به وسیله مشخص کردن یک کلید اصلی برای جدول انجام می گیرد. یکپارچگی موجودیت همچنین می تواند درگیر ارزیابی شرطی از چندین ستون در یک جدول باشد و این نوع از محدودیت اغلب بیشتر با استفاده از Check Constraints انجام می گیرد. برای مثال، اگر یک جدول شامل ستونهای کشور و ایالت باشد شما ممکن از یک Check Constraints برای مشخص کردن اینکه ارزش ستون State ، “AZ” معتبر می باشد فقط اگر ستون Country شامل مقادیر USA باشد. Check Constraint به عنوان Boolean Expressions شناخته می شود یک Boolean Expressions برای مقادیر True یا False ارزیابی می گردد. Boolean Expressions را در درس ۱۳ می آموزیم. در این درس ما از عبارت LEN()>=4 استفاده می کنیم. LEN یک تابع Transact-SQL می باشد که تعدادی کارکترهای یک رشته را برمی گرداند. بنابراین عبارت LEN()>=4 ارزش آن اگر شامل ۴ یا بیشتر کارکتر باشد ارزش آن True و اگر کمتر از ۴ باشد ارزش آن False می گردد.

ایجاد کردن Check Constraint)
مانند ایندکس ها و پیوندها شما می توانید Check Constraints را با استفاده از کادر محاوره ای Properties از Table Designer ایجاد کنید.
۱- Table Designer را برای جدول Oils به وسیله کلیک راست کردن نام جدول در قاب Details باز کرده و Design Table را انتخاب می کنیم. Table Designer , SQL Server را باز می کنیم.

۲- دکمه Constraints را کلیک کرده SQL Server کادر محاوره ای Table Designer Properties را با صفحه خصوصیات Constraints Check نشان داده شده باز می کنیم.

۳- New را کلیک کرده Ck-Oils , SQL Server را به عنوان نام محدودیت پیشنهاد می دهد. برای این مثال این نام را می پذیریم.

۴- Len(Oil Name)>=4را به عنوان عبارت محدودیت وارد می کنیم.

راهنمایی: اگر شما یک Check Constraint جدید را ایجاد می کنید و مراقب نیستید که آیا داده های موجود متابعت می شوند، شما می توانید بگوید به SQL Server که از ایجاد کردن داده به وسیله چک نکردنCheck Existing Data On Creation از محدودیت چشم پوشی کند.
۵- Close را کلیک کرده SQL Server کادر محاوره ای Designers Properties Table را می بندد.
۶- دکمه Save را کلیک کرده SQL Server کنترل می کند که همه سطرها در جدول باCheck Constraint مواجه می شوند و سپس محدودیت را ذخیره می کنیم.

مدیریت Check Constraints
به عنوان بخشی از طرح پایگ اه داده، Check Constraints نباید تحت شرایط نرمال نیاز به مقدار زیاد نگهداری داشته باشد. شما آنها را یکباره تعریف کرده زمانی که پایگاه داده را ایجاد می کنید. اگر چه طرحهای پایگاه داده به تدریج تغییر خواهد کرد. تغییرات Check Constraints تغییر خواهد کرد. Enterprise Manager نگهداری محدودیتها را آسان می سازد.

تغییر دادن Check Constraint
Table Designer مکانیزمی برای تغییر متن از یک Check Constraint از همان کادر محاوره ای که شما برای ایجاد آن استفاده کردید فراهم می کند.

تغییر متن محدودیت
۱- اگر Table Designer برای جدول Oils هنوز از تمرین قبل باز نمی باشد به وسیله کلیک راست کردن نام جدول در قاب Details آن را باز کرده وDesign Table را انتخاب می کنیم. Table Designer , SQL Sarver را باز می کند.

۲- دکمه Constraints را کلیک کرده SQL Sarver کادر محاوره ایTable Designer را با صفحه خصوصیات Check Constraint باز می کند.

۳- اطمینان حاصل کنید کهCk – Oilsدر Constraint Combo Box انتخاب شده نشان داده شده است.
۴- متن محدودیت را برایLEN (Oil Name )>2 به عنوان عبارت محدودیت جدید تغییر می دهیم.

۵- Close را کلیک کردهSQL Server کادر محاوره ایTable Designer’s Properties را می بندد.
۶- دکمه Save را کلیک کرده SQL Server همه سطرها در جدول را که با Check Constraint جدید مواجه است را کنترل کرده و سپس محدودیت را ذخیره می سازد.

نگهداری Check Constraints
مانند دیگر خصوصیات جدول دیگر، Check Constraints در کادر محاوره ای Properties ازTable Design نگهداری می گردد.

تغییر نام یک Check Constraints
1- Table Designer برای جدول Oils به وسیله کلیک راست کردن نام جدول در قاب Details باز کرده و Design Table را انتخاب می کنیم. Table Designer , SQL Server را باز می کنیم.

۲- دکمه Constraints را کلیک کرده SQL Server کادر محاوره ای Table Designers Properties را با صفحه خصوصیات Check Constraint نشان داده شده باز می کند.

۳- Ck-Oils را در فیلد Constraint Name انتخاب کرده و آن را به Ck-Deleteme تغییر می دهیم.

۴- Close را کلیک کرده SQL Server کادر محاوره ای Properties را می بندد.
۵- دکمه Save را کلیک کردهSQL Server همه سطرها در جدول که باCheck Constraint مواجه شده اند را کنترل می کند و سپسConstraint ذخیره می گردد.

حذف یک Check Constraint
1- Table Designer برای جدول Oils را به وسیله کلیک راست کردن نام جدول در قاب Details باز کرده و جدول Design را انتخاب می کنیم. Table Designer , SQL Server را باز می کند.

۲- دکمه Constraints را کلیک کرده SQL Server کادر محاوره ای Table Designers Properties را با صفحه خصوصیاتCheck Constraint نشان داده شده باز می کنیم.

۳- اطمینان حاصل کنید که Ck-Deleteme در فیلد محدودیت انتخاب شده می باشد و سپس Delete را کلیک می کنیم. SQL Server محدودیت را برمی دارد.

۴- Close را کلیک کرده SQL Server کادر محاوره ای Properties را می بندد.
۵- دکمه Save را کلیک می کنیم. SQL Server محدودیت را برمی دارد.
۶- Table Designer را می بندیم.

آموزش SQLserver (بخش هفتم)

مهر ۴م, ۱۳۸۸ دسته : متفرقه | بدون دیدگاه »

رتباط دادن جداول

Query هایی که در فصل ۳ بررسی گردید سطرهایش از یک جدول تکی ترسیم گردیده است اما Query ها به ویژه می توانند مفید باشند برای ترکیب ستونهایی از چندین جدول یا نما که Joining Tables نامیده می شود و آن در شرطهای FROM یا WHERE از حالت SELECT انجام می گیرد. در این فصل ما بر روی ایجاد ارتباطها با استفاده از شرط FROM که روشی توصیه شده است متمرکز خواهیم شد.

شناختن شرط FROM
همان طوری که ما دیده ایم، ساختار پایه ای از شرط FROM به آسانی نام از یک جدول یا نما ساده را فراهم می سازد. اما برای دسترسی پیدا کردن به توانایی از مدل ارتباطی، ما باید به بازیابی ستونها از جداول چندگانه و نماها در یک Query خاص قادر باشیم. شرط FROM یک مکانیزمی برای انجام آن با استفاده از ساختار دستور زیر:FROMON
اپراتور پیوند انواع پیوند برای به انجام رسیدن را تشریح می کند. Server SQL پیوندهای داخلی و خارجی همه نوسانات را پشتیبانی می کند، همان طوری که در بخش بعدی خواهیم دید. شرایط پیوند یک تعبیری می باشد شبیه به ملاک که در شرط WHERE استفاده شده است. آن مشخص می کند که چگونه سطرها در دو جدول ارتباط خواهند یافت. بیشتر پردازشگرهای ربطی روی پایه ای از عبارتهای برابری مانند B ستون = A ستون به انجام می رسند. اما SQL Server هر اپراتور منطقی را پشتیبانی کرده و شرایط پیوند می تواند به طور دلخواه پیچیده باشد، با عبارات چندگانه پیوند یافته که از حرف ربط AND یا OR از همان راهی که یک شرط WHERE می تواند ملاک انتخابی چندگانه را شامل باشد استفاده کند. عبارت پیوند می تواند برای اضافه کردن جداول و نماهای اضافی برای Query تکرار شود. ساختار دستور برای پیوند جداول چندگانه عبارت است از: FROM
ON
یک حدود فرضی ۲۵۶ جدولی برای هر Query وجود دارد، اما آن به حد زیاد غیر محتمل است که شما اصلاً نیاز به ۵ یا ۶ نیاز ندارید و ۲ یا ۳ بیشتر معمول می باشد. در حقیقت اگر شما نیاز به اتصال بیش از ۱۰ جدول در یک Query باشید، شما باید به دقت طرح پایگاه داده آن را نگاه کرده برای اینکه مطمئن شوید که آن به طور صحیح به حالت عادی در آمده است.

ایجاد کردن پیوندها
پیوندها می توانند در Query Designer با استفاده هر کدام از قاب Grid یا قاب SQL ایجاد گردند. قاب Grid اغلب آسانتر می باشد اگر شما جداولی که رسماً در طرح پایگاه داده مربوط شده اند پیوند دهید، از موقعی که Query Designer پیوندی بین آنها به طور خودکار ایجاد خواهد کرد. اما به طور معمول قاب SQL با انعطاف پذیری بیشتر برای شما فراهم می گردد.

نامگذاری شئی ها
زمانی که شما با یک جدول یا نمای تکی کار می کنید آنجا می تواند هیچ ابهامی در حدود منابع از یک ستون نداشته باشد از موقعی که همه نام ستونها در یک جدول باید منحصر به فرد باشند. هنگامی که شما برای بار اول کار کردن با چندین جدول در یک Query را شروع می کنید یا شما باید برای مشخص کردن نام ستونها صریحاً مواظب باشید. مشخصات کامل برای هر شئی پایگاه داده چهار معرفه را در بردارد. نام سرور، نام پایگاه داده، نام صاحب، نام شئی. معرفه ها به وسیله پریودها جداسازی می گردند. بنابراین نام واجد شرایط از جدول Oils در سیستم من Bunny.Aromatherary.dbo.Oil می باشد. مقداری از شئی ها مانند نماها و جداول شامل شئی های دیگر می باشد. برای رجوع به یکی از این شئی های گنجانده شده (در این حالت، ستونها). شما به آسانی نام آن را به نام شئی ضمیمه می کنید. نام واجد شرایط کامل از ستون OilID از جدول Oils (Bunny.Aromatherapy.dbo.Oils.Oil ID) می باشد. خوشبختانه شما فقط نیاز به مشخص کردن کافی از درجه بندی ابهام اجتناب پذیر دارید.
در یک Query مبنی بر یک جدول تکی، برای مثال نام ستون به وسیله خودش دارای مشخصات کافی می باشد. اگر یک Query به بیش از یک جدول مربوط گردد، اگر چه جداول دارای ستونهایی با یک نام باشد. شما باید نام جدول را در نام شئی (Object) Oils.OilID , OilPropertise.OilID که تمایز را به طور کامل روشن می سازد لحاظ کنید.

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

پیوند دو جدول با استفاده از قاب دیاگرام
۱- Query Designer جدول Oils را به وسیله کلیک راست کردن نام آن در قاب Details باز کرده روی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنیم.

۲- قاب دیاگرام را به وسیله کلیک کردن دکمه قاب دیاگرام روی نوار ابزار Query Designer نشان می دهیم.

۳- دکمه Add Table را روی نوار ابزار Query Designer کلیک می کنیم. Query Designer کادر محاوره ای Add Table را نشان می دهد.

۴- جدول PlantTypes را در لیست جدول انتخاب کرده و Add را کلیک می کنیم. SQL Server جدول را به Query اضافه می کند.
۵- Close را برای بستن کادر محاوره ای Add Table کلیک می کنیم.

۶- دکمه قاب SQL را در نوار ابزار Query Designer کلیک می کنیم. Query Designer قاب SQL را نشان می دهد.

۷- علامت * را بعد از کلید واژه SELECT حذف می کنیم.

۸- دکمه قاب SQL را در نوار ابزار Query Designer کلیک می کنیم. (OK را کلیک کرده اگر Query Designer یک متن خطا درباره ساختار دستور SELECT نشان دهد). Query Designer قاب SQL را پنهان می سازد.
مهم: زمانی که شما Query Designer را باز می کنید، حالت SQL معمولاً * را انتخاب می کند. انتخاب کردن ستونهای مشخص در قاب دیاگرام سبب می شود که آنها به لیست ستون اضافه شوند. مایکروسافت آن را به صورت یک خصیصه در نظر می گیرد.

۹- در قاب دیاگرام ستونهای OilID و OilName را در جدول Oils و ستون PlantType را در جدول PlantType انتخاب می کنیم.

۱۰- دکمه Run روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer مقادیر Planttype را برای هر Oil نشان می دهد.

ارتباط دو جدول به وسیله قاب SQL
1- قاب دیاگرام را پنهان کرده و قاب SQL را به وسیله کلیک کردن دکمه ها روی نوار ابزار Query Designer نشان می دهیم.

۲- حالت SQL موجود را با عبارت زیر جایگزین می کنیم.

SELECT Oils.OilID,Oils.Oil Name,PlantParts.PlantPart
FROM OilsINNER Join
PlantParts ON Oils.PlantPartID=PlantParts.PlantPart ID

3- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer مقادیرها برای هر سطر Oils Plant Part را نشان می دهد.

ارتباط جداول چندگانه با استفاده از قاب دیاگرام
۱- قاب SQL را پنهان کرده و قاب دیاگرام را نمایش می دهیم.

۲- دکمه Add Table را روی نوار ابزار Query Designer کلیک می کنیم. Query Designer کادر محاوره ای Add Table را نشان می دهد.

۳- جدول Planttypes را در لیست جداول انتخاب می کنیم. Add را کلیک کرده SQL Server جدول را به Query اضافه می کند.
۴- Close را برای بستن کادر محاوره ای Add Table کلیک می کنیم.

۵- در قاب دیاگرام ستون Planttype را در جدول Planttypes برای اضافه کردن ستون به Query کلیک می کنیم.

۶- دکمه Run در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer هر دوی ستونهای PlantPart و Planttype را برای هر Oil نشان می دهد.

ارتباط جداول چندگانه با استفاده از قاب SQL
1- قاب دیاگرام را پنهان کرده و قاب SQL را نشان می دهیم.
۲- عبارت SELECT موجود را با عبارت زیر جایگزین می کنیم.

SELECT Oils.Oil ID.Oils.Oil Name.odors.odor
FROM Oils
INNER Join Oilodors on Oils.OilID=Oil odors.OilID
INNER Join odors on Oilodors.odor ID=odors.odorID

3- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم.

۴- پنجره Query Designer را می بندیم.

ارتباطات خارجی
بعضی مواقع شما می خواهید که یک Query همه سطرها یک یا چندین جدول را باز گرداند، خواه آنها سطرهای ارتباطی در جداول دیگر داشته باشند و یا خیر. که با استفاده از یک ارتباط خارجی به انجام رسیده که می تواند سه گونه باشد: چپ، راست و کامل. یک ارتباط خارجی همه سطرهایی از جدول چپ در شرط JOIN و فقط آن سطرهایی از جدول راست برای اینکه شرایط ارتباط TRUE می باشد را باز خواهد گرداند.
دستور ساختار برای یک ارتباط خارجی عبارت است از:
FROM Left Table Left Outer Join Right able on
برای مثال عبارت SELECT زیر، همه سطرها در جدول Oils را باز می گرداند و مقادیر PlantPart از جدول آنجایی که PlantPart مشخص شده جفت می شود. آنجا سطرهای ارتباطی در جدول Plant Parts وجود ندارد و Query ، Null را به عنوان مقدار PlantPart برای آن سطر باز می گرداند.

SELECT Oils.Oil Name.Plant Parts.Plant Part
FROM Oils Left Outer Join
Plant Parts on Oils.Plant Part ID=Plant Parts.Plant Part ID

یک ارتباط خارجی سمت راست مقابل یک ارتباط خارجی سمت چپ می باشد. آن همه سطرها از جدول راست در شرط JOIN را باز می گرداند و مقادیر ارتباطی را از جدول چپ ارتباط می دهد. نظر به اینکه یک ارتباط کاملاً خارجی همه سطرها از دو جدول را با هم هماهنگ می سازد آنجایی که امکان پذیر باشد.

ایجاد کردن یک ارتباط خارجی چپ با استفاده از قاب دیاگرام
۱- Query Designer را برای جدول Oils به وسیله کلیک راست کردن نام جدول در قاب Details باز کرده، روی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنیم.
۲- قاب دیاگرام را نشان می دهیم.

۳- دکمه Add Table را در نوار ابزار Query Designer کلیک می کنیم. Query Designer کادر محاوره ای Add Table را نشان می دهد.

۴- Cautions و Oil Cautions در لیست جدول را انتخاب و سپس Add را کلیک می کنیم. Query Designer جدولی برای Query اضافه می کند.
راهنمایی: شما می توانید یک ارتباط خارجی چپ با دو جدول ایجاد کنید. ما حالت سوم را در ایجاد استفاده می کنیم با جدول OilCautions که به عنوان یک جدول الحاقی عمل می کند که ارتباط چندگانه بین Oils و Cautions را حل می کند.
۵- Close را برای بستن کادر محاوره ای کلیک می کنیم.

راهنمایی: شما می توانید جداول را در قاب دیاگرام برای پاک کردن نمایشگر درج کنید.

۶- دکمه قاب SQL را در نوار ابزار Query Designer کلیک می کنیم. Query Designer قاب SQL را نشان می دهد.

۷- علامت * را در کلید واژه SELECT حذف می کنیم.

۸- دکمه قاب SQL را در نوار ابزار Query Designer کلیک می کنیم. (OK را کلیک کرده اگر Query Designer یک متن خطا درباره ساختار از عبارت SELECT نشان دهد) Query Designer قاب SQL را پنهان می سازد.
مهم: زمانی که شما Query Designer را باز می کنید عبارت SQL پیش فرض معمولاً * را انتخاب می کند. ستون ویژه که در قاب دیاگرام انتخاب شده سبب می شود که آنها برای لیست ستون اضافه شوند. مایکروسافت این را به عنوان یک ویژگی در نظر می گیرد.

۹- در قاب دیاگرام، ستونها از OilName و OilID را از جدول Oils و ستون Caution را از جدول Cautions برای خروجی انتخاب می کنیم.

۱۰- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer فقط آن Oils که Cautions دارد را نشان می دهد.

۱۱- خط ارتباطی بین جداول Oil Cautions و Oils را به وسیله کلیک کردن آن انتخاب می کنیم و سپس دکمه Properties را در نوار ابزار Query Designer کلیک می کنیم. Query Designer کادر محاوره ای Join Properties را نشان می دهد.

۱۲- All Rows From Oils را انتخاب می کنیم.

راهنمایی: همه سطرها از Oil Cautions یک ارتباطی خارجی سمت راست ایجاد خواهد کرد و هر دوی گزینه ها را انتخاب کرده که یک ارتباط کامل خارجی ایجاد می کند.
۱۳- Close را برای بستن کادر محاوره ای کلیک می کنیم. Query Designer خط ارتباطی را برای انعکاس مشخصات ارتباطی جدید تغییر می دهد.

۱۴- دکمه Run در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer همه سطرها در جدول Oils را نشان می دهد و مقادیر از جدول Cautions را ارتباط می دهد.

ایجاد یک ارتباط خارجی سمت راست با استفاده از قاب SQL
1- قاب دیاگرام را پنهان کرده و قاب SQL را در Query Designer نشان می دهیم.

۲- حالت SELECT موجود را با عبارت زیر جایگزین می کنیم.

SELECT Oils.Oil Name.Properties.Property
FROM Oils
Right OUTER JOIN Oil Properties on
Oils.Oil ID=Oil Properties.Oil ID
INNER JOIN Properties on
Oil Properties.Property ID=Properties.Property ID

3- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer شامل همه سطرها از جدول Oil Properties با مقادیر ارتباطی از جدول Oils می باشد.

۴- پنجره Query Designer را می بندیم.

UNIONS
آخرین نوع از ارتباط به صورت Union شناخته می گردد. یک Union نتایجی از دو عبارت SELECT متمایز را در داخل یک تنظیم از سطرها ترکیب می کند. ارتباطات داخلی و خارجی ستونهایی از دو جدول درگیر شده در یک سطر تکی را با هم ترکیب می کند یک Union سطرهایی از دو جدول در یک ستون تکی را به هم ترکیب می کند. شما می توانید تصور کنید که تنظیمات دو سطر را گرفته و یکی را در بالای دیگری باز گردانید. اگر چه قاعده اصلی از سطرها باز گردانده شده به وسیله شرط ORDER BY مشخص می گردد. ساختار دستور یک Union از پیوندها متفاوت می باشد. یک Union ساختار دستوری به صورت زیر دارد:

SELECT FROM
UNION [All]
SELECT FROM
[ORDER BY ]

شما می توانید بسیاری از حالتهای UNION SELECT را همان طوری که شما برای یک Query دوست دارید اضافه کنید. (این موضوع برای ۲۵۶ جدول محدود می باشد) اما همه عبارتهای SELECT باید همان تعداد از ستونها را از انواع سازگار یا شبیه در همان دستور باز گرداند. اولین عبارت SELECT نامهای ستون را مشخص خواهد کرد و شرط ORDER BY از آخرین عبارت SELECT دستور Sort را تعیین خواهد کرد. به طور پیش فرض، SQL Server سطرهای چندگانه ای از نتایج را از یک Union Query برمی دارد. اگر شما Union All را مشخص کنید، ولی سطرهای چندگانه حفظ خواهد شد.

ایجاد کردن یک UNION
1- Query Designer را به وسیله کلیک کردن جدول Properties در قاب Details باز کرده روی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنیم.
۲- قاب SQL را نشان می دهیم.

۳- حالت SQL موجود را با عبارت زیر جایگزین می کنیم.

SELECT Property Table AS Table Name.Property ID AS ID
Property AS Quality From Properties
UNION
SELECT odor Table.odor ID odor From odors
ORDER BY Quality

4- دکمه Run در نوار ابزار Query Designer را برای اجرای Query کلیک می کنیم. Query Designer نتایجی از دو عبارت SELECT را با هم ترکیب می کند.

آموزش SQLserver (بخش ششم)

مهر ۴م, ۱۳۸۸ دسته : متفرقه | بدون دیدگاه »

ایجاد کردن جداول و تغییر دادنشان
در محیط SQL Server میکروسافت، در هر پایگاه داده مرتبط، اطلاعاتی در داخل جداول سازماندهی می شوند بر طبق ترتیب سطرها و ستونها که داده ها را برای شئی های تکی ذخیره می کند. در این درس، شما می آموزید که چگونه یک جدول جدید را ایجاد کنید و معین کنید ستونهایی که آن جدول در بردارد.
راهنمایی: در نظر گرفتن محتویات جدول به عنوان یک شبکه (Grid) مانند یک صفحه گسترده ایده آل می باشد. اما این موضوع مهم می باشد به تشخیص اینکه رکوردها در یک جدول نظم درونی ندارند. ایده های Previous و Next در یک رکورد جدول به کار برده نمی شوند. اگر شما نیاز به انجام عملیاتهای متوالی نداشته باشید، شما می توانید به وسیله ای به نام Cursor آن را انجام دهید. یک ماهیتی که به یک سطر ویژه در یک مجموعه از رکوردها اشاره می کند. در مورد Cursor در درس ۲۷ بحث خواهیم کرد.

ایجاد کردن جداول
جداول یک واحد تابعی از انبار داده ها در یک پایگاه داده های مرتبط می باشند. به عنوان یک قاعده کلی، هر نوع از موجودیتها از قبیل Essential Oil در پایگاه داده نمونه مان به وسیله یک جدول نشان داده می شود، نظر به اینکه هر نمونه از آن موجودیتها از قبیلGerman Chamomile Clary Sage به وسیله یک سطر در جدول نشان داده می شود.

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

شناخت انواع داده ها
هر ستون در جدول دارای خصوصیات معین می باشد که آن را برای SQL Server تعریف می کند. مهمتر از این خصوصیات، نوع داده های ستون می باشد، که تعریفی از نوع اطلاعاتی که درستونها ذخیره خواهند شد می باشد. SQL Server یک محدوده وسیعی از انواع داده ها را فراهم آورد که در جدول ۱-۵ نشان داده شده است. به طور کلی انواع داده ها به وسیله SQL Server فراهم می گردد، همچنین شما می توانید خودتان تعریف کنید. شما خواهید آموخت که چگونه این را در درس ۹ انجام دهید.

مقادیر قابل قبول انواع داده
مقادیر عددی
مقادیر اعداد صحیح از ۶۳^۲- تا۱-۶۳^۲ bight
مقادیر اعداد صحیح از ۳۱^۲- تا ۱-۳۱^۲ Int
مقادیر اعداد صحیح از ۱۵^۲- تا ۱-۱۵^۲ Smallint
مقادیر اعداد صحیح از ۰ تا ۲۵۵ Tinyint
مقادیر اعداد صحیح با ارزش ۰ و ۱ bit
مقادیر مقیاس با دقت ثابت شده از ۱+۳۸^۱۰ تا ۱-۳۸^۱۰ decimal
مقادیر Decimal همچنین می تواند تعریف شود به صورتNumeric ، دامنه مقادیر یکسان می باشد.
مقادیر Monetary (مالی) از ۶۳^۲- تا ۱-۶۳^۲ (مقادیر Money تا ۰٫۰۰۰۱ از هرواحد دقت دارد). Money
مقادیرMonetary از ۳۶۴۸ . ۷۴۸ . ۲۱۴- تا ۳۶۴۷ . ۷۴۸ . ۲۱۴ می باشد Smallmoney
(مقادیر Small Monetary تا ۰۰۰۱/۰ واحد دقیق می باشد).
مقادیر صحیح شناور (متغیر) از ۳۰۸+E1.79- تا ۳۰۸+E1.79 (مقادیر Float فقط تقریبی می باشد) Float
مقادیر صحیح شناور متغیر از ۳۸+E3.40- تا ۳۸+E3.40 می باشند (مقادیر real فقط تقریبی می باشد) real
مقادیر تاریخ و زمان از ۱٫۱۷۵۳ ژانویه تا ۳۱٫۹۹۹۹ دسامبر می باشد datetime
(مقادیر Date Time تا ۳ هزارم ثانیه یا ۳٫۳۳ میلی ثانیه دقت دارد) Smalldatedtime
مقادیر تاریخ و زمان از ۱ ژانویه و ۱۹۰۰ تا ۶ ژوئن و ۲۰۷۹ می باشد (مقادیرSmalldatetime تا ۱ دقیقه دقت دارند)
مقادیر کاراکتری
مقادیر حرفی کدگذاری نشده با طول ثابت با طول حداکثر ۸۰۰۰ حرف می باشد. Char
مقادیر حرفی کدگذاری نشده با طول متغیر با طول حداکثر ۸۰۰۰ حرف می باشد. Varchar
داده کدگذاری شده با طول متغیر با طول حداکثر ۱-۳۱^۲ (۶۴۷ . ۷۴۱ . ۰۷۳ . ۱) حرف می باشد. Text
داده کدگذاری شده با طول ثابت با طول حداکثر ۴۰۰۰ حرف می باشد Nchar
داده کدگذاری نشده با طول متغیر با حداکثر طول ۴۰۰۰ حرف می باشد nvarchar
داده کدگذاری شده با طول متغیر با حداکثر طول ۱-۳۰^۲ (۸۲۳ . ۷۴۱ . ۰۷۳ . ۱) حرف می باشد ntext
مقادیر باینری (۱ و ۰)
داده باینری با طول ثابت با حداکثر طول ۸۰۰۰ بایت می باشد binary
داده باینری با طول متغیر با حداکثر طول ۸۰۰۰ بایت می باشد Varbinary
داده باینری با طول متغیر با حداکثر طول ۱-۳۱^۲ (۶۴۷ . ۷۸۳ . ۱۴۷ . ۲) بایت می باشد Image
مقادیر دیگر
یک مرجع مبناء برای یک Cursor می باشد (یکCursor یک ماهیتی است که یک مرجع مبناء را برای یک سطر مشخص در یک Result Set نشان می دهد. Cursor
یک شمار واحد پایگاه داده است که به هنگام می شود هر زمانی که یک سطر به هنگام شود. (نوع داده rowversion در نسخه قبلی از Timestamp SQL Server نامیده می شود) rowversion
مقادیری از هر نوع غیر از text ، ntext ، rowversion (timestamp) و sql – variant می باشد. یک معرف واحد کلی GUID می باشد. Uniqveidentifier

ایجاد کردن یک جدول جدید
جداول تهیه و با استفاده از طراح جدول Enterprise Manager نگهداری می شوند. اولین گام ایجاد و نامگذاری جدول به وسیله باز کردن Table Designer برای یک جدول جدید می باشد.

ایجاد یک جدول جدید
۱- در پایگاه داده Aromatherapy بر روی پوشه Table می رویم. SQL Server یک لیستی از جداول موجود را نشان می دهد.

۲- دکمه New را روی نوار ابزار کلیک می کنیم. SQL Server ، Table Designer را باز می کند.

۳- دکمه Properties را در نوار ابزار کلیک می کنیم. SQL Server کادر محاوره ای Tables Properties را باز می کند.

۴- نام جدول را به ۵ Lesson تغییر می دهیم.

۵- Close را کلیک می کنیم. SQL Server کادر محاوره ای Properties را می بندد.

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

اضافه کردن یک ستون عددی به جدول
۱- My Number را در سل Column Name تایپ کرده و سپس Tab را فشار می دهیم. SQL Server، char را به عنوان نوع داده پیشنهاد می دهد.

۲- نوع داده را برای decimal تغییر می دهیم. SQL Server طول ستون را به ۹ تغییر داده و صحت، مقیاس و مشخصات فیلدها را تأیید می کند.

۳- در سل Description ، Sample Numeric Column را تایپ می کنیم.
۴- Precision ستون را به ۵ و Scale را به ۲ تغییر می دهیم. SQL Server طول ستون را به ۵ برای نمایش دادن Precision جدید تغییر می دهد.

شرح ستون
توانایی اضافه کردن یک شرح برای یک ستون در enterprise Manager در ۲۰۰۰ SQL Server جدید می باشد که بخشی از عاملیت جدید است که به طور extended Properties شناخته می شود. مایکروسافت مقداری از خصوصیات گسترده شده را از قبیل Column description به عنوان بخشی از نصب Server استاندارد ایجاد کرده است. شما می توانید به طور کلی خصوصیات گسترده شده را برای ذخیره اطلاعات ویژه سایت یا اطلاعات ویژه کاربردی در حدود شئی های پایگاه داده ایجاد کنید. extended Properties نام کاربر تعریف شده و یک مقدار دارد که مقادیری از یک extended Properties مقادیر sql – variant می باشد که می تواند شامل بیش از ۷۵۰۰ بایت از داده ها باشد. شما می توانید extended Properties چندگانه را برای هر شئی با استفاده از روشهای ذخیره شده تعریف کنید. برای اطلاعات بیشتر در مورد روشهای ذخیره شده (Stored Procedures) به درس ۲۸ رجوع کنید.

Precision و Scale (دقت و مقیاس)
دقت یک ارزش عددی مقدار ماکزیمم از رقمهای decimal است که ارزش آن را نشان می دهد. برای سمت چپ و راست از نقطه Decimal . مقیاس یک ارزش عددی رقمهای سمت راست از نقطه Decimal می باشد. برای مثال، مقدار عددی ۳۱۱ . ۳۶۴۷ یک دقت ۷ دارد (مجموع شماره رقمها) و یک مقیاس ۳ (رقمهای سمت راست از نقطه Decimal) را دارا می باشد. آن مهم می باشد که بدانیم دقت و مقیاس ارزش یک عدد بر روی طول یک ستون تأثیر نمی گذارد. نوع داده طول ستون را تعیین می کند. دقت و مقیاس تعیین می کند که چگونه SQL Server داده های ذخیره شده در ستونها را تفسیر می کند.

اضافه کردن یک ستون Identity به جدول
۱- در یک سل خالی در ستون Column Name کلیک می کنیم.Myidentity را تایپ کرده و سپسTab را فشار می دهیم. SQL Server ، char را به عنوان یک نوع داده پیشنهاد می کند.

۲- نوع داده ها به decimal تغییر می دهیم. SQL Server طول ستون را به ۹ تغییر داده و فیلدهای Identity و Scale و Precision را تأیید می کند.

۳- Allow Nulls را تیک می کنیم.

Nulls
ارزش Nulls یک نوع خاصی از یک ارزش در تکنولوژی رابطه ای می باشد که استفاده می شود برای نشان دادن اینکه یک ارزش ناپیدا یا غیر موجود می باشد استفاده کردن از Nulls قدری پیچیده و مسئله ساز و قطعاً مورد بحث می باشد.
۴- در سل Description و Sample Identity Column را تایپ می کنیم.
۵- فیلد Identity را به Yes تغییر می دهیم (نه برای Replication)SQL Server برای هر دوی از فیلد Identity Seed و فیلد Increment Identity مقدار ۱ را پیشنهاد می دهد.

ارزشهای Identity
زمانی که شما خصوصیات Identity یک ستون را تنظیم می کنید، شما به SQL Server می گویید که یک مقدار را در داخل ستون که به طور واحد هر سطر را مشخص می کند قرار دهد. نوع داده انتخاب شده ماهیت دقیق از ستون را تعیین می کند. ستونهای Identity می توانند نوع داده هایی مانند int و Smallint و tinyint یا decimal داشته باشند. زمانی که SQL Server یک سطر را در داخل یک جدول که دارای یک ستون Identity است قرار می دهد. آن به طور خودکار ارزشی برای ستون مبنی بر ارزش استفاده شده اخیر (که با Identity Seed شروع می شود) و Identity Increment مشخص شده زمانی که جدول ایجاد شده بود ایجاد می کند. برای مثال، اگر یک ستون Identity به عنوان یک Small int با Identity Seed ، ۵۰ و یک Identity Increment ، ۵ تعریف شود اولین سطر عدد ۵۰ و دومین سطر ۵۵ و سومین سطر ۶۰ و غیره تخصیص داده می شود فقط یک ستون در یک جدول می تواند تنظیمات Identity Property را داشته باشد.

اضافه کردن ستون GUID به جدول
۱- در یک سل خالی در ستون Column Nameکلیک کرده، My Guid را تایپ کرده و سپس Tab را فشار می دهیم. SQL Server ، نوع داده char را پیشنهاد می دهد.

۲- نوع داده را به Uniqueidentifier را تغییر می دهیم. SQL Server طول ستون را به ۱۶ تغییر داده و فیلد IsrowGuid را تأیید می کند.

۳- در سل Description ، Sample Guid تایپ می کنیم.
۴- IsrowGuid را به Yes تغییر می دهیم. SQL Server یک مقدار پیش فرض به Newid( ) می دهد.

GUIDS
Guid که از GloballyUniqueIdentifier گرفته شده، یک مقادیر باینری (۱ و ۰) ۱۶ بایتی می باشد که هیچ کامپیوتر دیگری در دنیا نخواهد مقدار آن را تولید کند. نوع داده uniqueidentifier برای ذخیره کردن Guids استفاده می شود. SQL Server به طور خودکار مقادیر Guid را از همان راهی که مقادیر Identity ایجاد می شود، فراهم نمی کند. زیرا یک جدول می تواند شامل Guids چندگانه باشد، اما فقط یک Identity منحصر به فرد باشد. اگر چه، تابع NEWID که SQL Server آن را به صورت پیش فرض در نظر می گیرد زمانی که خصوصیات IsrowGuid ، Yes می شود. یک Guid جدید بر خواهد گشت زمانی که سطر قرار داده می شود.

اضافه کردن یک ستون Data در جدول
۱- در یک سل خالی در ستون Column Name کلیک کرده، Mydata را تایپ کرده و سپس Tab را فشار می دهیم. SQL Server ، char را به عنوان نوع داده در نظر می گیرد.

۲- نوع داده را به datetime تغییر می دهیم. SQL Server طول ستون را به ۸ تغییر می دهد.

۳- در سل Sample Date Column Description را تایپ می کنیم.

اضافه کردن یک ستون Character به جدول
۱- در یک سل خالی در ستون Column Name کلیک کرده، Mychar را تایپ و سپس Tab را فشار می دهیم. SQL Server ، char را به عنوان نوع داده در نظر می گیرد.

انواع داده های Character
SQL Server دو نوع مختلف از ستونها Character را پشتیبانی می کند. طول ثابت شده و طول متغیر که هر کدام در دو “”Flavors مختلف Unicode و Non-Unicode و ۳ طول متفاوت می باشند. Unicode یک روش از علامت کد گذاری می باشد که انواع بایتهای دابل را پشتیبانی می کند. اگر یک ستون به طور طول متغیر نمایان شود (برای مثال، varchar یا text برای داده های Non-Unicode و nvarchar و ntext برای داده هایUnicode ) و SQL Server فقط خصوصیت داده های معین وارد شده را ذخیره خواهد ساخت. از طرف دیگر اگر ستون به صورت طول ثابت شده نمایان شود (char برای Non-Unicode داده nchar برای داده های Unicode) و SQL Server مقادیر وارد شده را با فضاهای Pad خواهد کرد.
۲- طول ستون را به ۲۵ تغییر می دهیم.
۳- در سل Description ، Sample Character Column را تایپ می کنیم.
۴- Unknown را در سل Default Valve تایپ می کنیم (اطمینان حاصل کنید که اطراف کلمه ویرگول داشته باشد).

مقادیر پیش فرض
یک Default Valve یک عددی می باشد که در داخل یک ستون قرار خواهد گرفت اگر کاربر به طور آشکار یکی را فراهم نکند. ما تاکنون دو نوع ویژه از مقادیر پیش فرض را دیده ایم default Values به وسیله SQL Server تهیه می شود زمانی که شما Identity Property را تنظیم می کنید و تابع NEWID به وسیله SQL Server تهیه می شود زمانی که شما IsrowGuid را تنظیم می کنید. در حقیقت، شما می توانید مقادیر پیش فرض را برای هر ستون مشخص کنید. مقادیر پیش فرض می تواند دائمی باشد مانند “Unknown” یا ۱۲۳ توابعی از قبیل NEWID یا GETDATE یا عبارات ریاضی مانند ۵+۳ .

ذخیره کردن و بستن جداول
۱- دکمه Save را در نوار ابزار Table Designer کلیک می کنیم. SQL Server تعریف جدول را ذخیره می سازد.
۲- پنجره را می بندیم.

مدیریت جداول
اگر چه “Best Practice” امر می کند که طراحی پایگاه داده تان باید ثابت باشد قبل از اینکه شما پیاده سازی را شروع کنید. خوشبختانه SQL Server به انجام رسانی وظایف نگهداری را آسان می سازد.

تغییر دادن ستونها
شما می توانید مجدد Table Designer را برای یک جدول به وسیله کلیک راست کردن نام جدول در قاب Details باز کنید و Design Table را از منوی Context انتخاب کنید. همان موقعی که Table Designer باز می شود شما می توانید خصوصیات ستونهای موجود را تغییر دهید آنها را حذف و یا ستون جدیدی را اضافه کنید.

تغییر نام یک ستون
۱- پوشه Tables را برای پایگاه داده Aromatherapy در درخت Console انتخاب می کنیم. SQL Server یک لیستی از جداول در قاب Details را نشان می دهد.

۲- جدول ۵ Lesson را در قاب Details کلیک راست کرده و Design Table را انتخاب می کنیم. SQL Server ، Table Designer را باز می کند.

۳- Mychar را در سل Column Name انتخاب و MyCharacter را تایپ می کنیم. SQL Server ، Column Name را تغییر می دهد.

۴- دکمه Save را در نوار ابزار Table Designer کلیک کرده و تغییرات را ذخیره می سازیم.

برداشتن یک ستون
۱- ستون Mydate را به وسیله کلیک کردن روی gray Boy در سمت چپ از Column Name انتخاب می کنیم.

۲- کلید Delete را فشار می دهیم. SQL Server ستون را برمی دارد.

۳- کلید Save را برای ذخیره کردن تغییرات کلیک می کنیم.
۴- پنجره Table Designer را می بندیم.

تغییر دادن جداول
به طور کلی برای تغییر تعریف ستونهای یک جدول، Enterprise Manager تغییر نام دادن جداول را آسان می سازد و جداول را از پایگاه داده حذف می کند.

تغییر نام یک جدول
۱- پوشه Table را در پایگاه داده Aromatherapy در درخت Console راهبری می کنیم. SQL Server یک لیستی از جداول در قاب Details نشان می دهد.

۲- جدول ۵ Lesson را در قاب Details کلیک راست کرده و Rename را انتخاب می کنیم.
۳- New Lesson 5 را تایپ و Enter را فشار می دهیم. SQL Server کادر محاوره ای Rename را نشان می دهد که به شما اخطار می کند که تغییر در نام جدول هر رابط برای آن را در شئی های دیگر، باطل خواهد کرد.

۴- View Dependencies را برای نشان دادن هر شئی که ممکن است به وسیله تغییرات تأثیر یابد را کلیک می کنیم. SQL Server کادر محاوره ای Dependencies را باز می کند.

۵- Close را برای مرخص کردن کادر محاوره ای کلیک می کنیم.
۶- Yes را در کادر محاوره ای Rename برای تأیید تغییر نام کلیک می کنیم. SQL Server نشان می دهد یک متنی را که تکمیل موفقیت آمیز تغییر نام را تأیید می کند.

برداشتن یک جدول
۱- New Lesson 5 را در قاب Details انتخاب می کنیم.
۲- کلید Delete را فشار می دهیم. SQL Server کادر محاوره ای Drop Object را نشان می دهد.

راهنمایی: شما می توانید دکمه Show Dependencies را برای نشان دادن هر Objects که متأثر خواهد شد به وسیله حذف جدول کلیک کنید.
۳- Drop All را کلیک می کنیم. SQL Server جدول را از پایگاه داده برمی دارد.
مهم: زمانی که شما یک جدول را حذف می کنید، جدول و همه داده هایش به طور دائمی از پایگاه داده برداشته می شود و تنها راه برای بازگرداندن آن نسخه پشتیبان پایگاه داده می باشد.

آموزش SQLserver (بخش پنجم)

مهر ۴م, ۱۳۸۸ دسته : متفرقه | بدون دیدگاه »

شناخت عبارت INSERT
ساختار دستور عبارت Insert شبیه به عبارت Select می باشد، بیشترین شکل مبنای آن عبارت است از:
INSERT [INTO] Table-or-View [(Column-List)]
VALUES (Value-List)
هر عبارت Insert می تواند یک جدول یا نما منفرد را به هنگام سازد. زمانی که شما از عبارت Insert برای به هنگام سازی یک نما استفاده می کنید شما باید آگاه باشید از محدودیتهای زیر:
View نباید شامل یک تابع به هم پیوسته مانند COUNT یا AVG باشد.
View نباید شامل Top ، GROUP BY ، UNION یا DISTINCT باشد.
View نباید شامل یک ستون محاسبه شده باشد.
View باید یک جدول را در شرط From باز گرداند.
عبارت Insert ستونهای یک جدول منفرد را فقط به هنگام می سازد.
لیست ستون در عبارت Insert اختیاری می باشد. اگر آن فراهم نگردد عبارت Insert باید شامل مقادیری برای همه ستونها در جدول یا نما باشد و آنها باید به همان ترتیب به عنوان ستونهایی در جدول یا نما فراهم شوند. اگر چه شما می توانید از کلیدهای ویژه DEFAULT برای مشخص کردن مقادیر پیش فرض برای یک سطر استفاده کنید. زمانی که لیست ستون گنجانده می شود. آن یک فرمت شبیه از لیست ستون در عبارت Select می گیرد: یک لیستی از نامهای ستون که با کاما جدا شده است. از زمانی که یک عبارت Insert می تواند یک سطر را فقط برای یک جدول اضافه کند، شما معمولاً نیاز به استفاده کردن مشخصه نام جدول برای نام ستون نخواهید داشت.

استفاده کردن از عبارت INSERT
یک عبارت Insert می تواند با استفاده کردن از قاب Grid برای مشخص کردن ستونها یا با استفاده کردن قاب SQL برای وارد کردن مستقیم عبارت ایجاد گردد.

درج کردن سطرها با استفاده از قاب Grid
قاب Grid احتمالاً آسانترین راه برای ایجاد یک عبارت Insert می باشد از زمانی که یاد آوردن هر ساختار دستور مورد درخواست شما نباشد.

درج کردن یک سطر با استفاده از قاب Grid
پوشه Tables را از پایگاه داده Aromatherapy راهبری کرده، جدول Oils را در قاب Details کلیک راست می کنیم. در زیر منوی Open Table رفته و Query را انتخاب می کنیم. Query Designer همه چهار قاب نشان داده شده را باز می کند.

آموزش SQLserver (بخش چهارم)

مهر ۴م, ۱۳۸۸ دسته : متفرقه | بدون دیدگاه »

عبارت SELECT
پایه و اساس همه داده های رابطه ای در محیط SQL Server یک حالت Transact-SQL تنها است که عبارت Select می باشد. در این درس ما به مهمترین ترکیبات حالت Select و راههای استفاده کردن از Query Designer برای ساختن خودکار عبارت می پردازیم. با استفاده از Query Designer شما می توانید یک عبارت Select را مستقیماً در قاب SQL وارد سازید یا با داشتن Query Designer آن را به وسیله قابهای Grid و Diagram بسازید. گزینه ها متقابلاً منحصر به فرد نمی باشند. شما می توانید یک Query را به وسیله اضافه کردن جداول برای قاب Diagram ، تغییر نام ستون با استفاده از قاب Grid شروع کنید و دستورات را به طوری که سطرها برگردانده می شود به وسیله وارد کردن شرط ORDER BY به صورت مستقیم در قاب SQL مشخص کنید.
تمرینهای درس یک گونه ای از تکنیکها را به شما نشان خواهد داد. موقعی که خودتان کار می کنید شما می توانید یکی را که در زمان ساده تر به نظر می رسد را انتخاب کنید.

شناختن عبارت SELECT
ساختار دستور عبارت Select خیلی پیچیده می باشد که دارای چندین شرط و اپراتور می باشد اما ساختار اصلی کاملاً ساده می باشد.
Select [ Top n [PERCENT] ] Column-List
From Source-List
[ Where Search-Condition ]
[ ORDER By Expression ]
فقط اولین و دومین شرط از عبارت Select مورد نیاز می باشد. اولین شرط، Select Column-List مشخص می کند ستونهایی که به وسیله Query بازگردانده خواهد شد. لیست Column می تواند شامل ستونهای اصلی از جداول و نماهایی باشد که بر روی Query پایه ریزی شده است یا اینکه می تواند شامل ستونهای محاسباتی اقتباس شده از ستونهای اصلی باشد. دومین شرط، From Source-LIST ، نماها و جداول را که در Query پایه ریزی شده مشخص می کند.

انتخاب کردن تمام ستونها
ساده ترین شکل از عبارت Select آن انتخابی است که همه ستونها از یک جدول تکی را انتخاب می کند. با بیشترین نسخه های زبان SQL ، Transact-SQL اجازه می دهد به شما به استفاده از (*) به عنوان یک Shorthand برای مشخص کردن تمام ستونها، بنابراین این فرم ساده از عبارت این چنین است:
SELECT *
FROM Table-Name

انتخاب همه ستونها
۱- Query Designer را برای Properties Table به وسیله کلیک راست کردن نام آن در قاب Detail Enterprise Manager باز می کنیم، روی زیر منوی Open Table رفته و Return All Rows را انتخاب می کنیم. SQL Server ، Query Designer را برای جدول باز می کند.

۲- قاب SQL را به وسیله کلیک کردن دکمه قاب SQL روی نوار ابزار Query Designer راه می اندازیم. Query Designer قاب SQL را نشان می دهد.

۳- عبارت SQL را برای نشان دادن همه ستونها از جدول Oils تغییر می دهیم.

۴- دکمه Run را روی نوار ابزار Query Designer برای به اجرا در آوردن Query کلیک می کنیم. Query Designer همه رکوردها در جدول Oils را نشان می دهد.

راهنمایی: شما می توانید بیشتر سطرها را در قاب Results به وسیله درج کردن درایور قاب بین قابها نشان دهید.

انتخاب زیر مجموعه از ستونها
اگر چه ساختار دستور Select * آسان و سریع می باشد، شما اغلب بیشتر می خواهید که Query تان فقط به ستونهای انتخاب شده باز گردد. این با مشخص کردن ستونها در Column-List از شرط Select به انجام می رسد.

انتخاب ستونها با استفاده از قاب SQL
1- علامت * را در عبارت Select با تایپ کردن نام ستون Oil Name جایگزین می کنیم.

۲- دکمه Run را روی نوار ابزار Query Designer برای به کار بستن Query کلیک می کنیم. Query فقط ستون Oil Name را نشان می دهد.

انتخاب ستونها با استفاده از قاب Diagram
1- قاب SQL را پنهان کرده و قاب Diagram را به وسیله کلیک کردن دکمه ها در نوار ابزار Query Designer نشان می دهیم.

۲- فیلد LatinName را در قاب Diagram کلیک کرده Query Designer قاب Results به جهت اینکه زیاد معتبر نیست کم نور نشان می دهد.

۳- دکمه Run را برای به کارگیری Query کلیک کرده Query Designer هر دو ستون Latin Name و Oil Name را در قاب Results نشان می دهد.

ایجاد کردن نام مستعار ستون
به طور پیش فرض، یک ستون در یک Query نام یکسان دارد که در جدول یا نمای مورد نظر می باشد. اگر چه اغلب تغییر دادن نام آن مفید می باشد. نامتناسب به نظر می رسد که فیلد به کاربر بدین صورت ( “My Long Column Name With No Spaces” ) یا اینکه به طور خلاصه این چنین ۳۲۷۱۳ PK-Varchar-50-Col نشان داده شود. عبارت Select به شما اجازه می دهد که یک ستون را در Query به وسیله ایجاد یک alias تغییر نام دهید. نام مستعار، نام ستون را در Query تغییر می دهد نه در جدول.

ایجاد یک نام مستعار برای ستون با استفاده از قاب Grid
1- قاب Diagram را پنهان کرده و قاب Grid را به وسیله کلیک کردن دکمه ها روی نوار ابزار Query Designer نشان می دهیم.

۲- یک نام مستعار برای ستون OilName به وسیله تایپ کردن OilName در فیلد alias ایجاد می کنیم. Query Designer به طور خودکار در اطراف alias پرانتز اضافه کرده زیرا alias شامل یک فضا می باشد.

راهنمایی: پرانتزهای چهارگوش در خروجی Query نشان داده نخواهند شد. آنها به نحوه آسان به SQL Server می گویند که با عبارت “Oil Name” به عنوان یک نام مجزا برخورد کنیم. پرانتزها فقط موقعی مورد نیاز می باشند که نام مستعار شامل یک جای خالی باشد، اما آنها می تواند برای نام هر ستون استفاده شود.
۳- دکمه Run را روی نوار ابزار Query Designer برای مجدد به کار بستن Query کلیک می کنیم. SQL Server نام را در سر ستون با جای خالی اضافه شده بین دو کلمه نشان می دهد.

ایجاد نام مستعار ستون با استفاده از قاب SQL
1- قاب Grid را پنهان کرده و قاب SQL را به وسیله کلیک کردن دکمه ها در نوار ابزار Query Designer نشان می دهیم.

۲- [ Latin Name ] را به عنوان نام مستعار برای دومین ستون اضافه می کنیم.

۳- دکمه Run را روی نوار ابزار Query Designer برای به کارگیری Query کلیک می کنیم. Query Designer نام را در سر ستون با یک فضای خالی بین دو کلمه نشان می دهد.

ایجاد کردن ستونهای محاسباتی
علاوه بر اینکه ستونها به طرز ساده اطلاعات را در جداول Underlying و نماها نشان می دهد، همچنین Query تان می تواند شامل ستونهایی باشد که محاسبه شده اند بر اساس داده های Underlying ، توابع SQL Server یا هر ترکیب دوتایی. ستون محاسباتی به وسیله مشخص کردن یک عبارت به عنوان ستون ایجاد می گردد.
ما به عبارات Transact-SQL در Detail در درس ۲۱ “The Transact-SQL Language” می پردازیم. بنابراین در این تمرین ما فقط یک جفت از عبارات ساده که بر اساس اپراتور الحاق رشته Transact-SQL که دو رشته و تابع GETDATE را که داده ها و زمان سیستم جاری را باز می گرداند اضافه می کنیم.

ایجاد کردن یک ستون محاسباتی با استفاده از قاب Grid
1- قاب SQL را پنهان کرده و قابGrid را به وسیله کلیک کردن دکمه روی نوار ابزار Query Designer نشان می دهیم.

۲- در هر سل ستون خالی در قاب Grid کلیک کرده و Oil Name +’ – ‘+ Latin Name را تایپ می کنیم.

راهنمایی: شما می توانید سل ها را در قاب Grid به وسیله درج کردن خطوط تقسیم بین سر ستونها عریض تر سازید.
۳- کلید Tab را فشار می دهیم. SQL Server ، ۱ Expr را به عنوان نام مستعار ستون پیشنهاد می دهد.

۴- نام مستعار را برای Extended Name تغییر می دهیم.

۵- دکمه Run را برای به کارگیری مجدد Query کلیک می کنیم. Query Designer ستون جدید را در قاب Results نشان می دهد.

ایجاد کردن یک ستون محاسباتی با استفاده از قاب SQL
1- قاب Grid را پنهان کرده و قاب SQL را به وسیله کلیک کردن دکمه ها روی نوار ابزار Query Designer نشان می دهیم.

۲- GETDATE را به عنوان [ Today’s Data ] برای لیست ستون از شروط Select اضافه می کنیم.

راهنمایی: کاما را قبل از GETDATE فراموش نکنید.
۳- دکمه Run را در نوار ابزار Query Designer برای به کارگیری مجدد Query کلیک می کنیم. SQL Server تاریخ جاری در هر سطر را نشان می دهد.

استفاده کردن از شرط Top n
زمانی که شما دستور Return Top را از منوی متن جدول انتخاب می کنید. SQL Server شرط Top n را در پایین پوششها برای ایجاد صفحه نمایش در Query Designer استفاده می کند. علاوه بر اینکه یک شماره مشخصی از سطرها را مشخص می کنید شما می توانید همچنین یک درصد از سطرها را به وسیله استفاده کردن از شرط Top n Percent نشان دهید. همان طوری که شما ممکن است انتظار داشته باشید درصدی از سطرهای مشخص شده را باز می گردانیم.

نشان دادن سطرهای Top s
1- Top 5 را قبل از اولین کلمه در Column-List از شروط Select در قاب SQL اضافه می کنیم.

۲- دکمه Run را در نوار ابزار Query Designer برای به کارگیری مجدد Query کلیک می کنیم. SQL Server فقط ۵ سطر اول را نشان می دهد.

نشان دادن Top 5 درصد از سطرها
۱- کلمه Percent را بعد از Top 5 در قاب SQL اضافه می کنیم.

۲- دکمه Run را در نوار ابزار Query Designer برای به کارگیری Query کلیک می کنیم. SQL Server فقط ۵ درصد اول از سطرها را در SQL Server نشان می دهد.

آموزش SQLserver (بخش سوم)

مهر ۴م, ۱۳۸۸ دسته : متفرقه | بدون دیدگاه »

رتب سازی و انتخاب کردن سطرها
در فصل گذشته ما بیشترین فرمهای مقدماتی از حالت SELECT را مرور کرده و آنها را برای انتخاب ستونهای یک جدول استفاده کردیم. اما بیشتر مواقع شما بازگشت به سطرها در جدول پس زمینه یا نمایش در یک قاعده خاص و فقط بازگشت به یک زیر مجموعه از آنها را خواهید خواست. شرطهای ORDER BY و WHERE در این درس بررسی شده و اجرای آن برای شما فراهم شود.

شرط ORDER BY
شرط The ORDER BY یک ترکیب گزینه ای از یک حالت SELECT می باشد. آن به شما برای مشخص کردن ترتیب در آن سطرهایی که بازگشت خواهند کرد اجازه می دهد. ستونهای چندگانه می توانند مشخص شوند و سطرها می توانند به صورت ترتیب افزایشی یا کاهشی باز گردانده شوند.

مرتب سازی سطرها
ساده ترین فرم در شرط ORDER BY فراهم می سازد یک نام ستون تکی که برای مرتب کردن سطرها که به وسیله Query باز گردانده می شود استفاده خواهد شد.

مرتب کردن سطرها با استفاده از قاب Grid
1- Query Designer را برای جدول Oils به وسیله کلیک راست کردن نام آن در قاب Details باز می کنیم. به زیر منوی جدول Open رفته و همه ستونهای بازگشتی را انتخاب می کنیم. SQL Server ، Query Designer را برای جدول باز می کند.
۲- قاب Grid را به وسیله کلیک راست کردن دکمه قاب Grid در نوار ابزار Query Designer نشان می دهیم.

۳- فقط ستونهای OilID ، Oil Name ، LatinName را برای نمایش انتخاب می کنیم. Query Designer محتویات قاب Results را که کمرنگ شده برای نشان دادن اینکه با مشخصات Query زیاد مربوط نمی باشد نشان می دهد.

۴- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer فقط ستونهای مشخص شده را نشان می دهد.

۵- نوع Sort فیلد Oil Name را صعودی قرار می دهیم.

۶- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer سطرهای مرتب شده با Oil Name را نشان می دهد.

مرتب سازی سطرها با استفاده از قاب SQL
1- قاب Grid را پنهان ساخته و قاب SQL را به وسیله کلیک کردن دکمه ها روی نوار ابزار Query Designer نشان می دهیم.

۲- DESC را بعد از شرط ORDER BY OilName اضافه می کنیم.

راهنمایی: کلید واژه DESCبه SQL Server برگرداندن سطرها به ترتیب نزولی را ابراز می کند. کلید واژه ASC که گزینه ای می باشد سطرها را به ترتیب صعودی برمی گرداند.
۳- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer نتایح را که با OilName ذخیره شده به صورت نزولی نشان می دهد.

مرتب سازی ستونهای چندگانه
شما می توانید ستونهای چندگانه را در شرط ORDER BY مشخص کنید. زمانی که ستونهای چندگانه مشخص می گردند ترتیب ستونها نتایج SQL Server را که به وسیله اولین ستون و سپس به وسیله دومین ستون و بنابراین چهارمین ستون مرتب خواهد شد مشخص می کند.
راهنمایی: تمرینها در این بخش از جدول OilOdors استفاده می کند که به صورت جدول الحاقی انجام وظیفه می کند که ارتباط چندبه چند بین جدول Oils و Odors را تجزیه و تحلیل می کند. معمولاً شما کلیدهای خارجی ترکیب شده در این جدول را با استفاده از یک ارتباط تجزیه می کردید.

مرتب سازی سطرها با استفاده از قاب Grid
1- پنجره شماره ۱ را از منوی Window برای برگشت به درخت Console انتخاب می کنیم.
۲- Query Designer را برای جدول Oil Orders به وسیله کلیک راست کردن نام آن در قاب Details باز کرده روی زیر منوی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنیم. SQL Server ، Query Designer را برای جدول باز می کند.
۳- قاب Grid را به وسیله کلیک کردن دکمه قاب Grid روی نوار ابزار Query Designer نشان می دهیم.

۴- * را در قاب Grid با نامهای دو فیلد جایگزین می کنیم. SQL Server محتویات از قاب Results را برای نشان دادن اینکه آن با مشخصات Query زیاد در ارتباط نیست کم رنگ می کند.

۵- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer فقط ستونهای مشخص شده شما را نشان می دهد.

۶- نوع Sort هر دوی ستونها را صعودی قرار می دهیم.

۷- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer سطرهای مرتب شده را با اولین OilID و سپس با OdorID در داخل OilID نشان می دهد.

مرتب کردن سطرها با استفاده از قاب SQL
1- قاب Grid را پنهان کرده و قاب SQL را به وسیله کلیک کردن دکمه ها در نوار ابزار Query Designer نشان می دهیم.

۲- ستونها را در شرط ORDER BY معکوس می کنیم.

۳- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer نتایج مرتب شده را با اولین OdorID و سپس با OilID نشان می دهد.

۴- پنجره Query Designer را می بندیم.

شرط WHERE
با استفاده از شرط اختیاری WHERE از حالت SELECT شما می توانید یک زیر مجموعه از سطرها که باز گردانده می شوند را مشخص کنید. برای مثال شما ممکن است بخواهید فقط مشتریهایی که بیش از $۱۰۰۰ در ۱۲ ماه قبل خرج کرده اند را ببینید یا اینکه فقط نامهای Oil که با حرف R شروع می شوند را ببینید. شما این ملاکها را با استفاده از شرط WHERE مشخص خواهید کرد.

شرط WHERE BASIC
Operator Meaning
مساویست با = بزرگتر از < کوچکتر از >بزرگتر یا مساویست با =<کوچکتر یا مساویست با => مساوی نیست با <>
کلید برای شرط WHERE یک ملاک انتخابی می باشد که مشخص می کند که کدام سطرها باز خواهند گشت. ساختار پایه ای از یک شرط WHERE ، WHERE می باشد. SQL Server یک حدود کاملی از اپراتورهای مقایسه ای را به طوری که در جدول B-1 نشان داده شده فراهم می سازد.

مشخص شده در شرایط WHERE می تواند یک ارزش دائمی باشد مانند Red”" یا ۱۰۰۰۰ یا می تواند باشد یک عبارتی که یک ارزش مانند GETDATE. را باز گرداند. به طور شبیه ارزش می تواند دستی ساخته شوند با استفاده از تابعهای Transact-SQL مانند LEFT که یک تعدادی از کاراکترهای مشخص شده از چپ یک رشته را باز می گرداند، ما تمام جزئیات توابع را در درس ۲۴ مرور خواهیم کرد.
مشخص کردن یک شرط WHERE با استفاده از قاب Grid
1- پنجره شماره ۲ را از منوی Window برای بازگشت به پنجره Query Designer که ما زودتر در این درس استفاده کرده ایم انتخاب می کنیم.
۲- قاب SQL را پنهان کرده و قاب Grid را به وسیله کلیک کردن دکمه ها در نوار ابزار Query Designer نشان می دهیم.
۳- “=”Eucalyptus را در سل ملاک سطر OilName از قاب Grid وارد می کنیم.

۴- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم، Query Designer فقط یک سطر تنها را نشان می دهد.

مشخص کردن یک شرط WHERE با استفاده از قاب SQL
1- قاب Grid را پنهان ساخته و قاب SQL را به وسیله کلیک کردن دکمه ها در نوار ابزار Query Designer کلیک می کنیم.

۲- شرط WHERE را با WHERE (LEFT(Oil Name,1)=”R”) تغییر می دهیم.

۳- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer نامهای Oil را که با “R” شروع می گردد را نشان می دهد.

استفاده کردن از اپراتورهای ویژه
علاوه بر فرمت استاندارد برای یک شرط WHERE از ، SQL Server همچنین سه عملگر را پشتیبانی می کند: LIKE که اجازه می دهد به شما به فراهم ساختن مقدار نامشخص با استفاده از وایلد کارتهای نشان داده شده در جدول ۲-۱۳ و BETWEEN که اجازه می دهد به شما مشخص کردن یک محدوده از ارزشها و IN که اجازه می دهد به شما برای مشخص کردن یک مجموعه از مقادیر.
مثال معنی Wildcard
LIKE ‘a’ که ارتباط می دهد at”" و “as” هر تک کاراکتر -اما نه “and”%’t'%ILKE که ارتباط می دهد “at” و bat”" و “Together” اما نه “Lucky” هر رشته از صفر یا چندین کاراکتر %LIKE ‘[a-c]at’ که ارتباط می دهدCat”" و “bat” اما نه “fat” هر کاراکتر ویژه در داخل یک محدوده یا مجموعه []LIKE ‘[a-b]at’ که ارتباط می دهدBat”" اما نه “Cat”LIKE ‘[^c]at’ که ارتباط می دهد “Bat” و “fat” اما نه “Cat” هر کاراکتر ویژه که در داخل یک محدوده یا مجموعه نمی باشد [^]

مشخص کردن یک شرط WHERE با استفاده از LIKE
1- شرط WHERE را در قاب SQL برای WHERE تغییر می دهیم. )% (Oil Name LIKE ‘Rose’

2- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer همه سطرهایی که با Rose شروع می گردد را نشان می دهد.

مشخص کردن یک شرط WHERE با استفاده از BETWEEN
1- شرط WHERE را در قاب SQL باWHERE(LEFT(Oil Name,1)BETWEEN A AND ‘C’) تغییر می دهیم.

۲- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer همه سطرها که با A و B یا C شروع می گردد را نشان می دهد.

راهنمایی: Transact-SQL همچنین عملگرها Not BETWEEN را پشتیبانی می کند که دقیقاً از همان طریق کار می کند. به استثنای اینکه آن شامل یک محدوده ای از مقادیر می باشد. برای مثال Left (Oil Name , 1) Not BETWEEN ‘C’ And ‘E’ همه سطرها باز خواهد گرداند به جز آنهایی که Oil Name با C و D یا E شروع می کند.

مشخص کردن یک شرط WHERE با استفاده از IN
1- شرط WHERE را در قاب SQL با WHERE (LEFT (OilName , 1) IN(’G',’M',’V')) تغییر می دهیم.

۲- دکمه Run را در نوار ابزار Query Designer برای اجرا Query کلیک می کنیم. Query Designer ، ۸ سطر را نشان می دهد.

ترکیب کردن ملاک انتخابی
علاوه بر مشخص کردن یک شرط WHERE با استفاده از عبارت Format شما می توانید همچنین عبارات را با استفاده از عملگر منطقی OR یا AND ترکیب کنید. یک شرط WHERE از فرمت FormatOR سطرهایی که به ملاک مربوط می گردند خواهد بازگرداند، نظر به اینکه یک شرط WHERE از And Format سطرهایی که به هر دو ملاکها مربوط می گردند را باز خواهد گرداند.

مشخص کردن ملاک پیچیده با استفاده از OR
1- شرط WHERE رادرقاب SQL به WHERE (OilName=’Rosemary’ OR OilName=’Sagy) تغییر می دهیم.

۲- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer دو سطر را نشان می دهد.

مشخص کردن ملاک پیچیده با استفاده از AND
1- شرط WHERE را در قاب SQL به ) %(Oil Name LIKE ‘Rose’ WHERE تغییر می دهیم.

۲- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer ، ۴ سطر را نشان می دهد.

۳- شرط WHERE را در قاب SQL به And (OilID<40) ) %(OilName LIKE Rose WHERE تغییر می دهیم.

۴- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer سطر Roso Otto را شامل می گردد.