PDA

View Full Version : مشکل در اضافه کردن مقدار فیلدها از طریق فرم دلفی در بانک اسکیوال سرور



abdulhossain
سه شنبه 14 خرداد 1392, 15:44 عصر
دوستان عزیز ، من می خواهم از طریق یک فرم دلفی مقدار فیلدها را در جدول بانک اسکیوال سرور اضافه کنم ولی خطای (check multiple each value status...............) می دهد. کد من این است
table1.open;
table1.insert;
table1.fieldbyname('id').asstring:=edit1.text;
table1.fieldbyname('name').asstring:=edit2.text;
table1.fieldbyname('father').asstring:=edit3.text;
table1.post;
آیا با این روش نمی شود از طریق دلفی جدولهای اسکیوال سرور را از اطلاعات پر کرد.
اگر نمی شود ، با کدام دستور باید جدولها پر شوند.

alaveh
سه شنبه 14 خرداد 1392, 15:57 عصر
سلام

چرا با این روش هم میشه من استفاده کردم قبلا ولی روش جالبی نیست .
یک ADOQuery روی فرمت قرار بده ، وصلش کن به کانکشنت و تیبلت ، توش یه کویری اینزرت بریز و توی فرمت ExecSQL کن .
روش سریعتر ، بهتر و ایمن تر .

مثلا یک نمونه کد :



adqry1.Active:=False;
adqry1.SQL.Text:='INSERT INTO STUDENTS (NAME,FAMILY) VALUES ('''+edt1.Text+''', '+edt2.Text+'''';
adqry1.ExecSQL;

benyaminrahimi
چهارشنبه 15 خرداد 1392, 10:44 صبح
شاید id اتو اینکریمنته خوب شما از dbedit استفده کن باور کن میشود ...مشکلات کاربری چه ربطی به روش داره آقای علاوه که میفرمایید روش جالبی نیست ... اینکه وقتی آدم این همه منابع داره سر هر چیز کوچیک بخواد کد بنویسه بنظرم روش جالبی نیست ....

alaveh
چهارشنبه 15 خرداد 1392, 17:34 عصر
شاید id اتو اینکریمنته خوب شما از dbedit استفده کن باور کن میشود ...مشکلات کاربری چه ربطی به روش داره آقای علاوه که میفرمایید روش جالبی نیست ... اینکه وقتی آدم این همه منابع داره سر هر چیز کوچیک بخواد کد بنویسه بنظرم روش جالبی نیست ....
به هر صورت هر کسی نظری داره .
در مورد کد نویسی هم درست می فرمایید ولی به نظر میرسه اون چیزهایی هم که دوستمون نوشتن کد باشه دیگه . اگر بدون کد منظورتون مستقیم از طریق DBEdit هست که یکی از بد ترین روشهاست از نظر طراحی . ولی باز هم بستگی به سلیقه طراح داره و اگر مورد پسند باشه خوب بله این راه هم هست . در غیر این صورت همونی که گفتم ، استفاده از کویری بهترین راهه دوست عزیز .
در ضمن شاید این دوستمون بخواد اطلاعات رو از جدولی بخونه که از یک کویری جوین شده گرفته باشه . چطور میتونه از DBEdit استفاده کنه ؟

یوسف زالی
چهارشنبه 15 خرداد 1392, 20:54 عصر
و ایمن تر


البته من مخالفم. خطر SQL Inject وجود داره.
اما


شاید این دوستمون بخواد اطلاعات رو از جدولی بخونه که از یک کویری جوین شده گرفته باشه

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

benyaminrahimi
پنج شنبه 16 خرداد 1392, 17:55 عصر
(اگر بدون کد منظورتون مستقیم از طریق DBEdit هست که یکی از بد ترین روشهاست ) این معیار بد و خوب از کجا اومده که ما غافل بودیم ؟؟؟؟؟؟ در مورد فیلد های جوین در صورتی که جوین فارن کی و پرایمری کی در کوعری باشه کار میکنه ... در مورد فیلد های کلک هم بصورت readonly فچ میشه ...

