dhrd.agri-jahad.ir

Download Report

Transcript dhrd.agri-jahad.ir

‫جلسه یازدهم‬
Microsoft SQL Server 2005 - Implementation and Maintenance
‫زبان "کنترل جریان"‬
‫زبان کنترل جریان بخشی از دستورات ‪ T-SQL‬را در بر می گیرد که جریان اجرای دستورات را در یک بلوک‬
‫دستورات ‪ ،‬یک ‪ User Defined Function‬و یا یک ‪ Stored Procedure‬بر عهده می گیرد ‪.‬‬
‫بدون استفاده از دستورات این زبان‪ ،‬دستورات زبان ‪ T-SQL‬به صورت ترتیبی و پشت سرهم اجرا می شوند‪.‬‬
‫با استفاده از این دستورات ‪ ،‬امکان تعریف شرط ‪ ،‬حلقه ‪ ،‬پرش از دستورات و نظایر آن فراهم می شود ‪.‬‬
‫کنترل جریان از دستورات زیر تشکیل شده است ‪:‬‬
‫‪BEGIN...END‬‬
‫‪BREAK‬‬
‫‪GOTO‬‬
‫‪CONTINUE‬‬
‫‪IF...ELSE‬‬
‫‪WHILE‬‬
‫‪RETURN‬‬
‫‪WAITFOR‬‬
‫‪Control-of-Flow Language‬‬
‫کار با متغیر ها در ‪T-SQL‬‬
‫تعریف متغیر ‪ :‬یکی از اشیا در ‪ SQL Server‬است که برای حمل و نگهداری مقادیر مفرد (یکتا ‪ )Single‬به کار‬
‫می روند ‪.‬‬
‫متغیر ها در ‪ T-SQL‬به منظور های زیر به کار می روند‪:‬‬
‫‪ -1‬به عنوان یک شمارنده که معموال ً تعداد دفعات اجرای یک حلقه را مشخص می کنند ‪.‬‬
‫‪ -2‬برای حمل داده های استفاده شده در یک ”کنترل جریان“ )‪.(Control-of-Flow‬‬
‫‪ -3‬ذخیره داده ها به منظور بازگردادندن توسط یک ‪ Function‬و یا ‪Stored Procedure‬‬
‫از عالمت @ به منظور معرفی یک متغیر استفاده می شود ‪.‬‬
‫برای تعریف یک متغیر از قالب زیر استفاده می شود ‪:‬‬
‫‪@VariableName‬‬
‫‪Declare‬‬
‫برای مقدار دهی به متغیر ها از یکی از قالب های زیر استفاده می شود ‪:‬‬
‫‪@VariableName = Value‬‬
‫‪Select‬‬
‫یا‬
‫‪@VariableName = Value‬‬
‫‪Control-of-Flow Language‬‬
‫‪Set‬‬
T-SQL ‫کار با متغیر ها در‬
: ‫مثال‬
Declare @Number
Set
@Number
Select
@Number
Use [Lab-EasyShop]
Declare @Title
@Titles
Set
Select
From
@Titles
@Title
Category
Where ID = 1
Select
@Titles
From
Category
Select
@Title
@Titles
Int
=
10
: ‫مثال‬
nVarChar(100),
nVarChar(Max)
=
=
N''
Title
=
Title + N','+ @Titles
As
As
Title ,
Titles
Control-of-Flow Language
‫دستور ‪IF … Else‬‬
‫برای تعریف شرط بکار می رود ‪.‬‬
‫قالب کلی دستور به شکل زیر است ‪:‬‬
‫عبارت شرطی ‪If‬‬
‫کد دستورات مورد نظر‬
‫]‪[ELSE‬‬
‫]کد دستورات مورد نظر[‬
‫مثال ‪:‬‬
‫‪Int‬‬
‫‪= 15‬‬
‫‪@Number‬‬
‫‪@Number‬‬
‫‪=0‬‬
‫‪Control-of-Flow Language‬‬
‫‪Declare‬‬
‫‪Set‬‬
‫‪if @Number % 2‬‬
‫'‪Print 'Even‬‬
‫‪Else‬‬
‫'‪Print 'Odd‬‬
IF … Else ‫دستور‬
: ‫مثال‬
‫ چنانچه متغیر اولی از دومی بزرگتر بود بدون استفاده از هیچ متغیر‬، ‫مطلوبست جابجایی دو مقدار در متغیر‬
. ‫واسط‬
Declare
Select
If
Select
@FirstNumber Int ,
@SecondNumber Int
@FirstNumber =
@SecondNumber =
100 ,
1
@FirstNumber >
@SecondNumber
Begin
Set
@FirstNumber
= @FirstNumber + @SecondNumber
Set
@SecondNumber = @FirstNumber - @SecondNumber
Set
@FirstNumber
= @FirstNumber - @SecondNumber
End
@FirstNumber
@SecondNumber
As FirstNumber,
As SecondNumber
Control-of-Flow Language
While ‫دستور‬
. ‫برای تعریف حلقه بکار می رود‬
: ‫قالب کلی دستور به شکل زیر است‬
While ‫عبارت شرطی حضور در حلقه‬
[Begin]
‫کد دستورات مورد نظر‬
[End]
: ‫مثال‬
Declare
@Number Int
Set
@Number = 100
While
@Number > 0
Begin
Print
@Number
Set @Number
=@Number
End
-1
Control-of-Flow Language
While ‫دستور‬
: ‫مثال‬
‫مطلوبست اعداد زوج بین دو عدد‬
Declare
@FirstNumber Int ,
@SecondNumber Int
Select
@FirstNumber =
100 ,
@SecondNumber = 1
If
@FirstNumber >
@SecondNumber
Begin
Select
@FirstNumber
= @FirstNumber + @SecondNumber ,
@SecondNumber = @FirstNumber - @SecondNumber ,
@FirstNumber
= @FirstNumber - @SecondNumber
End
Set @FirstNumber
= @FirstNumber + @FirstNumber
% 2
While
@FirstNumber
<= @SecondNumber
Begin
Print
@FirstNumber
Set @FirstNumber = @FirstNumber + 2
End
Control-of-Flow Language
‫‪Stored Procedure‬‬
‫قطعه برنامه هایی هستند که عمدتاً از دستوراتی به زبان ‪ T-SQL‬تشکیل می شوند و می توانند هرگاه‬
‫توسط کاربر فراخوانی می شوند ‪ ،‬عملیات مورد نظر وی را بر روی اشیاء مختلف بانک اطالعاتی انجام دهند ‪.‬‬
‫دقت کنید که ‪ Stored Procedure‬ها توانایی بسیار در حل انواع مسائل مرتبط با بانک اطالعاتی دارند و در‬
‫معماری ‪ Fat Server‬کمک شایانی به کاهش بار ترافیک شبکه می نمایند ‪.‬‬
‫از مهمترین ویژگیهای ‪ Stored Procedure‬ها می توان به موارد زیر اشاره کرد ‪:‬‬
‫‪ -1‬قابلیت پذیرفتن پارامترهای متعددی را به عنوان ورودی و خروجی دارند ‪.‬‬
‫‪ -2‬امکان فراخوانی سایر ‪ Procedure‬ها را دارند و از یک مجموعه دستورات پشتیبانی می کنند ‪.‬‬
‫‪ -3‬هنگام فراخوانی ‪ ،‬موفقیت آمیز بودن و یا برخورد با اشکاالت را می توانند گزارش نمایند ‪.‬‬
‫انواع مختلفی از ‪ Stored Procedure‬ها وجود دارند ‪:‬‬
‫‪System Stored Procedure -1‬‬
‫‪Standard Stored Procedure -2‬‬
‫‪Temporary Stored Procedure -3‬‬
‫‪Extended Stored Procedure -4‬‬
‫‪Stored Procedure‬‬
‫دسته اول ‪ Stored Procedure‬هایی هستند که توسط خود ‪ SQL Server‬در اختیار کاربر قرار می گیرند و‬
‫معموال ً دارای پیشوند " _‪ "Sp‬می باشند ‪.‬‬
‫دسته دوم ‪ Stored Procedure‬توسط کاربر و برای محقق سازی اهداف گوناگون ‪ ،‬مورد استفاده قرار می‬
‫گیرند ‪.‬‬
‫دسته سوم ‪ Stored Procedure‬ها نیز توسط کاربران و به منظور استفاده موقت به کارگرفته می شوند ‪.‬‬
‫دسته چهارم ‪ Stored Procedure‬آنهایی هستند که با زبانی به غیر از ‪ T-SQL‬ایجاد شده اند ‪.‬‬
‫در نگارش ‪ SQL Server 2005‬عالوه بر قابلیت های توسعه ای که در نسخ قبلی فقط بر روی بانک اطالعاتی‬
‫‪ Master‬و زبان ‪ C++‬وجود داشت ‪ ،‬امکان بوجود آوردن ‪ Stored Procedure‬هایی به زبان های مختلف تحت‬
‫‪ .NET Framework 2.0‬نیز نظیر ‪ C#‬و یا ‪ VB.Net‬وجود دارد‪.‬‬
‫این دسته از ‪ Stored Procedure‬ها معموال ً دارای پیشوند " _‪ “Xp‬می باشند ‪.‬‬
‫اساس درس ما بر ایجاد و توسعه دسته دوم ‪ Stored Procedure‬انطباق دارد ‪.‬‬
‫ایجاد ‪Stored Procedure‬‬
‫برای ایجاد یک ‪ Stored Procedure‬از قالب زیر استفاده می شود‬
‫نام مورد نظر‬
‫‪Create Procedure‬‬
‫)فهرست پارامترها(‬
‫‪As‬‬
‫‪Begin‬‬
‫لیست دستورات ‪T-SQL‬‬
‫‪End‬‬
‫چند نکته ‪:‬‬
‫‪ Stored Procedure -1‬ها می توانند یک مقدار ‪ Int‬را به عنوان نتیجه عملیات اجرایی خود ‪ ،‬با استفاده از‬
‫دستور ‪ Return‬باز گردانند ‪.‬‬
‫‪ -2‬پارامتر ها در ‪ Stored Procedure‬ها می توانند دارای مقادیر پیش فرض باشند ‪.‬‬
‫‪ Stored Procedure -3‬می توانند مقادیر متغییر های ورودی را تغییر داده و در صورت نیاز مقادیر تغییر یافته‬
‫فوق را با استفاده از عبارت ‪ Output‬در هنگام تعریف متغیر ‪ ،‬باز گردانند ‪.‬‬
: ‫مثال‬
‫ برای جابجایی اعداد‬Stored Procedure ‫مطلوبست‬
Use [Lab-Inventory]
Go
Create Procedure Swap
(
@FirstNumber Int Output ,
@SecondNumber Int
Output
)
As
Begin
Select
@FirstNumber
= @FirstNumber + @SecondNumber ,
@SecondNumber
= @FirstNumber - @SecondNumber ,
@FirstNumber
= @FirstNumber - @SecondNumber
End
: ‫مثال‬
‫ برای بازگرداندن اعداد اول بین دو عدد‬Stored Procedure ‫مطلوبست‬
‫حل کامل در فایل پیوست جلسه‬
Use [Lab-Inventory]
Go
Create Procedure PrimeNumber(
@FirstNumber Int
=1 ,
@SecondNumber
Int
=100
)
As
Begin
...
End
‫اجرای ‪Stored Procedure‬‬
‫برای اجرای یک ‪ Stored Procedure‬با استفاده از دستور ‪ Execute‬از قالب زیر استفاده می شود ‪:‬‬
‫])فهرست پارامترها[‬
‫نام ‪ SP‬مورد نظر‬
‫]=نام متغیر[‬
‫‪Execute‬‬
‫مثال ‪:‬‬
‫‪3,1000‬‬
‫‪Execute‬‬
‫‪PrimeNumber‬‬
‫چند نکته ‪:‬‬
‫‪-1‬چنانچه هنگام اجرای ‪ Stored Procedure‬ها ‪ ،‬تمایل داریم از مقادیر پیش فرض استفاده کنیم ‪ ،‬می توانیم از‬
‫عبارت ‪ Default‬به جای مقدار ورودی استفاده کنیم‬
‫مثال ‪:‬‬
‫‪Default , 500‬‬
‫‪Execute‬‬
‫‪PrimeNumber‬‬
‫‪ -2‬در صورتیکه پارامتری در ‪ Stored Procedure‬بصورت ‪ Output‬تعریف شده ‪ ،‬هنگام فراخوانی آن نیز می بایست‬
‫از عبارت ‪ Output‬در کنار مقدار ورودی استفاده نمود و ضمناً مقدار ورودی بایستی حتماً یک متغیر باشد ‪.‬‬
‫مثال ‪:‬‬
‫‪Int ,‬‬
‫‪20‬‬
‫=‬
‫‪@Y Output‬‬
‫‪@Y‬‬
‫‪100 ,‬‬
‫‪Declare @X‬‬
‫‪Int‬‬
‫‪@Y‬‬
‫=‬
‫‪@X‬‬
‫‪@X Output ,‬‬
‫‪Select‬‬
‫‪Execute Swap‬‬
‫اجرای ‪Stored Procedure‬‬
‫‪ -3‬برای دریافت مقدار بازگشتی یک ‪ ، Stored Procedure‬ابتدا بایستی یک متغیر از نوع ‪ Int‬تعریف کرده و در‬
‫زمان اجرای ‪ Stored Procedure‬مقدار خروجی را در آن قرار داد ‪.‬‬
‫مثال ‪:‬‬
‫‪6,250‬‬
‫‪Int‬‬
‫‪=PrimeNumber‬‬
‫]‪As [Count‬‬
‫‪Declare @Result‬‬
‫‪Execute @Result‬‬
‫‪Select @Result‬‬
‫‪ -4‬امکان صدا زدن یک ‪ Stored Procedure‬در عملیات و دستورالعمل های یک ‪ Stored Procedure‬دیگر وجود دارد‬
‫‪ ،‬تنها بایستی دقت کرد که تو در تو بودن عملیات ‪ ،‬تا ‪ 32‬مرحله قابل انجام است ‪ .‬این محدودیت شامل حال‬
‫‪ Stored Procedure‬هایی که با زبان ‪ CLR‬در ‪ .Net‬نوشته می شوند ‪ ،‬نمی شود ‪.‬‬
‫برای پی بردن به مرحله تو رفتگی جاری می توان از تابع ‪ @@NestLevel‬استفاده نمود ‪.‬‬
‫اجرای پویای دستورات در ‪T-SQL‬‬
‫با استفاده از دستور ‪ Execute‬و تعریف متغیرهای حاوی دستورات زبان ‪ ، T-SQL‬دستورات زبان ‪ T-SQL‬را می توان‬
‫بصورت پویا )‪ (Dynamic‬اجرا نمود ‪.‬‬
‫قالب کلی دستور به شکل زیر است ‪:‬‬
‫)نام پارامتر حاوی دستورات@( ‪Execute‬‬
‫مثال ‪:‬‬
‫';‪Customer‬‬
‫برنامه نویسی ‪T-SQL‬‬
‫]‪Use [Lab-EasyShop‬‬
‫)‪Declare @Command VarChar(Max‬‬
‫‪Select @Command = 'Select * From‬‬
‫)‪Execute (@Command‬‬
‫متغیر جدولی و خروجی‬
‫استفاده از متغیر جدولی در ‪ T-SQL‬امکان پذیر است و در واقع متغیر جدولی اساساً جدولی است که در حافظه‬
‫‪ ،‬هنگام اجرای دستورات یک برنامه ساخته می شود و پس از اتمام عملیات در خواستی برنامه ‪ ،‬از حافظه خارج‬
‫می شود ‪.‬‬
‫دقت کنید چنانچه متغیر جدولی به عنوان خروجی یک زیر برنامه مد نظر است ‪ ،‬می بایست بصورت متغیر از نوع‬
‫جدولی در برنامه در نظر گرفته شود و نهایتاً خروجی زیر برنامه در آن ذخیره شود ‪ .‬توجه به این نکته که جدول‬
‫ساخته شده بایستی از لحاظ تعداد و نوع داده ای ستونها با جدولی که در برنامه ایجاد می شود ‪ ،‬متناظر‬
‫باشد‪.‬‬
‫مثال ‪:‬‬
‫)‪Int‬‬
‫‪Declare @DataResult Table(Number‬‬
‫‪Insert Into @DataResult‬‬
‫‪Execute PrimeNumber 120,250‬‬
‫‪Select * From @DataResult‬‬
‫برنامه نویسی ‪T-SQL‬‬
‫پیمایش خروجی ‪ Result Set‬ها‬
‫استفاده از ‪ Cursor‬برای پیمایش ‪ Result Set‬ها و حرکت روی آنها در ‪ SQL Server 2005‬نیز امکان پذیر است ‪.‬‬
‫‪ Cursor‬در واقع بر روی رکوردهای خروجی حرکت کرده و در حین حرکت خود امکاناتی نظیر قفل گذاری بر روی‬
‫رکورد را نیز داراست ‪ .‬دقت کنید که تعریف ‪ Cursor‬و باز کردن آن و پیمایش جداول توسط آن عملی نسبتاً کند و‬
‫حافظه بر است و بایستی در انتهای عملیات حتماً ‪ Cursor‬بسته شود تا حافظه اشغال شده توسط آن آزاد گردد‪.‬‬
‫برای تعریف ‪ Cursor‬از قالب زیر استفاده می شود ‪:‬‬
‫نام مورد نظر‬
‫‪Cursor‬‬
‫دستور‬
‫برای باز کردن ‪ Cursor‬از قالب زیر استفاده می شود ‪:‬‬
‫مثال ‪:‬‬
‫‪Cursor‬‬
‫برنامه نویسی ‪T-SQL‬‬
‫‪Select‬‬
‫‪Declare‬‬
‫‪For‬‬
‫نام مورد نظر‬
‫‪Open‬‬
‫‪CustomerCursor‬‬
‫‪Select‬‬
‫*‬
‫‪From‬‬
‫‪Customer‬‬
‫‪Declare‬‬
‫‪For‬‬
‫‪CustomerCursor‬‬
‫‪Open‬‬
‫پیمایش خروجی ‪ Result Set‬ها‬
‫برای پیمایش رکوردها از قالب زیر استفاده می شود ‪:‬‬
‫]‪[NEXT | PRIOR | FIRST | LAST | ABSOLUTE RELATIVE‬‬
‫‪FETCH‬‬
‫نام ‪FROM‬‬
‫]فهرست متغیر ها ‪[ INTO‬‬
‫نکته ‪ :‬حالت ‪ Next‬به عنوان حالت پیش فرض می باشد ‪ ،‬و جنانجه نیاز به استفاده از سایر حالتها باشد ‪،‬‬
‫‪ Cursor‬بایستی در حالت ‪ SCROLL‬تعریف شده باشد ‪ .‬برای آگاهی از انواع ‪ Cursor‬ها به ‪Books Online‬‬
‫مراجعه شود‪.‬‬
‫نتیجه دستور ‪ Fetch‬با استفاده از تابع ‪ @@Fetch_Status‬قابل دستیابی می باشد ‪ .‬این تابع سه مقدار حروجی‬
‫بر می گرداند ‪:‬‬
‫‪ : 0‬رکورد با موفقیت واکشی شد ‪.‬‬
‫‪ : -1‬واکشی دچار اشکال شد ‪.‬‬
‫‪ : -2‬رکورد مورد نظر پیدا نشد ‪.‬‬
‫برنامه نویسی ‪T-SQL‬‬
‫ ها‬Result Set ‫پیمایش خروجی‬
: ‫ و آزاد سازی حافظه از قالب زیر استفاده می شود‬Cursor ‫برای بستن‬
Close
‫ مورد نظر‬Cursor ‫نام‬
Deallocate
Declare
‫ مورد نظر‬Cursor ‫نام‬
@ID
@LastName
: ‫مثال‬
Int ,
nVarChar(50)
Declare
CustomerCursor Cursor
For Select
ID ,
LastName
From
Customer
Open CustomerCursor
Fetch Next
From CustomerCursor
Into
@ID ,
@LastName
Declare
@Command VarChar(Max)
While @@Fetch_Status = 0
Begin
if @LastName
= 'Jafari'
Begin
Set @Command = 'Update Customer
RTrim(LTrim(Convert(VarChar(10) , @ID)))
Execute
(@Command)
Print 'Executed'
End
Print @LastName
Fetch Next
From CustomerCursor
Into
@ID ,
@LastName
End
Close
CustomerCursor
Deallocate CustomerCursor
Set LastName = ' + Char(39) + 'Jafari Namin' + + Char(39) + '
Where ID
= ' +
T-SQL ‫برنامه نویسی‬
‫ ها‬Result Set ‫پیمایش خروجی‬
‫به نظر شما راه حل ساده تری وجود نداشت ؟‬
: ‫مثال‬
Update Customer
Set
LastName = 'Jafari Namin'
Where
LastName = 'Jafari'
T-SQL ‫برنامه نویسی‬
‫کنترل خطاها با ‪SEH‬‬
‫در ‪ SQL Server‬امکان کنترل خطاها به روش ‪ (Structured Exception Handling) ، SEH‬با استفاده از بلوک ‪Try-‬‬
‫‪ Catch‬وجود دارد ‪ .‬هنگام بروز خطا در بلوک ‪ ، Try‬اجرای دستورات به بلوک ‪ Catch‬منتقل خواهد شد ‪ .‬در بلوک‬
‫‪ Catch‬می توان از دو تابع )(‪ Error_Message‬و )(‪ Error_Number‬برای بررسی جزئیات خطا استفاده نمود ‪.‬‬
‫قالب کلی استفاده از آن به شکل زیر است ‪:‬‬
‫‪Try‬‬
‫‪Begin‬‬
‫…‬
‫‪Try‬‬
‫‪End‬‬
‫‪Catch‬‬
‫‪Begin‬‬
‫…‬
‫‪Catch‬‬
‫برنامه نویسی ‪T-SQL‬‬
‫‪End‬‬
‫ایجاد خطا در ‪SQL Server‬‬
‫از دستور ‪ RaisError‬برای تولید خطا در ‪ SQL Server‬استفاده می شود ‪.‬‬
‫قالب کلی استفاده از آن به شکل زیر است ‪:‬‬
‫)محل بروز خطا‪,‬شدت خطا‪,‬پیام خطا(‬
‫‪RaisError‬‬
‫نکته ‪ :‬اعداد مربوط به شدت خطا و محل بروز خطا اعدادی دلبخواه هستند که توسط کاربر وارد می شوند اما‬
‫محدوده خاصی از آنها در ‪ SQL Server‬تفسیر خاصی دارند ‪.‬‬
‫مثال ‪:‬‬
‫برنامه نویسی ‪T-SQL‬‬
‫توابع رشته ای در ‪SQL Server‬‬
‫مقدار کد ‪ Ascii‬مربوط به کاراکتر مورد نظر را برمی گرداند‬
‫یک کد ‪ Ascii‬مربوط را به یک کاراکتر معادل تبدیل می کند‬
‫مقدار کد ‪ Unicode‬مربوط به کاراکتر مورد نظر را برمی گرداند‬
‫یک کد ‪Unicode‬مربوط را یک کاراکتر معادل تبدیل می کند‬
‫در یک رشته محل شروع یک عبارت را اعالم می کند‬
‫تعداد مشخص کاراکتر از سمت چپ رشته را بر می گرداند‬
‫تعداد مشخص کاراکتر از سمت راست رشته را بر می گرداند‬
‫تعداد مشخص کاراکتر از محل مشخص شده در رشته را بر می گرداند‬
‫رشته را به حروف کوچک تبدیل می کند‬
‫رشته را به حروف بزرگ تبدیل می کند‬
‫در کل رشته مورد نظر عبارت خاصی را با عبارت دیگری جایگزین می کند‬
‫کل فضا های خالی سمت چپ یک رشته را حذف می کند‬
‫کل فضا های خالی سمت راست یک رشته را حذف می کند‬
‫به تعداد مورد نظر ‪ ،‬فضای خالی بر می گرداند‬
‫یک رشته را بصورت برعکس بر می گرداند‬
‫طول یک رشته را بر می گرداند‪.‬‬
‫یک مقدار عددی را به یک رشته تبدیل می کند‪.‬‬
‫یک رشته را به تعداد مشخص تکرار می کند ‪.‬‬
‫برنامه نویسی ‪T-SQL‬‬
‫‪Ascii‬‬
‫‪Char‬‬
‫‪Unicode‬‬
‫‪NChar‬‬
‫‪CharIndex‬‬
‫‪Left‬‬
‫‪Right‬‬
‫‪Substring‬‬
‫‪Lower‬‬
‫‪Upper‬‬
‫‪Replace‬‬
‫‪LTrim‬‬
‫‪RTrim‬‬
‫‪Space‬‬
‫‪Reverse‬‬
‫‪Len‬‬
‫‪Str‬‬
‫‪Replicate‬‬
‫مطلوبست نوشتن زیر برنامه ای برای انتقال اعتبار بین‬
‫دو حساب در بانک اطالعاتی ‪SimpleBankning‬‬
‫شرایط زیر بایستی محقق شود ‪:‬‬
‫‪ -1‬شماره حسابهای انتقال دهنده و انتقال گیرنده و مبلغ انتقال ورودی های زیر برنامه‬
‫هسنتد ‪.‬‬
‫‪-2‬شماره ها بایستی از نظر معتبر بودن چک شوند ‪.‬‬
‫‪ -3‬انتقال بیش از ‪ 20000‬دالر در هر روز از یک حساب امکان پذیر نمی باشد‪.‬‬
‫‪ -4‬انتقال وجه تنها بین حسابهای فعال امکان پذیر می باشد ‪.‬‬
‫‪ -5‬موجودی حساب پس از انتقال وجه نمی تواند از ‪ 200‬دالر کمتر شود ‪.‬‬
‫‪ -6‬در صورت انتقال اعتبار زیر برنامه ‪ ،‬مقدار صفر و در صورت عدم موفقیت در انتقال ‪،‬‬
‫می بایست عددی منفی بر حسب رخداد باز گرداند‬