نمایش نتایج 1 تا 25 از 25

نام تاپیک: ریختن متن EditBox یا عناصر دیگر به دیتابیس

  1. #1
    کاربر دائمی آواتار Jarvis
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    Esfahan
    پست
    580

    Question ریختن متن EditBox یا عناصر دیگر به دیتابیس

    سلام
    من این مساله رو جستجو کردم... چیزی پیدا نکردم
    من میخوام یه رکورد جدید به دیتابیس خودم اضافه کنم ...
    یه فرم دارم که 4 تا EditBox داره ... حالا ممکنه بعدا یه ComboBox یا RadioBox یا CheckBox هم بخوام بزارم ...
    حالا چجوری می تونم مقادیر این عناصر رو بگیرم و توی دستور INSERT INTO استفاده کنم .. ؟
    مثلا با این کد مسلماً نمی تونم :
    adqry1.SQL.Add('INSERT INTO STUDENTS (NAME,FAMILY) VALUES ('edt1.Text', 'edt2.Text')');

    بهترین روش چیه ؟

  2. #2

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

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

    adqry1.SQL.Add('INSERT INTO STUDENTS (NAME,FAMILY) VALUES ('+quotedstr(edt1.Text)+', '+quotedstr(edt2.Text)+')');


    بهترین روش (از نظر من) استفاده از SP هست.
    ADOStoresProc رو ببینید
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  3. #3
    کاربر دائمی آواتار Jarvis
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    Esfahan
    پست
    580

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    من از دلفی XE3 و کامپوننت FireDAC استفاده میکنم

  4. #4

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    پروفایلر ران کنید، یا به جای دستور exec متن sql رو showmessage کنید.
    ببینید در متن چیزی غلط نیست.
    اگر نوع فیلدهاتون رشته ای هست باید مقادیر رشته ای محصور در ' باشند. فیلد های عددی نباید باشند. این مورد رو چک کنید.
    مطمئن شید روی جدول تریگری ران نباشه یا اگر هست وضعیت اون رو چک کنید.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  5. #5

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    اون Error به خاطر نوع داده ایه که توی DB برای اون فیلد ست کردی ولی چیزی که میخوای داخش بریزی باهاش فرق داره.

    موفق باشی.
    آخرین ویرایش به وسیله Felony : جمعه 17 خرداد 1392 در 11:17 صبح
    Everything that has a beginning has an end. ... The End?



  6. #6
    کاربر دائمی آواتار Jarvis
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    Esfahan
    پست
    580

    Smile نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    Backup بلد نیستم بگیرم ...
    خود بانک اطلاعاتی رو گذاشتم که می تونید با DB Workbench بازش کنید.

    ممنون از لطفتون.
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip DB.zip‏ (42.6 کیلوبایت, 11 دیدار)

  7. #7
    کاربر دائمی آواتار Jarvis
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    Esfahan
    پست
    580

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    عزیزم شما استفاده کن . جواب میده .
    عزیزم ... استفاده کردم و نشد ...!

    لازم به ذکر هستش که بگم وقتی میخوام برنامه رو اجرا کنم اول این پیغام ظاهر میشه و بعد برنامه Run میشه.
    runError.png

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران تهران
    پست
    608

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    این همه کد برای ریختن دوتا edit در بانک ... خوب من نمیدونم وقتی توسعه دهنده گان delphi یه چیزی یه نام dbedit ساختن و یا datasource چرا برای این کارای چیپ با ید از stored procedure استفاده کرد؟؟؟؟؟ همه یه چیزایی شنیدن که stored procedure سریع و خوبه ....

  9. #9

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    در دی بی کار چیپ نداریم.
    عزیز من!
    چیپ بودن یا نبودن کار رو طراحی شما مشخص می کنه. شما می تونی مستقیم با همون دی بی ادیت دیتا رو بفرستی تو دیتا بیس.
    اما توصیه اکید می کنم برای کوچکترین کارهاتون هم از SP استفاده کنید. حتی برای یک آپدیت 0 به 1.
    حالا شما می تونی از چهارصد تا روش دیگه هم استفاده کنی.
    همه یه چیزایی شنیدن که stored procedure سریع و خوبه ....
    وقتی این رو با دل و جون متوجه می شید که درگیر یک پروژه نسبتا بزرگ بشید. استفاده از SP مزیت های زیادی داره که با یک سرچ ساده می تونید مطالب رو بدست بیارید. اگر واقعا سوال دارید که چی اون خوبه، در قالب یک تاپیک (پس از جستجو و باقی بودن سوال) مطرح بفرمایید دوستان پاسخ می دند.

    جناب Alaveh روشی که در پستتون گفتید (استفاده از ' ) خیلی معمول و خوب نیست. به جاش از QuotedStr استفاده کنید.
    آقای صالحی، شما از دی بی گرید استفاده کنید (برای تست) و خاصیت ReadOnly اون رو false کنید و مستقیم از همون جا تست کنید ببینید می تونید دیتا رو عوض کنید یا نه.
    اگر اونجا مشکلی ندارید اشکال از کدتون هست.
    اگر از دی بی گرید هم ارور دارید اشکال از کد شما نیست. جای دیگه ای باید بگردید دنبال اشکال.
    حالا قدم به قدم پیش برید تا ببینید چی می شه.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  10. #10

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    وقتی این رو با دل و جون متوجه می شید که درگیر یک پروژه نسبتا بزرگ بشید. استفاده از SP مزیت های زیادی داره که با یک سرچ ساده می تونید مطالب رو بدست بیارید. اگر واقعا سوال دارید که چی اون خوبه، در قالب یک تاپیک (پس از جستجو و باقی بودن سوال) مطرح بفرمایید دوستان پاسخ می دند.
    درود به همه
    یوسف جان خسته نباشی ؛من این ترم پایگاه داده داشتم استادم همش میگفت استفاده از SP فقط سربار اجرای بیشتری روی سرور (DBMS) داره و تاجایی که میشه نباید استفاده کردو به جاش مثلاًتوی Query گرفتن از Query های تودر تو استفاده کنیم بهتره (البته از نظر طراحی صحیح پایگاه داده میگفت و عمری هم خاک SQLServer , Oracle خورده بود)
    من خودم زیاد توی طراحی DB کار نکردم (تازه کارم) به نظرت حرفش درسته ؟ یانه ؟
    Everything that has a beginning has an end. ... The End?



  11. #11

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    سلام بهروز جان. خوبی؟
    به نظرت حرفش درسته ؟ یانه ؟
    اگر عمری خاک خورده ظاهرا من باید یکم بیشتر تحقیق کنم. اما به عنوان کسی که یه ذره خاک خورده!! تو این 5 6 سال یاد گرفتم و دیدم که اس پی بهتره.
    اما چند تا سوال از استادتون کن ببین سوادش چقدره (استاد ما در مقطع ارشد حتی نمی دونست دلفی شی گراست!!!)

    1- سربار اضافه ای که روی DBMS می گذاره دقیقا چیه؟ البته نظر من عکسه، اس پی ها به دلیل این که ترجمه می شن، و براشون Execution Plan ذخیره می شه سرعت بالاتری نسبت به کوئری دارند.
    2- اس پی ها متن اجرایی کمتری روی شبکه جابجا می کنند.
    3- تغییرات در اس پی ها بدون نیاز به کامپایل مجدد برنامه امکان پذیره.
    4- اس پی ها نسبت به موتور داخلی دلفی امکانات و دستورات بیشتری در اختیارتون قرار می دند.
    5- به دلیل این که اس پی روی پایگاه داده وجود داره، راحت تر می شه برنامه رو لوکالایز کرد.
    6- به همون دلیل می تونید اون ها رو راحت تر تریس و دیباگ کنید. ابزار هایی هم برای این کار وجود داره.

    ممکنه منظور استادتون (با توجه به کوئری های تو در تو که پیشنهاد داده) این باشه که در روند اجرای یک کوئری یک اس پی دیگه رو کال نکنید. اون وقت حرفش منطقی و درست هست.
    اعصاب من هم داره خط خطی می شه!!!

    نیاید منو بگیرید به باد فوش و ناسزا ...
    با عرض معذرت از همه عزیزان، هر کس چنین کاری کرد خیلی بی خود کرده.
    اگر می بینی که لحن ها یکم تند و کند!! می شه دلیلش مسخره کردن کسی نیست. یکم ظرف ماها کوچیکه. یکمی هم کاربرا حوصلشون محدوده. یکمی هم اینترنت ها قشنگ شده، بعضی ها هم یکم تنبل هستند.
    وگرنه از همه خنگ تر منم که تا حالا نمی دونستم پورت دقیقا چیه

    حالا شما از رو حوصله (چون دوست دارم وقتی می بینم یک نفر برای فهمیدن چیزی داره زحمت می کشه) راهنمایی های دوستان رو پیش ببر ایشالا که درست می شه.
    آخرین ویرایش به وسیله یوسف زالی : چهارشنبه 15 خرداد 1392 در 21:09 عصر
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  12. #12
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    سلام

    توی کد بالا که براتون گذاشتم فقط نام و نام خانوادگی رو اضافه کردم که قاعدتا لز نوع String هستند. اما موبایل یا تلفن بسته به طراحی دیتابیس شما میتونه String یا Int باشه


    with qry_1 do
    begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO Students(Name,Family) VALUES(:Param1,:Param2)');
    Parameters.ParamByName('Param1').Value:=edt_1.Text ;
    Parameters.ParamByName('Param2').Value:=edt_2.Text ;
    ExecSQL;
    end;


    فلذا در صورت انتخاب نوع فیلد از نوع Integer شما باید عملیات تبدیل رو قبل از پاس دادن به کوئری انجام بدین. بدین صورت:


    with adqryEdit do
    begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO STUDENTS (NAME,FAMILY,TEL,MOBILE) VALUES (:Param1,:Param2,:Param3,:Param4)');
    ParamByName('Param1').Value:=edtName.Text;
    ParamByName('Param2').Value:=edtFamily.Text;
    ParamByName('Param3').Value:=StrToInt(edtTel.Text) ;
    ParamByName('Param4').Value:=StrToInt(edtMobile.Te xt);
    ExecSQL
    end;


    موفق باشید

  13. #13
    کاربر دائمی آواتار Jarvis
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    Esfahan
    پست
    580

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    ممنون از لطف شما ... نمی دونم این کد رو روی سورسی که گذاشتم تست کردید یا نه ... ولی من تست کردم یه ارور داد با متن زیر :
    valueError.png

  14. #14
    کاربر دائمی
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران تهران
    پست
    608

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    محمد دوست عزیز یه ملت رو سر کار گذاشتی اول شما برو دیتا تایپ های sql رو مطالعه کن که بدونی 0931323333. مقدار int نیست و از رنج خارجه ...

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

  15. #15

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    باید برن کمی مطالعه کنن و از تجارب عالیه شما در پروژه های بزرگ بهره ببرند
    من نمی دونم چی بگم الان.
    متاسفم. شما از هر روشی که دوست داری استفاده کن. فکر می کنم در این باره توضیحات مکفی ارائه شد. بنده هم مطالعه ام رو بیشتر می کنم. اما توصیه می کنم شما هم همین کار رو کنی.
    در خصوص پروفایلر، در خصوص اس پی ها یک رشته exec فرستاده می شه با پارامتر هاش اما در خصوص یک چیزی مثل ADOQuery واقعا نظرتون همینه؟؟؟ تبدیل می شه به همون چیز؟
    دوست من،
    الان دلایلی که در خصوص SP گفته شد همگی بی خود بوده؟
    امیدوارم گرفته باشی!

    بی خیال، تاپیک به بیراهه کشیده نشه.
    حرف آخر من این که ترجیح من روی اس پی هست. نمی دونم چرا تا حرفی زده می شه ازش سوء تعبیر می شه.
    موفق باشید.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  16. #16
    کاربر دائمی
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران تهران
    پست
    608

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    وقتی نقل قول میکنید کامل نقل قول کنید که سوع تفاهم نشه ... منم برای شما آرزوی موفقیت دارم ... اگر همواره دوست دارید چرخ رو اختراع کنید و از کامپوننت استفاده نکنید .. من اصلن در مورد پامتر ADO QUERY بحث نکردم که زدید به دشت کربلا



    declare @p4 int
    set @p4=20
    exec sp_executesql N'INSERT INTO tbl_pub_olaviyat
    (olaviyat)
    VALUES
    (@P1)
    SET @P2 = SCOPE_IDENTITY()',N'@P1 nvarchar(4000),@P2 int OUTPUT',N'WQEQWE',@p4 output
    select @p4


    این یک نمونه از ارسال پست یک کامپوننت بدون یک خط کد در اس کیو ال هست شاید SP شما این کارو سریع تر انجام بده ...
    ... جملاتی مثل ... در دیتا بس کار چیپ نداریم ... یا برو از استادت بپرس اینو بلده .... وقتی این رو با دل و جون متوجه می شید که درگیر یک پروژه نسبتا بزرگ بشید. اینا جای تاسف داره

  17. #17

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    در دیتا بس کار چیپ نداریم
    این نظر منه و روی حرفم هستم.
    اما :
    اما چند تا سوال از استادتون کن ببین سوادش چقدره
    حرف اصلی من بود که متاسفانه تحریف شد به:
    برو از استادت بپرس اینو بلده
    در مورد :
    وقتی این رو با دل و جون متوجه می شید که درگیر یک پروژه نسبتا بزرگ بشید.
    بنده نظرم همینه. ممکنه شما با دل و جون چیز دیگه ای رو متوجه شده باشید. این نتیجه چند سال کار کردن و درگیر شدن با پروژه های منه. شما نظر خودت رو بده.

    اما خیلی خوبه که بالاخره رو آوردید به اثبات و ارائه دلیل.
    دوست من، نمی دونم چرا فکر می کنم فکر می کنید باید ادعای کسی رو از بین ببرید. نقل قول من درست بود و نقل قول شما حتی نقل قول نبود!
    تاپیک جای دعوا نیست. روش شما هم روشیه برای خودش.
    امیدوارم به جای فلسفی کردن و به حاشیه کشیدن، یک کمی هر دو مون بهتر بتونیم تعامل کنیم.
    اولین انتقاد هم به خودم. موفق باشید.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  18. #18
    کاربر دائمی آواتار Jarvis
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    Esfahan
    پست
    580

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    ضمن تشکر از اساتید عزیز ... واقعا از لطفتون ممنونم که کمک می کنید ...
    محمد دوست عزیز یه ملت رو سر کار گذاشتی اول شما برو دیتا تایپ های sql رو مطالعه کن که بدونی 0931323333. مقدار int نیست و از رنج خارجه ...
    ببخشید ... معذرت میخوام .. عرض کردم بنده مبتدی هستم ... الان در حدی مبتدی هستم که Stored Procedure - چیپ و... رو نمیدونم چی هستند ...

    حالا آخرش من نفهمیدم باید چیکار کنم ... ! ( شرمنده اگه یه خورده نفهمم ! ) .. دیتابیسم مشکل داره .. اون فیلدی که گفتید نمی پذیره باید چیکارش کنم که بپذیره ..؟

  19. #19
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    سلام

    درمورد دیتابیس که آقای عشایری اصل مطلب رو گفتن! در مورد اینکه هرکی یچی میگه: اولا تصمیم با شماست. ثانیا اون دوستمون گفتا از Access استفاده کن تا بقیه بتونن راحت تر راهنماییت کنن(منظور من استفاده کلی بود)

    جستجو ابزاریست بسیار مناسب!

    Datamodule هم فکر کن مثل یک فرمه که همه کامپوننت های کار با DB رو روی اون قرار میدیم!(البته نمایش داده نمیشه)

    برای استفاده هم در پروژه ات New Item رو بزن و Datamodule رو انتخاب کن. مثل بقیه فرم ها بهش یه اسم بده و کامپوننت ها رو روش قرار بده

    برای استفاده از ابزارهای اون در دیگر فرمها هم یادت نره یونیتش رو به فرم جاریت اضافه کنی. مثلا اگه میخوای در فرم اصلی به ابزار table در دیتاماژول دسترسی داشته باشی File=>Use Unit یا کلید میانبر Alt+F11 رو بزن

    برنامه ت رو برات تغییر دادم

    TestDB.rar

  20. #20

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    نقل قول نوشته شده توسط بهروز عباسی مشاهده تاپیک
    درود به همه
    یوسف جان خسته نباشی ؛من این ترم پایگاه داده داشتم استادم همش میگفت استفاده از SP فقط سربار اجرای بیشتری روی سرور (DBMS) داره و تاجایی که میشه نباید استفاده کردو به جاش مثلاًتوی Query گرفتن از Query های تودر تو استفاده کنیم بهتره (البته از نظر طراحی صحیح پایگاه داده میگفت و عمری هم خاک SQLServer , Oracle خورده بود)
    من خودم زیاد توی طراحی DB کار نکردم (تازه کارم) به نظرت حرفش درسته ؟ یانه ؟
    استادتون تا به حال چند تا پروژه اینترپرایز از نزدیک دیده ؟ چند بار پروژه بزرگ انجام داده ؟ تا به حال دیتابیس چند ده گیگابایتی ( حالا نه ترابایتی که از نزدیک دیدم ) دیده ؟ میدونه انجین های بانک های اطلاعاتی Server Base مثل SQL Server یا Oracle چه طور با Srtored Procedure ها رفتار میکنن ؟ میدونه کوئری های تو در تو چیست ؟! موتور بانک اطلاعاتی چطور اینها رو پردازیش میکنه ؟ چیزی در مورد Parse کردن ، Fetch کردن ، مباحث Pageing در بانک های اطلاعاتی بزرگ و کوئری های تو در تو میدونه ؟!

    الان این کوئری تو در تو هیچ ربطی به SP نداره ، تو SP هم میشه کوئری های تو در تو زد ، چه ربطی داره که کوئری تو در تو برتری داره نسبت به SP ، رسالت Stored Procedure ها چیز دیگری هست .

    نقل قول نوشته شده توسط benyaminrahimi مشاهده تاپیک
    محمد دوست عزیز یه ملت رو سر کار گذاشتی اول شما برو دیتا تایپ های sql رو مطالعه کن که بدونی 0931323333. مقدار int نیست و از رنج خارجه ...
    یه ملت رو سر کار نگذاشته ، بهتره نحوه رفتار کاربر رو ببینی و براش احترام قائل شی ، وقتی کاربری اومده پست زده و صراحتا گفته من مبتدی هستم ، کلی هم جستجو کردم ، کلی هم معذرت خواهی کرده بابت سوالش ، شما حقی نداری بیای و اینطور رفتار کنی ، شما مگر چند پست در این تاپیک دادی که به نظرت کاربر وقتت رو هدر داده و سر کارت گذاشته ؟!

    در جواب اون دوست عزیز که فرمودند یه بیت هم باید با sp تغییر کنه و پروژه های بزرگ چنین است و چنان ... باید عرض کنم درست نیست یه نظر شخضی تبدیل به مانیفست شه ... این طور کد نویسی منو یاد فاکس پرو میندازه ... اگه چیزی که شما میگی صادق باشه پس توسعه دهندگان نرم افزار نباید خودشون خسته کنن و کامپوننت هایی با پرا پرتی datasource بنویسن ... باید برن کمی مطالعه کنن و از تجارب عالیه شما در پروژه های بزرگ بهره ببرند ... شما هم اگر مطالعه کنی و یه پروفایلر رو sql باز کنی متوجه میشی که همون کدی که شما sp میکنی رو خود کامپوننت ایجاد میکنه که خیلی بهینه تر از sp های کاربری هست ... تو هر کاری هم کار چیپ داریم ... امید وارم گرفته باشی
    بسم الله ، الان این که پروفایلر و کامپوننت مورد نظر یک کد رو تولید میکنن چه ربطی به مزایا و معایب داشت ، الان دوستان تو این تاپیک و تاپیک گذشته دارن قربانی بی اطلاعی شما میشن و شما هم با تخریب کردن شخص مقابل دارید خودتون رو توجیح میکنید ؛ من چند تا از مزایای SP ها رو ذکر میکنم :

    - کدی که SP تولید میکنه بعد از اولین اجرا در داخل Engine بانک اطلاعاتی کامپایل میشه و از دفعه بعد که نیاز به اجرای این کدها بود فقط پارامترها به کد تزریق میشه ، در صورتی که کدی که جنابعالی توسط کامپوننت هایی نظیر ADOQuery به بانک میفرستی هر بار باید Parse بشه ، از لحاظ سینتکسی مورد بازبینی قرار بگیره ، کامپایل بشه ، این موارد در کوئری های بزرگ و بانک های اطلاعاتی بزرگ به خوبی خودش رو نشون میده .

    - مورد بعدی امنیت لایه ای هست ، با نوشتن SP ها امنیت برنامه خواسته یا ناخواسته افزایش پیدا میکنه ، حالا ممکنه کسی از اصول و مبانی امنیت نرم افزار مطلع نباشه و با اینکه از SP ها استفاده میکنه باز هم برنامه دارای مشکلات بسیار زیاد امنیتی باشه ولی در کل وقتی تمام کارهای مرتبط با بانک اطلاعاتی توسط SP ها صورت بگیره ، کافی هست به User ی که قصد برقراری ارتباط با بانک اطلاعاتی رو داره فقط دسترسی اجرای SP ها رو بدیم ( Execute Procedure ) ، و اون رو از باقی دسترسی ها منع کنیم ( Insert , Delete , Update و ... به صورت مستقیم رو از کاربر بگیریم ) ، با این شیوه از ارتباط مستقیم کاربر با بانک اطلاعاتی جلوگیری کردیم .

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

    ولی اگر به جای این پیاده سازی چرند، برنامه بر پایه ی SP ها نوشته شده باشه کافیه در سمت سرور SP ی که مسئولیت ثبت بلیط رو بر عهد داره رو تغییر داد و مثلا 10 % از فیلد قیمت بلیط رو در این SP در فیلد جدید مربوط به اداره مالیت درج کرد ، با این کار تمام برنامه های تمام نمایندگی ها در تمام کشور در عرض چند ثانیه به روز رسانی تحویل گرفته بودن که خودشون هم ازش خبر نداشتن .

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

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

    موفق باشید .

  21. #21
    کاربر دائمی آواتار Jarvis
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    Esfahan
    پست
    580

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

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

  22. #22

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    پست شما و پست شماره 19 رو من به اشتباه حذف کرده بودم که الان برش گردوندم ، یکی از دوستان برنامه رو براتون تغییر داده ، من بررسی نکردم ، امیدوارم مشکلتون رو حل کنه .

  23. #23
    کاربر دائمی
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران تهران
    پست
    608

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس


    try
    strtoint(edtMobile.text);
    except
    // for checking mobile if integer
    showmessage('موبايل معتبر نيست');
    abort;
    end;


    try
    strtoint( edtTel.Text);
    except
    // for checking tel if integer
    showmessage('تلفن معتبر نیست');
    abort;
    end;

    adqryEdit.Active := false;
    adqryEdit.SQL.Clear;
    adqryEdit.SQL.Add('INSERT INTO STUDENTS (NAME,FAMILY,TEL,MOBILE) VALUES (' +
    quotedstr(edtName.Text) + ', ' + quotedstr(edtFamily.Text) + ',' +
    edtTel.Text + ',' + edtMobile.Text + ')');
    adqryEdit.Open;
    adqryEdit.ExecSQL;
    //ويا

    adqryEdit.Active := true;



    معمولن تلفن یا موبایلو integer نمیگیرن که اگه گرفتی 0912 ... تو اینتجر معنی نداره ... varchar یا string بگیر که بتونی کلمتی نظیر "الی "
    یا "-" رو یا صفر اول رو داشته باشی اگر این کارو کردی پارامتر ها باید با quotedstr فرستاده بشن یعنی پامتر هایی که رشته هستند باید با quotedstr بفرستیشون مشکل این بود .. try هم برای جلوگیری از مقادیر نا معتبر گذاشته شده
    آخرین ویرایش به وسیله benyaminrahimi : شنبه 18 خرداد 1392 در 10:43 صبح

  24. #24
    کاربر دائمی
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران تهران
    پست
    608

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

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

  25. #25

    نقل قول: ریختن متن EditBox یا عناصر دیگر به دیتابیس

    هر چیم حال نکنی سانسور میکنی حتی پست حاوی سورس طرفو
    پست ایشون به اشتباه حذف شده بود که به خودشون گفته شد و برگردونده شد ، دلیلی نمیبینم به شما در موردش پاسخگو باشم .

    4 نفرم زیر پستت کف زدن آخرش چی ؟
    جواب اون همه دلیل فنی این بود ؟!
    من تاپیکو باز گذاشته بودم که نیای بگی تاپیکو بستی نشد جواب بدم که جواب شما رو هم دیدم ، گویا شما بلد نیستی درست بحث کنی و هر وقت کم میاری آسمون و ریسمون میبافی :)

تاپیک های مشابه

  1. مشکل در ریختن متن در کنترل موجود در controltab فرم دیگر
    نوشته شده توسط saeedhushmand در بخش C#‎‎
    پاسخ: 2
    آخرین پست: شنبه 04 شهریور 1391, 03:14 صبح
  2. ریختن متن Ckeditor در دیتابیس
    نوشته شده توسط ramin149 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: جمعه 07 آبان 1389, 11:24 صبح
  3. بهم ریختن متن بعد از کپی کردن در memo
    نوشته شده توسط yaas135 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 7
    آخرین پست: یک شنبه 09 تیر 1387, 12:46 عصر
  4. ذخیره کردن متن داخل یک Text Box در دیتابیس
    نوشته شده توسط مدیر پرشین تیم در بخش C#‎‎
    پاسخ: 8
    آخرین پست: دوشنبه 06 تیر 1384, 11:05 صبح
  5. نمایش خلاصه در صفحه اول و متن کامل در صفحه دیگر
    نوشته شده توسط kimia1 در بخش Classic ASP
    پاسخ: 15
    آخرین پست: یک شنبه 12 مهر 1383, 15:07 عصر

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

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