دوستان اگه میخاین یه چیزی رو بکوبین منبع و استدلال بیارین در مورد اینجکشن هم ضعف طراحی میتونه اینو بروز بده ( اگه جنریت کردن primary key ,indexبر عهده sql باشه اینم پیش نیمیاد )... درست نیست وقتی آدم چیزی یاد گرفت فکر کنه اون درسته بقیه روش ها در باقالی ...

البته اینم من جایی ندیدم که کسی بخواد insert و upadte رو calc یا ویو بنویسه .

یوسف زالی
پنج شنبه 16 خرداد 1392, 19:55 عصر
عزیز من!
بررسی روش ها دعوا نداره.

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

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

موفق باشید.

benyaminrahimi
پنج شنبه 16 خرداد 1392, 20:45 عصر
روش sp در همه امور خوبه ولی مثلا dbedit بده چرا ؟چون بده .... اگر این دوستمون از یه دیتا ست که حاوی یک رکورد باشه و دوتا dbedit استفاده میکرد اینهمه اذیت نمیشد ... شما دلیلی نیووردی .. مشکل کنترل هایی که با datasource کار میکنن چیه ؟؟؟؟؟؟؟ خوب اگه بده که چرا توسعه دهنده ها تعطیلش نمیکنن؟ این مسایلی که بالا به عنوان دلیل مطرح کردین یکمی ایراد بنی اسراییلیه که اصلن به کنترل های پایه DB ربطی نداره ..

alaveh
جمعه 17 خرداد 1392, 03:15 صبح
این بحث به اینجا مربوط نمیشه ولی حتی المکان براتون تو پستای بالا نوشتم ... دلایلشم گفتم .. ولی شما با سفسته میگین روش sp در همه امور خوبه ولی مثلا dbedit بده چرا ؟چون بده .... اگر این دوستمون از یه دیتا ست که حاوی یک رکورد باشه و دوتا dbedit استفاده میکرد اینهمه اذیت نمیشد ... شما دلیلی نیووردی .. مشکل کنترل هایی که با datasource کار میکنن چیه ؟؟؟؟؟؟؟ خوب اگه بده که چرا توسعه دهنده ها تعطیلش نمیکنن؟ این مسایلی که بالا به عنوان دلیل مطرح کردین یکمی ایراد بنی اسراییلیه که اصلن به کنترل های پایه DB ربطی نداره ..

من که نوشتم هر کس نظری داره . اگر کوبیدنیه که شما داری میکوبی . والا من قصد ندارم مثلا دستور While رو بکوبم و از For دفاع کنم . در همین راستا قصد کوبیدن روشهای برنامه نویسی هم ندارم .
شما به نظرت قشنگه با DBEdit برای آپدیت و اینزرت کار کنی ؟ حتما روی فرم هاتون DBNavigator هم قرار میدین ؟ خوب دم شما گرم . راه های زیادی هست حتی میشه دیتابیس رو هم باز بگذاریم و مستقیم همونجا آپدیت کنه ولی از نظر من اینا ضعف برنامه نویسه که بلد نیست کد بزنه . من اینطور کد نویسی رو 2 ریال هم براش ارزش قایل نیستم . شما دلت میخواد اینطور کد بنویسی به خودت مربوطه و کابرهات . منم به روش خودم . این دوستمون هم مختاره هر روشی که دلش میخواد کد بنویسه . هر دوتامون هم جوابش رو دادیم و خودش میتونه انتخاب کنه .


اگه جنریت کردن primary key ,indexبر عهده sql باشه اینم پیش نیمیاد وقتی قرار شد کسی کوئری بنویسه برای آپدیت و اینزرتش هم کوئری مینویسه نه DBEDIT :D

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

Felony
جمعه 17 خرداد 1392, 09:01 صبح
خوب اگه بده که چرا توسعه دهنده ها تعطیلش نمیکنن؟
منظورتون از توسه دهنده ها ، کدنویسای ایرانی هست دیگه ؟!

بحثی که اینجا هست کلا از لحاظ فنی مشکل داره ؛

آقای رحیمی که میگین مگر DBEdit چه مشکلی داره و ... ، احتمالا جنابعالی تا به حال با برنامه ای که امنیت توش اهمیت داشته باشه سر و کار نداشتید ، اون DBEdit و ... که میگید برنامه رو به سمت عدم امنیت میبرن ، قرار نیست از هر چیزی که دلفی در اختیار شما قرار داد استفاده کنید ، اون کامپوننت هایی که ازشون نام میبرید و میگید مگر مشکلشون چیه و چرا هنوز ازشون استفاده میکنن ، به دلیل این هست که برنامه نویسان ما به روز نیستند، کامپوننت های Data Aware پیش فرض دلفی از نسخه 5 یا 6 در دلفی وجود دارند ، کامپوننت هایی نظیر DBEdit و DBListBox و ... از همون موقع تا به حال به روز رسانی دریافت نکردند ، دلیل این که هنوز در دلفی وجود دارند این هست که زمان دلفی 7 که دلفی در پروژه های اینتپرایز بانک اطلاعاتی استفاده میشد از این کامپوننت ها توسط افراد مختلف در پروژه های بزرگ استفاده شد و حالا مجبورن به خاطر backward Compatibility این کامپوننت ها رو در نسخه های جدید نگهداری کنند تا برنامه های قدیمی هم بتونن به نسخه جدید مهاجرت کنن .

این از دلیل اینکه چرا نباید از اون چرندیات دلفی استفاده کنید .

کامپوننت هایی نظیر ADOStoredProcedure و ... سال 2007 ( تا جایی که یادمه ) تغییراتی داشتند و به روز رسانی هایی برای اونها صورت گرفت ، ولی خوب در حال حاظر با اخرین تغییرات همگام نیستند ولی خوب بسیار ، بسیار مورد اعتماد تر از مواردی که ذکر کردم هستند .

و در آخر ، استفاده از این ابزارها به این صورت کاملا اشتباه هست ، شما حق نداری وسط برنامت مستقیم دست به هرجای میخوای بندازی ، از این طرف متدهای یک ADOTable رو صدا بزنی ، از اون طرف ADOConnection رو فعال و غیر فعال کنی و ... ، پس اون شئ گرایی که همه ازش دم میزنن ولی بهش عمل نمیکنن کجاست ! شئ گرایی معنیش این نیست که شئ بندازید رو فرم ، باید برای شئ گرا نوشتن برنامه وقت بزارید ، باید مورادی مثل Abstraction , Polymorphism , Encapsulation و ... رو رعایت کنید ، چه معنی داره وسط یه برنامه مستقیم یه سلکت بزنید یا ... ؟! چه معنی داره مستقیم توسط 4 تا کامپوننت عهد محمد خان قاجار به بانک اطلاعاتی دسترسی پیدا کنید و بعد بگید کار راحت میشه ؟! بله کار راحت میشه ولی وقتی 2 روز دیگه یکی اینجکشن زد و برنامه رو با مسخره ترین کد T-SQL نابود کرد و کارفرما ازت شکلایت و ... کرد میفهمید ، وقتی رفتید یه جا مصاحبه گفتید این راحت تره و بی دردسر تر ، بدون دوسنتن معایبش و طرف یه نیسخند بهتون زد ، اونوقت میبیند که دلیلی نداره از هر چیزی که وجود داره استفاده کنید .

