PDA

View Full Version : ایجاد پروسیجر در sql



ghasem110deh
جمعه 21 شهریور 1393, 16:39 عصر
سلام به همه ...میخوام تو sql یه پروسیجر ایجاد کنم که بر حسب یه فیلد (Fact) از جدول (Sell)اطلاعات مربوط به همون شماره فاکتور رو ، تو استیمول بگیرم ...در واقع واسه چاپ فاکتور !اما همون اول کار گیر کردم (عکس ضمیمه)

Pedram_Parsian
جمعه 21 شهریور 1393, 17:03 عصر
دوست عزیز

یه اشتباه ساده : قبل From از علامت , استفاده کردید

ghasem110deh
جمعه 21 شهریور 1393, 17:19 عصر
ممنون ...
اولین تجربه است !
حالا به این گیر میده :

mohammad reza beizavi
جمعه 21 شهریور 1393, 18:04 عصر
درود بر شما
شما تا بحال این stored procedure را ایجاد نکرده اید، پس ALTER را با CREATE جایگزین کنید، بعد اجرا کنید تا sp ساخته بشه

ghasem110deh
جمعه 21 شهریور 1393, 18:12 عصر
ممنون ... الان ردیف شد ...
------------------------------
شرمنده بابت اشتباهی بودن تاپیک ... ممنون بابت انتقال !
------------------------------
بنظرم متوجه شدید که کلا ناشی هستم ! از این راه میتونم به چیزی که گفتم برسم ؟ (نمایش یه فیلد خاص در استیمول بر اساس شماره فاکتور)

Pedram_Parsian
جمعه 21 شهریور 1393, 18:22 عصر
ممنون ... الان ردیف شد ...
------------------------------
شرمنده بابت اشتباهی بودن تاپیک ... ممنون بابت انتقال !
------------------------------
بنظرم متوجه شدید که کلا ناشی هستم ! از این راه میتونم به چیزی که گفتم برسم ؟ (نمایش یه فیلد خاص در استیمول بر اساس شماره فاکتور)

آره دوست عزیز ....
کار نشد نداره البته اگه دنبالش باشی !
به نظر من اگه دفعه اولی هست که می خواید با StimulSoft کار کنید این تاپیک (http://barnamenevis.org/showthread.php?384771-%D8%B3%D8%A6%D9%88%D8%A7%D9%84%D8%A7%D8%AA%DB%8C-%DA%A9%D9%87-%D9%87%D8%B1-%D8%AA%D8%A7%D8%B2%D9%87-%DA%A9%D8%A7%D8%B1%DB%8C-%DA%A9%D9%87-%D9%85%DB%8C-%D8%AE%D9%88%D8%A7%D9%87%D8%AF-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-StimulSoft-Reports-%D8%B1%D8%A7-%D8%A2%D8%BA%D8%A7%D8%B2-%DA%A9%D9%86%D8%AF) رو مشاهده کنید خالی از لطف نیست

ghasem110deh
جمعه 21 شهریور 1393, 23:07 عصر
سلام ...
آقا فاکتور رو اونطوری که میخواستم ردیف شد ! (خدا رو شکربا راهنمایی شما)
رو سیستم خودم اجرا میشه و نمایش میده ...
ولی رو یه سیستم دیگه که نصب میکنم خطا میده :
(عکس های ضمیمه)

mohammad reza beizavi
جمعه 21 شهریور 1393, 23:12 عصر
الان stored procedure روی این سیستمی که error میده داخل دیتابیس نیست. چک کنید مطمئنا مشکل از همینه

ghasem110deh
جمعه 21 شهریور 1393, 23:17 عصر
البته ...
مثل اینکه میگه اون پریسیجور رو پیدا نمیکنه !
پس چرا رو سیستم خودم جواب میده ....

mohammad reza beizavi
جمعه 21 شهریور 1393, 23:25 عصر
شما بعد از آخرین تغییرات دیتابیس رو مجددا به سیستم مربوطه انتقال دادین؟؟؟

ghasem110deh
جمعه 21 شهریور 1393, 23:58 عصر
الان stored procedure روی این سیستمی که error میده داخل دیتابیس نیست. چک کنید مطمئنا مشکل از همینه

سلام
درسته ... تو دیتابیس اینجا پروسیجر نیست !
تازه الان پست شمارو دیدم ...
اینجاهم باید پروسیجر رو بسازیم ؟

mohammad reza beizavi
شنبه 22 شهریور 1393, 00:01 صبح
بله دیگه
یا اینکه دوباره دیتابیس رو کامل ببرید روی اون سیستم

ghasem110deh
شنبه 22 شهریور 1393, 01:05 صبح
تنها راهش همینه ؟
مثلا برنامه هایی که کلا (رو یه سی دی رایت شده) میخری ... اگه بانک داشته باشن باید بیان این کار ها رو هم رو سیستم مشتری بکنن !

-----------------------

من موقع ساخت بانک آدرس پوشه دیباگ رو دادم همونجا هم بود که ستاپ ساختم و رو این سیستم نصب کردم ... چرا باید اینطوری باشه ؟

mohammad reza beizavi
شنبه 22 شهریور 1393, 01:28 صبح
در برنامه ها قدیمی تر sql express رو نصب می کردیم و در مراحل نصب برنامه فایل mdf و ldf دیتابیس رو کپی می کردیم در مکان خاصی و بعد با دستور دیتابی رو attach می کریم.
اما الان راه بسیار کم دردسر و راحتی وجود دارد و اون هم استفاده از LocalDB هست که از دات نت 4.5 اضافه شده. این دیتابیس فقط به صورت فایل mdf هست و نیاز به نصب نداره و وقتی که در پوشه app_data قرارش می دید همراه با پروژه میذارید رو سیستم client. چون در connection string هم از localDirectory که همون پوشه app_Data هست استفاده میشه دیگه همه چیز تمومه.

ghasem110deh
شنبه 22 شهریور 1393, 02:52 صبح
دمت گرم که مثل خودم خواب نداری ...
اما نگرفتم !
آموزش ... :)

