PDA

View Full Version : کلاس databaseHandler برای نرم افزار SP Gen آقای کرامتی فر



hosseinab
یک شنبه 11 دی 1390, 23:46 عصر
من پروژه SP Gen آقای کرامتی فر را از این آدرس http://keramatifar.ir/stored-procedure-generator.php دانلود کردم برنامه : spها و همینطور فایل کلاس data access را تولید می کنه که درون این کلاس از کلاس databaseHandler استفاده شده ولی کد این کلاس وجود نداره یا حداقل من چیزی نمی بینم.
خیلی سعی کردم خودم درستش کنم ولی پارامترهای آرایه ای متدها کار را سخت کرد.
حالا کد این کلاس را اگر اساتید لطف کنند بدهند ممنون می شم.

ravand
دوشنبه 12 دی 1390, 10:09 صبح
اين نرم افزاري كه ميگيد كارش چي هست؟
من لينكي داديد رو خوندم ولي چيزي ازش دستگيرم نشد.

irGeek
دوشنبه 12 دی 1390, 11:46 صبح
اين نرم افزاري كه ميگيد كارش چي هست؟
برنامه نویسی چند لایه روشی هست که در اون کد نویسی به چند بخش تقسیم میشه تا امکان مدیریت ‚تصحیح ونگهداری و... در درازمدت وپشرفت پروژه اسان شود. مثلا در معماری سه لایه mvc کد ها به سه بخش ماژول که ارتباط با
پایگاه داده وبخش view که کاربر با آن در ارتباط هست و controller که viewو module رو به هم پیوند میزنه!
Stored Procedure روشی مثل فراخوانی یک تابع معمولی در زبان های برنامه نویسی هست به این صورت که ما query هامون رو دیگه در برنامه نمی نویسیم و انها را فقط فراخوانی می کنیم خود sql ‚query را اجرا میکنه ونتیجه رو بر می گردونه در نتیجه برنامه نویس از داخل بانک سر در نمی آورد که چه خبره!
حالا کاری که آقای کرامتی کرده این روند رو فرموله کرده که دیگه مجبور به تکرار این روند نباشیم!
اگه موضوع براتون جالبه به مراجعش مراجعه کنید.

کلاس databaseHandler استفاده شده ولی کد این کلاس وجود نداره یا حداقل من چیزی نمی بینم.
شرمنده که می پرسم ولی شما اصلا با Stored Procedure آشنا هستین .یا تنها از پروژه اقای کرامتی سر در نیاوردین؟

hosseinab
دوشنبه 12 دی 1390, 22:02 عصر
اين نرم افزاري كه ميگيد كارش چي هست؟
من لينكي داديد رو خوندم ولي چيزي ازش دستگيرم نشد.

والا من هم تازه کارم ولی چیزی که دستگیرم شده اینه:
sp gen یا stored procedure generator کارش تولید stored procedure هست
همانطور که دوست خوبمون توضیح دادند spها توابعی هستند که کدهای sql را در همان دیتابیس قرار می دهند و برنامه نویس فقط این توابع را -با پارامتر- فراخوانی می کند بنابراین برنامه نویس وب نیازی به دانستن اطلاعاتی از زبان sql ندارد.

این نرم افزار هم با دادن اسم دیتابیس و اسم جدول موردنظر 5 تا از sp های متداول مثل حذف، به روزرسانی، درج، انتخاب 1 و همه رکوردها را پیاده سازی و در دیتابیس ذخیره می کند.
کد تولید کننده یک sp برای برگداندن یک سطر از جدول:


CREATE PROCEDURE `sp_cds_SelectRow`(IN _id int)
BEGIN
SET NAMES UTF8;
SELECT titel, interpret, jahr, id FROM cds WHERE id = _id;
END

البته برای فراخوانی توابع تولید شده باید یک کلاس هم در برنامه نوشته شود....

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


Class CDS
{
public static function cds_SelectAll()
{
$sql = 'CALL `sp_cds_SelectAll`()';
DatabaseHandler::Close();
return DatabaseHandler::GetAll($sql);
}
public static function cds_SelectRow($id)
{
$sql = 'CALL `sp_cds_SelectRow`(:id)';
$params = array (':id' => $id);
DatabaseHandler::Close();
return DatabaseHandler::GetRow($sql, $params);
}
public static function cds_DeleteRow($id)
{
$sql = 'CALL `sp_cds_DeleteRow`(:id)';
$params = array (':id' => $id);
DatabaseHandler::Close();
return DatabaseHandler::Execute($sql, $params);
}
public static function cds_UpdateRow($titel, $interpret, $jahr, $id)
{
$sql = 'CALL `sp_cds_UpdateRow`(:titel, :interpret, :jahr, :id)';
$params = array (':titel' => $titel, ':interpret' => $interpret, ':jahr' => $jahr, ':id' => $id);
DatabaseHandler::Close();
return DatabaseHandler::Execute($sql, $params);
}
public static function cds_Insert($interpret, $jahr, $id)
{
$sql = 'CALL `sp_cds_Insert`(:interpret, :jahr, :id)';
$params = array (':interpret' => $interpret, ':jahr' => $jahr, ':id' => $id);
DatabaseHandler::Close();
return DatabaseHandler::Execute($sql, $params);
}
}


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