benyaminrahimi
جمعه 17 خرداد 1392, 11:48 صبح
آقای فلانی ؟ چرندیات دلفی ؟ .. نوجهتون رو جلب میکنم به کامپوننت های نظیر sdac یا unidac و devexpress که تمام چیز هایی که گفتی حل کردند ... بعد متوجه میشین کی در زمان آغا محمممد خان داره کد میزنه .. اینا زمان delphi 3 که راست به چپم نبود نیومدن به بازار ... و هنوزم تو هر فیلدی که شما بگی به بهترین نحو کار میکنن ... شی گرایی روش طراحی ui ممکنه باشه چه ربطی داره به چیزی که میگی ؟ حتما کارفرما ها از همکارن سیستم (بزرگترین شرکت نرم افزاری ایران که ما تو تیم دلیفش بودیم ) یا ایده ال یا رایورز یا رایان نظم ..... شکایت کردن و ما ندیدم .. منظورم از توسعه دهندگان خود نرم افزار هاست ... در هر صورت کد نویسیتون منو یا فاکس پرو یا db2 میندازه .. راستی ADOStoredProcedure از خیلی قبل ترم بود تو delphi 5 ,4,3 دیده بودم وقتی میخای داستان بگی رفرنستو چک کن بعد ...

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

آقای علاوه : شاید اکثریت مثل بنده فکر میکردن که از پاسکال به دلفی و از داس به ویندوز رسیدیم .. در هر صورت اگه لازم باشه باید sp نوشت ... شما اگه این طرز فکرو داری کلن برو اسمبلی بنویس پروژهاتو که 2 ریال بیشتر ارزش داشته باشه ...

Felony
جمعه 17 خرداد 1392, 19:08 عصر
نوجهتون رو جلب میکنم به کامپوننت های نظیر sdac یا unidac و devexpress که تمام چیز هایی که گفتی حل کردند ...
بحث من روی این کامپوننت ها نبوده ، من در مورد مثالی که شما زدید بحث کردم ، وقتی شما شیوه استفاده از یک ابزار رو بلد نباشید که به نظر اینطور میاد ، استفاده از کامپوننت هایی که نام بردید دردی رو دوا نمیکن ، همین الان میتونم اسم چندین و چند برنامه ایرانی رو بیارم که میلیون ها تومن خرجشون شده و از همین ابزارها استفاده میکنن ولی مقت نمیارزن ، بسیار ، بسیار برنامه هایی هم مشاهده میشه که با استفاده از ابراهای پیش فرض دلفی بهترین عملکرد رو ارائه میدن .

همیشه فن برتر از ابزار هست .


شی گرایی روش طراحی ui ممکنه باشه چه ربطی داره به چیزی که میگی ؟
شئ گرایی ربطی به طراحی رابط کاربر نداره .


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


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


راستی ADOStoredProcedure از خیلی قبل ترم بود تو delphi 5 ,4,3 دیده بودم وقتی میخای داستان بگی رفرنستو چک کن بعد ...
این عکس از دلفی 3 ، همونطور که میبینید خبری از ADOStoredProcedure نیست ، چیزی که شما میگید StoredProcedure خالی هست که فقط از 2 انجین بسیار ابتدایی پشتیبانی میکرده ، اون زمان اینجین ADO یی وجود نداشته که دلفی از پشتیبانی کنه ، پشتیبانی از ADO از نسخه 5 به دلفی اضافه شد ، لطفا در مورد چیزی که اطلاع ندارید اینگونه نظر ندید .


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

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

موفق باشید .

benyaminrahimi
شنبه 18 خرداد 1392, 09:12 صبح
هر جا نمیتونی استدلال کنی دلیلی نمیبنی جواب بدی یا هر جا به مذاقتون خوش نیاد یا به آدم تهمت میزنید -به توهین - یا سانسور میکنید پس باهات نمیشه بحث کرد ... من خودنمایی نکردم شما و دوستان میاین از تجارب ارزندتون بقیرو بهره مند میکنیدو مانیفست میدید ... حد بنده رو هم شما تعیین نمیکنی یادت نره و در آخر اینجا حوزه علمیه نیست که بخوای درس اخلاق به امثال من بدی ... و من الله توفیق برادر

Felony
شنبه 18 خرداد 1392, 10:00 صبح
کسی به شما درس اخلاق نداد ! حد و اندازتون یاداوری شد ! حد شما رو من تعیین نمیکنم ، قوانین و هنجارهای حاکم بر این محیط علمی ، اجتماعی تعیین میکنه .

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