pezhvakco
شنبه 22 شهریور 1393, 08:49 صبح
تنها راهش همینه ؟
مثلا برنامه هایی که کلا (رو یه سی دی رایت شده) میخری ... اگه بانک داشته باشن باید بیان این کار ها رو هم رو سیستم مشتری بکنن !
برای بروز رسانی پایگاه داده می شه با کد نویسی (Export / Script) خواسته رو انجام داد .
فقط کافی کد دستور (Script) رو اجرا کنی .

mohammad reza beizavi
شنبه 22 شهریور 1393, 09:22 صبح
درود دوباره
ساده و بی دردسر
یه پروژه ویندوزی بسازید با دات نت 4.5، بعد توی solution explorer رو پروژه راست کلیک کنید و add و بعدشم New Item از سمت راست Data رو انتخاب کن، بعد از صفحه اصلی service-based Database رو انتخاب کن و نامش و Add.
حالا توی App.conf این connection string رئ البته با مشخصات خودت بذار. فقط |LocalDirectory| آدرس نسبی دیتابیسه که خود پروژه میشناسدش.
اینم نمونه Connection string:


<add name="ConnectionStringName"
providerName="System.Data.SqlClient"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirec tory|\DatabaseFileName.mdf;InitialCatalog=Database Name;Integrated Security=True; />

اگه می خوای با دیتابیس کار کنی کافیه دوبار روی فایل mdf پروژه کلیک کنی تا قسمت server explorer باز بشه و شروع کنی به کار.

بعد از اتمام پروژه هم، فایل mdf کنار فایل exe میاد (اتوماتیک ) و کار می کنه. به همین سادگی.....

ghasem110deh
شنبه 22 شهریور 1393, 13:15 عصر
پروژه من با دات نت 3.5 هستش !
جواب نمیده ؟

mohammad reza beizavi
شنبه 22 شهریور 1393, 13:29 عصر
localdb در .Net 4.0.2 به بالا پشتیبانی میشه.
فکر کنم بهترین راه اینه که شما از این نسخه و ترجیحا 4.5 استفاده کنید. چون این نسخه خیلی راحت روی win 7 و win 8 نصب میشه و احتمالا برنامه شما تا الان نسخه های زیادی هم نداره که به مشکل بر بخورید.

m@s0udsabzaliltn-4
شنبه 22 شهریور 1393, 21:17 عصر
سلام
من میخوام Stored Procedures رو یاد بگیریم
چرا ازش استفاده میکنیم ؟
روش ساختنش یه چه شکل هست؟

mohammad reza beizavi
شنبه 22 شهریور 1393, 21:49 عصر
سلام
من میخوام Stored Procedures رو یاد بگیریم
چرا ازش استفاده میکنیم ؟
روش ساختنش یه چه شکل هست؟

درود بر شما
stored procedure یا رویه های ذخیره شده همون کوئری های آماده هستند که درون دیتابیس ساخته میشوند و در زمان نیاز صدا زده می شوند و مورد استفاده قرار می گیرند.
استفاده از stored procedure مزایایی دارد که می توان به موارد زیر اشاره کرد:
به جدا سازی کدهای دیتابیس از کدهای نرم افزار کمک می کند و عیب یابی و توسعه ی نرم افزار را بسیار بهتر می کند.
سرعت اجرای کد ها توسط دیتابیس بیشتر از سرعت اجرای کد در زبانهاب برنامه نویسی مانند سی شارپ و ... است.
به دلیل کامپایل شدن stored procedure در اولین مرتبه استفاده، سرعت اجرای کد بسیار بیشتر از حالت عادی کوئری گرفتن است.
اگر از sql server و oracle استفاده کنید قابلیت encrypt شدن داره و ساختار کوئری از دیده شدن توسط هر کسی و یا هر نرم افزاری جلوگیری می کنه.
و....

روش ساختن sp هم به این بر میگرده که از کدوم دیتابیس استفاده می کنید. SQL Server ؟ Oracle؟ MySQL؟