صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 52

نام تاپیک: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

  1. #1
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    با سلام
    خبری جالب به عزیزانی که برنامه نویسی دیتابیس میکنند :
    با تلاش و کوشش فراوان، و با هماهنگی ای که اینجانب(حامد وزیری) با آقای کرامتی (DelphiAssistant) به عمل آوردیم تصمیم بر این گرفتیم که ابزار Sp Generator ایشان را با ابزار Code Generator حقیر با هم ادغام کنیم.
    همینطور با کوشش فراوان، سعی کردم که قابلیتی جالب را به این نرم افزار جدید اضافه نمایم که بتواند کلیه ی SP های یک دیتابیس را استخراج کرده و کد دات نت آن را تولید کند، در نهایت تمام این قابلیتها در یک ابزار، مجتمع شد و در اختیار شما عزیزان قرار گرفته خواهد شد، همچنین قصد ما بر این شد که این ابزار را به صورت Open Source منتشر کنیم، تا هم دوستان از شیوه ی کدنویسی مطلع شوند و هم در صورت امکان، کاربران بتوانند ایده های خود را روی این ابزار پیاده سازی نمایند و در آخر،در همین تاپیک قرار دهند و در احتیار سایر برنامه نویسان بگذارند، امیدواریم که این ابزار مورد توجه شما دوستان قرار بگیرد و بتوانیم با این کار، هرچند کوچک، گامی در جهت افزایش آگاهی و بهره وری شما برنامه نویسان ایران زمین برداشته باشیم، من، هم به نوبه ی خودم و هم از طرف آقای کرامتی (DelphiAssistant) پیشاپیش از حسن نظر شما تشکر میکنم و امیدوارم هرگونه کم و کاستی در این مجموعه دیدید، به بزرگی خودتون ببخشید.
    توضیحات رو در یک فایل word در خود فایل قرار دادم، در مورد Sp Gen و Code Generator میتوانید به تاپیکهای مربوطه مراجعه کنید، اما برای قابلیت Stored Procedures Code Generator میتوانید از مثالی که در همین فایل قرار داده شده است استفاده کنید.
    منتظر نظرات و انتقادات و همچنین ایده های شما عزیزان هستیم.
    موفق باشید.
    -------------------------------------
    مهدی کرامتی - حامد وزیری




    نسخه ی 1.5 آماده ی دریافت میباشد، لطفا برای اطلاعات بیشتر و همچنین دریافت آن به این لینک مراجعه کنید.


    نسخه ی 2.0 آماده ی دریافت شد، برای اطلاعات بیشتر لطفا به این لینک مراجعه کنید.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله hdv212 : پنج شنبه 31 مرداد 1387 در 10:43 صبح

  2. #2

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    یک باگ کوچولو (مهم نیست ولی رفع بشه بهتره):
    در صورتی که نام دیتاسورس حاوی کاراکترهای غیر مجاز در نام گذاری متغییر ها باشد برنامه Exception تولید می کند. (این کاراکترها در SQL Server مجاز است) و در کد ها نام namespace ها با کاراکترهای غیر مجاز تولید می شوند.

    مثلا نام دیتابیس این بوده:
    C:\DATABASE.MDF


    See the end of this message for details on invoking 
    just-in-time (JIT) debugging instead of this dialog box.
    ************** Exception Text **************
    System.Data.SqlClient.SqlException: Incorrect syntax near 'C:'.
    at System.Data.SqlClient.SqlConnection.OnError(SqlExc eption exception, Boolean breakConnection)
    at System.Data.SqlClient.SqlInternalConnection.OnErro r(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndW arning(TdsParserStateObject stateObj)
    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
    at System.Data.SqlClient.SqlDataReader.ConsumeMetaDat a()
    at System.Data.SqlClient.SqlDataReader.get_MetaData()
    at System.Data.SqlClient.SqlCommand.FinishExecuteRead er(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
    at System.Data.SqlClient.SqlCommand.RunExecuteReaderT ds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
    at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
    at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
    at System.Data.SqlClient.SqlCommand.ExecuteReader(Com mandBehavior behavior, String method)
    at System.Data.SqlClient.SqlCommand.ExecuteDbDataRead er(CommandBehavior behavior)
    at System.Data.Common.DbCommand.System.Data.IDbComman d.ExecuteReader(CommandBehavior behavior)
    at System.Data.Common.DbDataAdapter.FillInternal(Data Set dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
    at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
    at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
    at NovinMedia.Data.DbObject.RunQuery(String Query, String tableName) in F:\Database Helper 1.0.0\MergeSpCodeGen\Classes\DbObject.cs:line 192
    at DatabaseHelper.frmMain.GenerateSqlSpAndClassCodeAn dGetSps() in F:\Database Helper 1.0.0\MergeSpCodeGen\frmMain.cs:line 733
    at DatabaseHelper.frmMain.btnGenerateCode_Click(Objec t sender, EventArgs e) in F:\Database Helper 1.0.0\MergeSpCodeGen\frmMain.cs:line 154
    at System.Windows.Forms.Control.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ButtonBase.WndProc(Message& m)
    at System.Windows.Forms.Button.WndProc(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

  3. #3
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    در صورتی که نام دیتاسورس حاوی کاراکترهای غیر مجاز در نام گذاری متغییر ها باشد برنامه Exception تولید می کند. (این کاراکترها در SQL Server مجاز است) و در کد ها نام namespace ها با کاراکترهای غیر مجاز تولید می شوند.
    arsp_2004 جان ممنون از حسن توجهت، بعد از این همه سعی و تلاش، دلمون به این خوش بود که بچه ها بیان یه نظری بدن!
    شما پیشقدم شدی، دستت درست.
    اما در مورد باگ، منظورت اینه که در نام دیتابیس از کاراکترهای غیر مجاز در دات نت استفاده کردی ؟
    مثلا فضای خالی یا $ یا ... ؟
    اوووووووه، فکر شما دیتابیس شما Sql Express باشه، یا دیتابیس رو به Sql Serverات Attatch کرده باشی، درسته ؟

  4. #4
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    دوستان، مقاله ای در مورد همین ابزار در سایت CodeProject قرار دادم، لطفا به این لینک برید و به آن Rate بدید تا در مسابقه ای که همین سایت در مورد Code Generation ترتیب داده، Rate مناسب رو به دست بیارم.
    متشکرم

  5. #5
    کاربر دائمی آواتار combo_ci
    تاریخ عضویت
    تیر 1384
    محل زندگی
    مشهد
    پست
    459

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    سلام دوست عزيز
    اولا يه تشكر مخصوص از زحمات شما و دوستانتون دارم

    راستش يكي از بچه هاي شركت چند وقت پيش يك پروژه تو مايه هاي پروژه شما نوشته بود....البته نه به تكميلي پروژه شما...
    اونجا من يه پيشنهاد دادم به ايشون كه با اجازتون اينجا هم ميگم

    كلاسهايي كه اين برنامه توليد ميكنه خيلي كار با db رو راحت ميكنه...اما يه مشكل كه احتمالا شما هم بهش برخورد كردين اينه كه db يك برنامه از ايتداي ساختنش تا نسخه فاينال شايد 20 بار عوض بشه (حداقل يكي دو فيلد به جدول ها اضافه شه)

    خوب اين يعني بعد از هر تغيير شما بايد يك بار كلاس مربوط به اوون table رو ايجاد كنه......

    حالا شما اگه بتوني به برنامت اين خاصيت رو اضافه كني كه يه كلاس كلي درست بشه كه ديگه با هر تغيير db احتياج به توليد كلاس نداشته باشه....
    اينم يه نمونه ساده از اين كلاس.....البته من اين كلاس رو خيلي تكميل كردم و با اووون كلاس ديگه حتا يه sp به برنامم اضافه نميكنم

    اگر ايده اي داشتي بگو تا كلاس اصلي رو بزارم تا اگه خوب بود به برنامت اضافه كني
    موفق باشي
    آخرین ویرایش به وسیله combo_ci : سه شنبه 05 شهریور 1387 در 20:29 عصر

  6. #6
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    combo_ci جان ممنون از حسن توجهت
    کلاس شما رو دیدم، بسیار کار تمیز و قشنگیه، تقریبا چنین لایه ای رو گزینه ی Generate Stored Procedures .. انجام میده، البته یه تفاوت عمده ای که داره اینه که اون لیست کل Stored Procedure ها رو در میاره و اینکه برای شما کدهای مربوط به عملیات CRUD هم در نظر گرفته شده.
    البته من هم قبل از اینکه حتی این نسخه رو Publish کنم، دنبال کاملتر کردن لایه ی Data Access منتها هنوز وقت نکردم که این کار رو انجام بدم، اولین محدودیتی که در لایه ی DataAccess من به نظرم اومد، عدم وجود متدی بود که بتونه Transaction رو انجام بده، البته کلاس شما بسیار ایده های خوبی به من داد، چشم، سر اولین فرصت سعی میکنم، کد لایه ی Data Access رو بهینه کنم.
    به نظر شما به غیر از عملیات CRUD که شما در کلاست قرار دادی،(من این عملیات رو بر عهده ی Stored Procedure ها گذاشتم)، چه آیتمهای دیگه ای باید اضافه بشه تا این کلاس، مفید تر بشه ؟
    همانطور که گفتم، به نظر من اولین آیتم، ایجاد متدی برای Transaction است.
    راستی یه پیشنهاد در مورد کلاس خودتون :
    در متد Insert، خطوط 176 تا 178 :
    if (dr.Table.Columns[i].Caption.ToLower() == "id")
    continue;
    cmd.Parameters.AddWithValue("@" + dr.Table.Columns[i].Caption, dr[i]);

    شما نام ستون مورد نظرت رو که احتمالا برای Identity بودن بررسی میشه، به id محدود کردی، به نظرم اگه به این صورت اصلاح بشه، بهتره :
    if (dr.Table.Columns[i].AutoIncrement)
    continue;
    cmd.Parameters.AddWithValue("@" + dr.Table.Columns[i].Caption, dr[i]);

    موفق باشید.

  7. #7

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    با تلاش و کوشش فراوان، و با هماهنگی ای که اینجانب(حامد وزیری) با آقای کرامتی (DelphiAssistant) به عمل آوردیم تصمیم بر این گرفتیم که ابزار Sp Generator ایشان را با ابزار Code Generator حقیر با هم ادغام کنیم.
    با جناب کرامتی صحبت کنید که یا سورس کد مربوطه را به SourceForge منتقل کنند، یا یک نسخه از Subversion بر روی سرور فعلی نصب کنند تا بتونید برای این نرم افزار یک سیستم Version Control داشته باشید و بحث های خود را در این تاپیک انجام بدید. در شرایط فعلی اگر قرار باشه هر کسی برای خودش سورس را تغییر بده، یا حتی فقط شما و آقای کرامتی (بدون استفاده از یک نرم افزار Version Control) بخواید سورس را تغییر بدید، در دراز مدت به بی نظمی دچار میشید و نگهداری سورس کد براتون فوق العاده سخت میشه!


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  8. #8
    کاربر دائمی آواتار combo_ci
    تاریخ عضویت
    تیر 1384
    محل زندگی
    مشهد
    پست
    459

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    اينم ver 2 دوست عزيز.....
    با اين كلاس ديگه احتياج به وجود sp در database نيست....

    از خصوصيت هي متد insert اينه كه تشخيص ميده فيلد identity هست يا نيست...اگه نبود max(srl( از اووون table رو بدست مياره و يكي بهش اضافه ميكنه

    توي ورژن قبلي اين توابع insert و update احتياج به sp داشتن اما اين كلاس خودش همه كار ها رو ميكنه......

    به اوون موضوعي كه توي پست قبليم گفتم توجه كنبن.....با اضافه كردن اين كلاس به برنامه اگه 500 بار هم db عوض بشه كلاس databae هيچ تغييري نداره اما توي كار شما به تغيير يك جدول بايد sp هاي اوون جدول و كلاس db رو عوض كرد !!!!
    آخرین ویرایش به وسیله combo_ci : سه شنبه 05 شهریور 1387 در 20:28 عصر

  9. #9
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    اينم ver 2 دوست عزيز.....
    با اين كلاس ديگه احتياج به وجود sp در database نيست....
    combo_ci جان ممنون از توجهت، این کلاس هم مثل کلاس قبلی جامع و زیبا و کامل بود.
    اما استفاده ی من از Sp به خاطر Performance بالای آن در دیتابیس میباشد.
    چرا Stored Procedureها دارای Performance بیشتری نسبت به Plain Text Commandها هستند ؟
    پاسخ :
    به خاطر اینکه، قبل از اجرای هر فرمان، Sql Server دستور یا دستورات مورد نظر را از لحاظ شیوه ی اجرا آنالیز میکند، به این عملیات Execution Plan گفته میشود، سپس دستور مورد نظر را طبق Execution Plan به دست آورده اجرا میکند، اما Sql Server برای اینکه در مراجعات بعدی برای اجرای همان دستورات، دیگر نیازی به آنالیز و استخراج Execution PLan نداشته باشد، لیکن اون رو درحافظه نگهداری و به اصطلاح Cache میکند، حالا در مورد Plain Command Textها، فرض کنید در یک برنامه ی تحت شبکه، گزارشات زیادی از یک جدول با پارامتر های مختلف توسط کاربران گرفته میشود، با توجه به اینکه دستورات در همه ی موارد یکی است و فقط پارامترهای جستجو تغییر میکند، اما Sql Server این موضوع رو تشخیص نمیدهد و با هربار درخواست اجرای دستورات مشابه، با توجه با پارامترهای مختلف، آنها را جداگانه آنالیز و Execution PLan آنها را در حافظه Cache میکند، پس از مدتی حافظه مملو از Cacheهای بی مورد و زیادی میشود که باعث پایین آمدن Performance در اجرای دستورات در سرور میشود، اما در Stored Procedure، قضیه کاملا فرق میکنه، در این نوع اجرا، Sp مورد نظر فقط یک بار آنالیز و در حافظه cache میشود، و در مراجعات بعدی، با توجه به تغییر پارامتر های ورودی، Execution Plan تغییر نخواهد کرد، لذا در تعداد Queryهای زیاد و سنگین، Sp دارای Performance غیر قابل مقایسه نسبت به Plain Textهاست.
    این فقط یکی از مزیت های Sp بود.

    در مورد اینکه اگر دیتابیس عوض بشه، کلاسها هم باید عوض بشه، حرفتون درسته، ولی این کار رو برنامه براتون انجام میده، تنها با یک کلیک دوباره همه ی کلاسهای جدید تولید میشن!

  10. #10
    کاربر دائمی آواتار combo_ci
    تاریخ عضویت
    تیر 1384
    محل زندگی
    مشهد
    پست
    459

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    اميدوارم كلاس بدرد دوستان بخوره ....اگه كسي از sp نوستن و تغييرات در ver هاي بعدي نرم افزار خسته شده ميتونه از اين كلاس استفاده كنه

  11. #11

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    اگر بخواهیم در توسعه این پروژه همکاری کنیم چه جوری باید اقدام کنیم
    با تشکر

  12. #12
    VIP آواتار رضا عربلو
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    1,597

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    ضمن تبریک و خسته نباشید.
    پروژه شما را دیدم. یکی از مواردی که به نظرم رسید این می باشد که برنامه فوق فیلدهای AllowNull را پوشش نمی دهد.
    اگر Net. نمی دانید وارد نشوید.

  13. #13
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    اگر بخواهیم در توسعه این پروژه همکاری کنیم چه جوری باید اقدام کنیم
    با تشکر
    با سلام به شما دوست گرامی، سورس این پروژه رو ضمیمه کردم، میتونی بازش کنی و توسعه ش بدی، اگر به مشکلی برخوردی بگو تا راهنماییت کنم، یا اگر نظر خاصی داره، پیغام خصوصی بده.
    ضمن تبریک و خسته نباشید.
    پروژه شما را دیدم. یکی از مواردی که به نظرم رسید این می باشد که برنامه فوق فیلدهای AllowNull را پوشش نمی دهد.
    سلام، مرسی از شما، چشم در اولین فرصت روش کار میکنم.

  14. #14

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    منظور من همکاری گروهی روی پروژه بود .
    با تشکر

  15. #15
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    منظور من همکاری گروهی روی پروژه بود .
    با تشکر
    اشتیاق شما و بعضی از دوستان، باعث شادی و دلگرمی من میشه، امیدوارم تعداد این دوستان بیشتر بشه، اما برای توسعه:
    شما علاوه بر تسلط کافی به دات نت، بایستی به Ado.Net خصوصا Sql Server تسلط کافی داشته باشید، همینطور آشنایی با System.CodeDom برای Generate کردن کد در runTime، پیشنهاد میکنم برای آشنایی با CodeDom به مستندات مایکروسافت مراجعه کنید.
    در ضمن اگه میشه در مورد نحوه ی همکاریتون بیشتر توضیح بدید، آیا نظر خاصی دارید ؟ قابلیت مفیدی مد نظرتون هست که میخواهید به برنامه اضافه کنید ؟

  16. #16

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    آیا شما roadmap ای برای این پروژه دارید یا نه ؟
    اگر ندارید من پیشنهاد می کنم یک چیزی مثل subsonic یا بهتر از آن را بتوانیم با پروژه شما دربیاریم !!!
    یک نکته خوب در مورد کد شما ساده بودن همراه با توضیحات خوب مربوط به هر قسمت از کد می باشد که من در کمتر پروژه اپن سورسی حتی subsonic دیده ام

  17. #17
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    آیا شما roadmap ای برای این پروژه دارید یا نه ؟
    منظورتون اینه که آیا هدف خاصی دارم ؟
    اگر ندارید من پیشنهاد می کنم یک چیزی مثل subsonic یا بهتر از آن را بتوانیم با پروژه شما دربیاریم !!!
    من خودم SubSonic رو نصب کردم، مستنداتش میگه خیلی به درد بخوره، ئلی من خودم هنوز موفق نشدم باهاش کار کنم، از بس که توضیحاتش ناقص بود(شایدم من کم دقتی کردم)
    یک نکته خوب در مورد کد شما ساده بودن همراه با توضیحات خوب مربوط به هر قسمت از کد می باشد که من در کمتر پروژه اپن سورسی حتی subsonic دیده ام
    دوست عزیز لطف داری شما، مشخصه که سورس نرم افزار رو با دقت داری دنبال میکنی، عالیه.
    خب این ابزار با توجه به FeedBackهایی میرسه، نیاز به تغییرات و اصلاحاتی داره، مثلا کد مربوط به تولید کد Sql برای آقای کرامتی، بایستی متد Insert رو بهینه بکنیم که آخرین رکوردی رو که وارد میشه برگردونه.
    یا Load کردن آبجکت های دیتابیس برای دیتابیس های بزرگ زیاد جالب نیست، باید بهینه بشه (SqlDmo انتخاب خوبی برای این کار نبود، لااقل به این شکل نه)
    مشکلاتی که برای نامهای غیر استاندارد داره باید حل بشه، و خیلی چیزای دیگه.
    متاسفانه من هنوز به دلیل مشغله ی کاری وقت نکردم این کار رو بکنم، ولی در اولین فرصت حتما یه دست به سر و روی این ابزار خواهم کشید و در این راه دست همه ی دوستان رو به گرمی میفشارم.
    موفق باشید.

  18. #18

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    در مورد roadmap منظورم این بود که چه ایتم های را برای ورژنهای بعدی این ابزار در نظر داری که اگر خواستی من و بقیه دوستان روی آن کار کنیم البته یه مقدار توضیح دادی ولی اگر کامل مشخص کنی برای ورژن بعدی ابزار چه چیزهایی لازم است تا ما روی آن کار کنیم
    با تشکر

  19. #19
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    برای شروع میتونی بر روی استورد پروسیجر Insert کار کنی، و کدش رو تغییر بدی، که به جای برگرداندن identity آخرین رکورد Insert شده، اونم به صورت Int (که اشتباهه، چون ممکنه PK جدولی از نوع Int نباشه)، آخرین رکورد Insert شده رو برگردونه،آفرین، برو جلو ببینیم چکار میکنی.

  20. #20
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1386
    پست
    19

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    من وقتی فایل را extract کردم و می خواستم برم داخل پوشه پیغام زیر ظاهر می شه؟ به نظرتون از چی می تونه باشه؟
    عکس های ضمیمه عکس های ضمیمه

  21. #21
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    یا آنتی ویروس شما مشکل داره، و یا اینکه سیستم شما آلوده به این کرم های اینترنتی شده که مرتب پیغام میدن سیستم شما دارای تروجان یا ویروس است و ...

  22. #22
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    ورژن 1.5 ابزار Database Helper آماده شد.
    با توجه به مشکلاتی که خودم در حین کار بهش برخورد میکردم، تصمیم گرفتم که تا سر حد امکان اونها رو حل کنم.
    یکی از این مشکلات عمده، کد T-Sql مربوط به StoredProcedure ای بود که برای Insert ساخته میشد، توی این کد پس از Insert، آخرین Identidy اضافه شده رو (یعنی pk رکورد insert شده رو) به Caller بر میگردوند که این فقط در صورتی درست کار میکرد که PrimaryKey جدول ما یک فیلد int باشه و برای جداولی که pk های غیر از int دارند به درد نمیخورد، به خاطر همین، کد T-Sql ای که برای این عمل تولید میشد رو اصلاح کردم و با استفاده از یک تکنیک ساده، pk رکورد insert شده رو (چه int و identity باشه و چه کاراکتری و یا uniqueidentifier) به Caller برمیگردونه، این از اضلاحیه ی اول.

    اصلاحیه ی دوم هم که بی ربط به قسمت اول نیست، کدهای دات نتی بود که برای متد Insert توی جدول ساخته میشد، چون بعضی اوقات نیاز هست که از Transaction استفاده کنیم، لذا میبایست pk رکورد insert شده رو در اختیار داشته باشیم تا بتونیم در جداول دیگه استفاده کنیم، به خاطر همین یک پارامتر که معرف فیلد pk رکورد مورد نظر هست رو بهش اضافه کردم که :
    1. نوع پارامتر مورد مورد نظر با نوع فیلد pk همسنگش در Sql Server یکی هست.
    2. این پارامتر به عنوان پارامتر خروجی در نظر گرفته میشه که pk رکورد insert شده رو در اختیار کد دات نت شما قرار میده و داخل متغیر مورد نظر میریزه (حتما با کلمه ی کلیدی out توی سی شارپ آشنایی دارید، اگر هم ندارید در نمونه برنامه ی زیر، نحوه ی استفاده از آن رو میتونید ببینید)
    که از این طریق میتونید از pk رکورد insert شده در transaction ها استفاده کنید و یا هرکاری که نیاز باشه باهاش انجام بدید.

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

    نسخه ی جدید + نمونه برنامه رو میتونید از پایین همین بخش دریافت کنید.
    امیدوارم که مورد توجهتون قرار بگیره.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله hdv212 : چهارشنبه 30 مرداد 1387 در 13:27 عصر

  23. #23
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    نسخه ی 2.0 از ابزار Database Helper آماده شد.
    با توجه به FeedBack هایی که دوستان در سایت برنامه نویس و همینطور CodeProject بهم میدادن، تصمیم بر این گرفتم که تغییرات اساسی ای رو در ساختار برنامه ایجاد کنم، تغییرات در نسخه ی 2.0 به شرح زیر میباشد:

    1. استفاده از Smo یا Sql Server Management Objects برای اتصال به Sql Server 2005 به جای Dmo یا Distributed Management Objects که برای Sql Server 2000 بود.
    2. تغییرات اساسی در نحوی Load کردن آبجکت های مورد نیاز از دیتابیس (شامل StoredProcedureها، Tableها و ...)، که سرعت بازیابی اطلاعات از سرور تقریبا 10 برابر بیشتر از نسخه های قبلی شده!
    3. اضافه کردن قابلیت توسعه ی نرم افزار به وسیله ی Third Party ها :
    با استفاده از این قابلیت اگر دوستان، ایده ای به نظرشون رسید، میتونن خودشون امکانات این ابزار رو با استفاده از SDK ای که برای این ابزار در نظر گرفتم، قابلیتهای مورد نظرشون رو به این ابزار اضافه کنن،پس از این، قابلیت مورد نظر از طریق منوی PlugIns>YourPlugInName در دسترس خواهد بود، روند کار به صورت زیر میباشد :

    1. پروژه ای از نوع Class Library ایجاد کنید.
    2. اسمبلی DatabaseHelperSDK.dll رو به لیست References اضافه کنید.
    3. کلاس مورد نظرتون رو از اینترفیس IPlugIn مشتق کنید (این اینترفیس در فضای نام DatabaseHelperSDK موجود میباشد).
    4. سه متد زیر رو Implement کنید :

    InitializeComponent : متد اصلی که وظیفه ی بارگذاری و Initialize کردن PlugIn شما رو به عهده خواهد داشت،
    این متد، یک ToolStripMenuItem با نامی که شما مشخص میکتید رو خواهد ساخت و به منوی PlugIns اضافه خواهد کرد.
    Author : اطلاعاتی راجع به نویسنده ی این PlugIn
    Description : توضیحاتی در مورد PlugIn
    5. سپس یک روریداد Click برای آبجکت ToolStripMenuItem تون ایجاد و عملی رو که اون PlugIn انجام میده رو در داخل اون رویداد بنویسید.
    6. پروژه تون رو کامپایل کنید و سپس اسمبلی مورد نظر رو در برنامه Database Helper، داخل دایرکتوری PlugIns کپی کنید و سپس برنامه ی Database Helper رو اجرا کنید، حالا وقتی روی منوی PlugIns کلیک میکنید باید PlugIn خودتون رو در لیست SubMenu ها ببینید.


    پروژه ی Database Helper v 2.0 به همراه نمونه PlugIn ای که نحوه ی توسعه دادن Database Helper رو نشون میده از طریق لینکهای زیر قابل دریافت میباشد.
    خوشحال میشم، این برنامه رو تست و نتیجه رو در همین تاپیک مطرح کنید تا به بحث و تبادل نظر بپردازیم، همینطور دوستانی که قصد همکاری رو داشتن، دیگه به راحتی میتونن این کار رو انجام بدن (این قابلیت رو به خاطر شما ایجاد کردم).
    منتظر نظرات، انتقادات و پیشنهادات شما هستم.
    یا علی.
    ---------------------
    حامد وزیری
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله hdv212 : پنج شنبه 31 مرداد 1387 در 11:18 صبح

  24. #24
    کاربر دائمی آواتار mahdi_negahi
    تاریخ عضویت
    آذر 1384
    محل زندگی
    www.iranbuycenter.com
    پست
    582

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    سلام
    پیشنهاد میکنم ، متد هایی برای در نرم اSELECT تعبیه شود که خروجی آن DATASET باشد ، بنده یک Generator در زمانی به نسبت دور نوشتم ، در موقع استفاده به این متد احتیاج فروان پیدا کردم

  25. #25
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    سلام
    پیشنهاد میکنم ، متد هایی برای در نرم اSELECT تعبیه شود که خروجی آن DATASET باشد ، بنده یک Generator در زمانی به نسبت دور نوشتم ، در موقع استفاده به این متد احتیاج فروان پیدا کردم
    مرسی مهدی جان، ولی تمام کدهای دات نتی که برای Stored Procdureها نوشته میشه DataTable برمیگردونه، این نیازتو برآورده نمیکنه ؟

  26. #26
    کاربر دائمی آواتار bachebahal_1363
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    اینترنت
    پست
    336

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    سلام دوست من
    از کمک هایی که به من کردین واقعا ممنونم
    فرصت تشکر کردن در اون پست رو نداشتم اما اینجا ازت تشکر می کنم
    من از برنامه بسیار پر کاربر شما کمال تشکر رو دارم
    از سورسش که در اختیار کاربران هم قرار دادین تشکر می کنم چون واقعا کمک خیلی زیادی به تجربه کردن یک پروژه که ObjectOriented باشه لذت می برن .
    فقط در استفاده از برنامه شما و آقای کرامتی به یک مشکل برخورد کردم
    من به SqlServer2008 سویچ کردم خوب هم به جهت امکانات بسیار زیادی که در این ورژن هست مخصوصا PersianCollation .
    زمانی که می خوام از برنامه شما استفاده کنم برای Generate کردن ، در هنگام Connect کردن Error زیر رو می ده . به نظر شما می شه چه کاری برای این موضوع کرد ؟
    عکس های ضمیمه عکس های ضمیمه

  27. #27
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    سلام دوست من
    از کمک هایی که به من کردین واقعا ممنونم
    فرصت تشکر کردن در اون پست رو نداشتم اما اینجا ازت تشکر می کنم
    من از برنامه بسیار پر کاربر شما کمال تشکر رو دارم
    از سورسش که در اختیار کاربران هم قرار دادین تشکر می کنم چون واقعا کمک خیلی زیادی به تجربه کردن یک پروژه که ObjectOriented باشه لذت می برن .
    فقط در استفاده از برنامه شما و آقای کرامتی به یک مشکل برخورد کردم
    من به SqlServer2008 سویچ کردم خوب هم به جهت امکانات بسیار زیادی که در این ورژن هست مخصوصا PersianCollation .
    زمانی که می خوام از برنامه شما استفاده کنم برای Generate کردن ، در هنگام Connect کردن Error زیر رو می ده . به نظر شما می شه چه کاری برای این موضوع کرد ؟
    با تشکر از لطف شما دوست گرامی
    این مشکل به دلیل این اتفاق میفته که DbHelper از طریق Sql Native Client 2005 به Sql Server 2008 وصل میشه، Collation فارسی در Sql Server 2008 پشتیبانی میشه ولی در Sql Native Client 2005 پشتیبانی نمیشه، من توی اینترنت دنبال این موضوع گشتم و این لینک رو پیدا کردم، که در بالای همان صفحه اشاره به این لینک داشت که دارای HotFix مورد نظر برای رفع این مشکل میباشد، متاسفانه من چون خودم هنوز Sql Server 2008 رو نصب نکردم، نمیتونم بگم که مشکل حل میشه یا نه، شما لطف کنید لینک رو چک و HotFix مربوطه رو دانلود و نصب کنید و نتیجه رو هم در همین تاپیک اعلام کنید.
    با تشکر.

  28. #28
    کاربر دائمی آواتار bachebahal_1363
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    اینترنت
    پست
    336

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    نقل قول نوشته شده توسط hdv212 مشاهده تاپیک
    با تشکر از لطف شما دوست گرامی
    این مشکل به دلیل این اتفاق میفته که DbHelper از طریق Sql Native Client 2005 به Sql Server 2008 وصل میشه، Collation فارسی در Sql Server 2008 پشتیبانی میشه ولی در Sql Native Client 2005 پشتیبانی نمیشه، من توی اینترنت دنبال این موضوع گشتم و این لینک رو پیدا کردم، که در بالای همان صفحه اشاره به این لینک داشت که دارای HotFix مورد نظر برای رفع این مشکل میباشد، متاسفانه من چون خودم هنوز Sql Server 2008 رو نصب نکردم، نمیتونم بگم که مشکل حل میشه یا نه، شما لطف کنید لینک رو چک و HotFix مربوطه رو دانلود و نصب کنید و نتیجه رو هم در همین تاپیک اعلام کنید.
    با تشکر.
    با سلام خدمت دوستان
    بنده دو Hotfix ی که Microsoft داده بود رو دانلود و نصب کردم و مشکلم حل شد .
    فقط مشکل حجم بسیار زیاد یکی Hotfix ها بود که یکی 3 مگابایت و دیگری 137 مگابایت بود .

  29. #29
    کاربر دائمی آواتار bachebahal_1363
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    اینترنت
    پست
    336

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    سلام hdv212 عزیز
    در رابطه با برنامه شما من هم یک برنامه جهت Backup و Restore از دیتابیس نوشتم که به مشکل مشابهی برخورد کرده اما اون برنامه چون با SQLDMO نوشته شده مشکلش با دانلود و نصب HotFix بالا رفع نشده آدرس دانلود برنامه رو در زیر میزارم اگر امکان داره یه نگاهی بهش بنداز و Errorی که برنامه من در رابطه با SQlSERVER2008 می ده هم در پائین می زارم .
    ممنون می شم اگر در این مورد هم کمک کنید .
    لینک دانلود مستقیم
    عکس های ضمیمه عکس های ضمیمه

  30. #30
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    در رابطه با برنامه شما من هم یک برنامه جهت Backup و Restore از دیتابیس نوشتم که به مشکل مشابهی برخورد کرده اما اون برنامه چون با SQLDMO نوشته شده مشکلش با دانلود و نصب HotFix بالا رفع نشده آدرس دانلود برنامه رو در زیر میزارم اگر امکان داره یه نگاهی بهش بنداز و Errorی که برنامه من در رابطه با SQlSERVER2008 می ده هم در پائین می زارم .
    ممنون می شم اگر در این مورد هم کمک کنید .
    سلام دوست عزیز، سعی کنید از Smo استفاده کنید(همانطور که من استفاده کردم)، Smo ویرایش جدیدی از همون Dmo هست(منتها برای 2005)، روشهای کارش تقریبا همونه، امتحان کن ببین درست میشه.

  31. #31

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    سلام خسته نباشيد
    من برنامه تون رو اجرا كردم وقتي مي خوام شاخه sp يا table هر ديتابيسي رو با كنم پيغام
    An exception batch occurred while executing a Transact-SQL statement or batch
    ميده اين رو با چند روش وصل شدن تست كردم

  32. #32

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    نقل قول نوشته شده توسط combo_ci مشاهده تاپیک
    اميدوارم كلاس بدرد دوستان بخوره ....اگه كسي از sp نوستن و تغييرات در ver هاي بعدي نرم افزار خسته شده ميتونه از اين كلاس استفاده كنه

    دوست عزيز ، من هم با متدي مشابه شما از چند سال قبل به اين طرف كار ميكنم.
    اليته تا دوسال پيش با اين روش در دلفي كار ميكنم و بعد از اون با C#‎


    اما مطلبي كه شما اشاره كرديد در واقع تقابل بين دو ديدگاه در توليد لايه هاي Interface و Logic (يا همون Bussiness Rules ) هست :

    1- ديدگاه اول مربوط به توسعه به اينصورته كه Data Wrapper Class در لايه Interface و Logic ها هم در لايه Data قرار مي گيرند كه دوستان در اين تاپيك اين روش رو دنبال مي كنند.

    2- ديدگاه دوم (كه منتقداني در همين سايت داره) بصورت Data Smart Class در لايه Interface است و بخش زيادي از Logic در همين لايه قرار مي گيره. البته در موارد تهيه گزارش باز هم رجوع به Logic ها و يا Store Procedure ها در لايه Data مورد استفاده است كه همچنان سرعت پردازش و گزارش دهي را بالا نگه مي داره. در واقع بخشي از Logic در لايه Interface و بخشي به لايه Data تقسيم ميشه.

    حالت دوم (يعني حالتي كه من و شما استفاده مي كنيم) به دلايلي برتره (البته با اين دلايل) :
    1- توسعه و برنامه نويسي با اون خيلي سريعتره !!
    2- با هر تغييري نيازي به دوباره سازي كلاسها با ابزارهاي اتوماتيك نيست.
    3- در صورتي كه در روش اول براي كلاس خاصي مقداري سورس پرداختي نوشته شده باشه و بعد بدون اينكه برنامه نويس يادش باشه اون كلاس را دوباره بسازه ، سورس هاي پرداختي مي پره !!
    و ....

    اميدوارم كه با كمك شما بشه در يك فرصت مناسب ايده خودمون رو بعنوان يك تاپيك مستقل مطرح كنيم و بسط بديم. (به كرم مولا اميرالمومنين)

    البته از انتقادات و پيشنهادات دوستان خوشحال ميشيم !!

  33. #33

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    این عالیه که تصمیم به توزیع برنامه به صورت اوپن سورس گرفتید، اما بهتر است برای توزیع مجدد یا دیکامپایل پروژه لایسنسی انتخاب کنید. برای مثال GPL انتخاب خوبیست و اما برای مشارکت سایرین بهتر است پروژه را در یک سایت میزبانی اوپن سورس مثل Sourceforge.org ثبت کنید تا علاقمندان به طور رسمی به پروژه بپیوندند.

  34. #34

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    سلام دوست عزيز
    يه پيشنهاد ميشه نسخه‌اي هم براي وب از اين كلاس درست كرد من در نسخ 1 سعي كردم ولي نشد اما تنها تغيير لازم براي مديريت خطاس كه من اين كارو دستي كردم
    throw new HttpException(ex.Message);

  35. #35

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    سلام combo_ci برنامه سما رو من نتونستم دانلود کنم
    لطف میکنید دوباره بذارید

  36. #36

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    نقل قول نوشته شده توسط combo_ci مشاهده تاپیک
    اميدوارم كلاس بدرد دوستان بخوره ....اگه كسي از sp نوستن و تغييرات در ver هاي بعدي نرم افزار خسته شده ميتونه از اين كلاس استفاده كنه
    combo_ci عزيز ظاهرا شما کلاس مربوطه را از تاپيک حذف کرده ايد اگر ممکنه مجددا آن را قرار دهيد ممنون ميشيم .

  37. #37

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    آقاي وزيري عزيز
    با سلام
    بايد بگويم که کار بسيار زيبا و جالبي کرده ايد و انصافا جاي تشکر و تقدير فراوان دارد .
    من دو پيشنهاد دارم يکي اينکه امکان Encription را در برنامه تعبيه کنيد و دوم اينکه امکان سلکت کردن جداول را در برنامه فراهم نمائيد چرا که ممکن است User نخواهد ار تمام جداول موجود در ديتا بيس استفاده کند .
    موفق باشيد .

  38. #38

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    دوست عزیز خسته نباشید. برنامه تان عالی بود. یه سوال و یه پیشنهاد داشتم.
    سوال اینکه ورژن 2.0.0 آیا با sql server 2000 کار میکنه یا نه؟ اگر نه بهتره امکانش رو بذارید.
    و پیشنهاد اینکه برنامه SP Gen آقای کرامتی که من باهاش کار کردم محیطش user friendly تر هستش و کدهاش تو محیطی شبیه سی شارپ هست که چشم انداز قشنگتری داره و کار باهاش راحت تره. اگر امکانش هست این قضیه رو هم پیگیری کنید. باز هم ممنون از برنامه خوب و پر کاربردتون

  39. #39

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    چی شد؟ جواب منو نمیدید؟

  40. #40
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    نقل قول: Database Helper، شروع یک پروژه ی Open Source در برنامه نویس!

    نقل قول نوشته شده توسط farnooshhp مشاهده تاپیک
    چی شد؟ جواب منو نمیدید؟
    با سلام خدمت شما دوست گرامی
    ممنونم بابت حسن توجهتون به این ابزار و همینطور سایر دوستان
    اگر دقت کرده باشید، این برنامه خیلی وقت پیش ارائه شده و من هم به دلیل مشغله های کاری حتی کمتر فرصت میکنم به سایت سر بزنم، اما من امکان توسعه این نرم افزار رو باز گذاشتم ضمن اینکه اگر به سورس نرم افزار نگاه کنید، میبینید که هر جایی میشد از توضیحات استفاده کردم تا دوستان متوجه بشن که داره چی میگذره.
    امیدوارم دوستانی به این تیم متصل بشن و شروع به توسعه اون بکنن. در این راه هر کمکی از دستم بر بیاد کوتاهی نمیکنم.
    باز هم بابت تاخیر در پاسخ از شما معذرت میخوام، موفق و پیروز باشید

صفحه 1 از 2 12 آخرآخر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •