View Full Version : سوال: ریختن متن EditBox یا عناصر دیگر به دیتابیس
Jarvis
شنبه 11 خرداد 1392, 13:11 عصر
سلام
من این مساله رو جستجو کردم... چیزی پیدا نکردم
من میخوام یه رکورد جدید به دیتابیس خودم اضافه کنم ...
یه فرم دارم که 4 تا EditBox داره ... حالا ممکنه بعدا یه ComboBox یا RadioBox یا CheckBox هم بخوام بزارم ...
حالا چجوری می تونم مقادیر این عناصر رو بگیرم و توی دستور INSERT INTO استفاده کنم .. ؟
مثلا با این کد مسلماً نمی تونم :
adqry1.SQL.Add('INSERT INTO STUDENTS (NAME,FAMILY) VALUES ('edt1.Text', 'edt2.Text')');
بهترین روش چیه ؟
یوسف زالی
یک شنبه 12 خرداد 1392, 14:49 عصر
سلام.
اتفاقا دقیقا با همون کد می تونی. (یکی از راههاش هست)
adqry1.SQL.Add('INSERT INTO STUDENTS (NAME,FAMILY) VALUES ('+quotedstr(edt1.Text)+', '+quotedstr(edt2.Text)+')');
بهترین روش (از نظر من) استفاده از SP هست.
ADOStoresProc رو ببینید
Jarvis
دوشنبه 13 خرداد 1392, 10:01 صبح
من از دلفی XE3 و کامپوننت FireDAC استفاده میکنم
یوسف زالی
دوشنبه 13 خرداد 1392, 11:25 صبح
پروفایلر ران کنید، یا به جای دستور exec متن sql رو showmessage کنید.
ببینید در متن چیزی غلط نیست.
اگر نوع فیلدهاتون رشته ای هست باید مقادیر رشته ای محصور در ' باشند. فیلد های عددی نباید باشند. این مورد رو چک کنید.
مطمئن شید روی جدول تریگری ران نباشه یا اگر هست وضعیت اون رو چک کنید.
بهروز عباسی
دوشنبه 13 خرداد 1392, 20:13 عصر
اون Error به خاطر نوع داده ایه که توی DB برای اون فیلد ست کردی ولی چیزی که میخوای داخش بریزی باهاش فرق داره.
موفق باشی.
Jarvis
سه شنبه 14 خرداد 1392, 14:27 عصر
Backup بلد نیستم بگیرم ...
خود بانک اطلاعاتی رو گذاشتم که می تونید با DB Workbench بازش کنید.
ممنون از لطفتون.
Jarvis
سه شنبه 14 خرداد 1392, 23:59 عصر
عزیزم شما استفاده کن . جواب میده .
عزیزم ... استفاده کردم و نشد ...!
لازم به ذکر هستش که بگم وقتی میخوام برنامه رو اجرا کنم اول این پیغام ظاهر میشه و بعد برنامه Run میشه.
105125
benyaminrahimi
چهارشنبه 15 خرداد 1392, 10:37 صبح
این همه کد برای ریختن دوتا edit در بانک ... خوب من نمیدونم وقتی توسعه دهنده گان delphi یه چیزی یه نام dbedit ساختن و یا datasource چرا برای این کارای چیپ با ید از stored procedure استفاده کرد؟؟؟؟؟ همه یه چیزایی شنیدن که stored procedure سریع و خوبه ....
یوسف زالی
چهارشنبه 15 خرداد 1392, 12:39 عصر
در دی بی کار چیپ نداریم.
عزیز من!
چیپ بودن یا نبودن کار رو طراحی شما مشخص می کنه. شما می تونی مستقیم با همون دی بی ادیت دیتا رو بفرستی تو دیتا بیس.
اما توصیه اکید می کنم برای کوچکترین کارهاتون هم از SP استفاده کنید. حتی برای یک آپدیت 0 به 1.
حالا شما می تونی از چهارصد تا روش دیگه هم استفاده کنی.
همه یه چیزایی شنیدن که stored procedure سریع و خوبه ....
وقتی این رو با دل و جون متوجه می شید که درگیر یک پروژه نسبتا بزرگ بشید. استفاده از SP مزیت های زیادی داره که با یک سرچ ساده می تونید مطالب رو بدست بیارید. اگر واقعا سوال دارید که چی اون خوبه، در قالب یک تاپیک (پس از جستجو و باقی بودن سوال) مطرح بفرمایید دوستان پاسخ می دند.
جناب Alaveh روشی که در پستتون گفتید (استفاده از ' ) خیلی معمول و خوب نیست. به جاش از QuotedStr استفاده کنید.
آقای صالحی، شما از دی بی گرید استفاده کنید (برای تست) و خاصیت ReadOnly اون رو false کنید و مستقیم از همون جا تست کنید ببینید می تونید دیتا رو عوض کنید یا نه.
اگر اونجا مشکلی ندارید اشکال از کدتون هست.
اگر از دی بی گرید هم ارور دارید اشکال از کد شما نیست. جای دیگه ای باید بگردید دنبال اشکال.
حالا قدم به قدم پیش برید تا ببینید چی می شه.
بهروز عباسی
چهارشنبه 15 خرداد 1392, 12:54 عصر
وقتی این رو با دل و جون متوجه می شید که درگیر یک پروژه نسبتا بزرگ بشید. استفاده از SP مزیت های زیادی داره که با یک سرچ ساده می تونید مطالب رو بدست بیارید. اگر واقعا سوال دارید که چی اون خوبه، در قالب یک تاپیک (پس از جستجو و باقی بودن سوال) مطرح بفرمایید دوستان پاسخ می دند.
درود به همه
یوسف جان خسته نباشی ؛من این ترم پایگاه داده داشتم استادم همش میگفت استفاده از SP فقط سربار اجرای بیشتری روی سرور (DBMS) داره و تاجایی که میشه نباید استفاده کردو به جاش مثلاًتوی Query گرفتن از Query های تودر تو استفاده کنیم بهتره (البته از نظر طراحی صحیح پایگاه داده میگفت و عمری هم خاک SQLServer , Oracle خورده بود:لبخند:)
من خودم زیاد توی طراحی DB کار نکردم (تازه کارم:متفکر:) به نظرت حرفش درسته ؟ یانه ؟
یوسف زالی
چهارشنبه 15 خرداد 1392, 20:50 عصر
سلام بهروز جان. خوبی؟
به نظرت حرفش درسته ؟ یانه ؟
اگر عمری خاک خورده ظاهرا من باید یکم بیشتر تحقیق کنم. اما به عنوان کسی که یه ذره خاک خورده!! تو این 5 6 سال یاد گرفتم و دیدم که اس پی بهتره.
اما چند تا سوال از استادتون کن ببین سوادش چقدره (استاد ما در مقطع ارشد حتی نمی دونست دلفی شی گراست!!!)
1- سربار اضافه ای که روی DBMS می گذاره دقیقا چیه؟ البته نظر من عکسه، اس پی ها به دلیل این که ترجمه می شن، و براشون Execution Plan ذخیره می شه سرعت بالاتری نسبت به کوئری دارند.
2- اس پی ها متن اجرایی کمتری روی شبکه جابجا می کنند.
3- تغییرات در اس پی ها بدون نیاز به کامپایل مجدد برنامه امکان پذیره.
4- اس پی ها نسبت به موتور داخلی دلفی امکانات و دستورات بیشتری در اختیارتون قرار می دند.
5- به دلیل این که اس پی روی پایگاه داده وجود داره، راحت تر می شه برنامه رو لوکالایز کرد.
6- به همون دلیل می تونید اون ها رو راحت تر تریس و دیباگ کنید. ابزار هایی هم برای این کار وجود داره.
ممکنه منظور استادتون (با توجه به کوئری های تو در تو که پیشنهاد داده) این باشه که در روند اجرای یک کوئری یک اس پی دیگه رو کال نکنید. اون وقت حرفش منطقی و درست هست.
اعصاب من هم داره خط خطی می شه!!!
نیاید منو بگیرید به باد فوش و ناسزا ...
با عرض معذرت از همه عزیزان، هر کس چنین کاری کرد خیلی بی خود کرده.
اگر می بینی که لحن ها یکم تند و کند!! می شه دلیلش مسخره کردن کسی نیست. یکم ظرف ماها کوچیکه. یکمی هم کاربرا حوصلشون محدوده. یکمی هم اینترنت ها قشنگ شده، بعضی ها هم یکم تنبل هستند.
وگرنه از همه خنگ تر منم که تا حالا نمی دونستم پورت دقیقا چیه :قهقهه:
حالا شما از رو حوصله (چون دوست دارم وقتی می بینم یک نفر برای فهمیدن چیزی داره زحمت می کشه) راهنمایی های دوستان رو پیش ببر ایشالا که درست می شه.
hp1361
پنج شنبه 16 خرداد 1392, 14:15 عصر
سلام
توی کد بالا که براتون گذاشتم فقط نام و نام خانوادگی رو اضافه کردم که قاعدتا لز نوع 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;
موفق باشید
Jarvis
پنج شنبه 16 خرداد 1392, 16:41 عصر
ممنون از لطف شما ... نمی دونم این کد رو روی سورسی که گذاشتم تست کردید یا نه ... ولی من تست کردم یه ارور داد با متن زیر :
105202
benyaminrahimi
پنج شنبه 16 خرداد 1392, 17:44 عصر
محمد دوست عزیز یه ملت رو سر کار گذاشتی اول شما برو دیتا تایپ های sql رو مطالعه کن که بدونی 0931323333. مقدار int نیست و از رنج خارجه ...
در جواب اون دوست عزیز که فرمودند یه بیت هم باید با sp تغییر کنه و پروژه های بزرگ چنین است و چنان ... باید عرض کنم درست نیست یه نظر شخضی تبدیل به مانیفست شه ... این طور کد نویسی منو یاد فاکس پرو میندازه ... اگه چیزی که شما میگی صادق باشه پس توسعه دهندگان نرم افزار نباید خودشون خسته کنن و کامپوننت هایی با پرا پرتی datasource بنویسن ... باید برن کمی مطالعه کنن و از تجارب عالیه شما در پروژه های بزرگ بهره ببرند ... شما هم اگر مطالعه کنی و یه پروفایلر رو sql باز کنی متوجه میشی که همون کدی که شما sp میکنی رو خود کامپوننت ایجاد میکنه که خیلی بهینه تر از sp های کاربری هست ... تو هر کاری هم کار چیپ داریم ... امید وارم گرفته باشی
یوسف زالی
پنج شنبه 16 خرداد 1392, 19:45 عصر
باید برن کمی مطالعه کنن و از تجارب عالیه شما در پروژه های بزرگ بهره ببرند
من نمی دونم چی بگم الان.
متاسفم. شما از هر روشی که دوست داری استفاده کن. فکر می کنم در این باره توضیحات مکفی ارائه شد. بنده هم مطالعه ام رو بیشتر می کنم. اما توصیه می کنم شما هم همین کار رو کنی.
در خصوص پروفایلر، در خصوص اس پی ها یک رشته exec فرستاده می شه با پارامتر هاش اما در خصوص یک چیزی مثل ADOQuery واقعا نظرتون همینه؟؟؟ تبدیل می شه به همون چیز؟
دوست من،
الان دلایلی که در خصوص SP گفته شد همگی بی خود بوده؟
امیدوارم گرفته باشی!
بی خیال، تاپیک به بیراهه کشیده نشه.
حرف آخر من این که ترجیح من روی اس پی هست. نمی دونم چرا تا حرفی زده می شه ازش سوء تعبیر می شه.
موفق باشید.
benyaminrahimi
پنج شنبه 16 خرداد 1392, 21:00 عصر
وقتی نقل قول میکنید کامل نقل قول کنید که سوع تفاهم نشه ... منم برای شما آرزوی موفقیت دارم ... اگر همواره دوست دارید چرخ رو اختراع کنید و از کامپوننت استفاده نکنید .. من اصلن در مورد پامتر 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 شما این کارو سریع تر انجام بده ...
... جملاتی مثل ... در دیتا بس کار چیپ نداریم ... یا برو از استادت بپرس اینو بلده .... وقتی این رو با دل و جون متوجه می شید که درگیر یک پروژه نسبتا بزرگ بشید. اینا جای تاسف داره
یوسف زالی
پنج شنبه 16 خرداد 1392, 21:47 عصر
در دیتا بس کار چیپ نداریم
این نظر منه و روی حرفم هستم.
اما :
اما چند تا سوال از استادتون کن ببین سوادش چقدره
حرف اصلی من بود که متاسفانه تحریف شد به:
برو از استادت بپرس اینو بلده
در مورد :
وقتی این رو با دل و جون متوجه می شید که درگیر یک پروژه نسبتا بزرگ بشید.
بنده نظرم همینه. ممکنه شما با دل و جون چیز دیگه ای رو متوجه شده باشید. این نتیجه چند سال کار کردن و درگیر شدن با پروژه های منه. شما نظر خودت رو بده.
اما خیلی خوبه که بالاخره رو آوردید به اثبات و ارائه دلیل.
دوست من، نمی دونم چرا فکر می کنم فکر می کنید باید ادعای کسی رو از بین ببرید. نقل قول من درست بود و نقل قول شما حتی نقل قول نبود!
تاپیک جای دعوا نیست. روش شما هم روشیه برای خودش.
امیدوارم به جای فلسفی کردن و به حاشیه کشیدن، یک کمی هر دو مون بهتر بتونیم تعامل کنیم.
اولین انتقاد هم به خودم. موفق باشید.
Jarvis
پنج شنبه 16 خرداد 1392, 22:53 عصر
ضمن تشکر از اساتید عزیز ... واقعا از لطفتون ممنونم که کمک می کنید ...
محمد دوست عزیز یه ملت رو سر کار گذاشتی اول شما برو دیتا تایپ های sql رو مطالعه کن که بدونی 0931323333. مقدار int نیست و از رنج خارجه ...
ببخشید ... معذرت میخوام .. عرض کردم بنده مبتدی هستم ... الان در حدی مبتدی هستم که Stored Procedure - چیپ و... رو نمیدونم چی هستند ...
حالا آخرش من نفهمیدم باید چیکار کنم ... ! ( شرمنده اگه یه خورده نفهمم ! ) .. دیتابیسم مشکل داره .. اون فیلدی که گفتید نمی پذیره باید چیکارش کنم که بپذیره ..؟
hp1361
جمعه 17 خرداد 1392, 10:08 صبح
سلام
درمورد دیتابیس که آقای عشایری اصل مطلب رو گفتن! در مورد اینکه هرکی یچی میگه: اولا تصمیم با شماست. ثانیا اون دوستمون گفتا از Access استفاده کن تا بقیه بتونن راحت تر راهنماییت کنن(منظور من استفاده کلی بود)
جستجو ابزاریست بسیار مناسب!
Datamodule هم فکر کن مثل یک فرمه که همه کامپوننت های کار با DB رو روی اون قرار میدیم!(البته نمایش داده نمیشه)
برای استفاده هم در پروژه ات New Item رو بزن و Datamodule رو انتخاب کن. مثل بقیه فرم ها بهش یه اسم بده و کامپوننت ها رو روش قرار بده
برای استفاده از ابزارهای اون در دیگر فرمها هم یادت نره یونیتش رو به فرم جاریت اضافه کنی. مثلا اگه میخوای در فرم اصلی به ابزار table در دیتاماژول دسترسی داشته باشی File=>Use Unit یا کلید میانبر Alt+F11 رو بزن
برنامه ت رو برات تغییر دادم
105244
Felony
جمعه 17 خرداد 1392, 19:40 عصر
درود به همه
یوسف جان خسته نباشی ؛من این ترم پایگاه داده داشتم استادم همش میگفت استفاده از SP فقط سربار اجرای بیشتری روی سرور (DBMS) داره و تاجایی که میشه نباید استفاده کردو به جاش مثلاًتوی Query گرفتن از Query های تودر تو استفاده کنیم بهتره (البته از نظر طراحی صحیح پایگاه داده میگفت و عمری هم خاک SQLServer , Oracle خورده بود:لبخند:)
من خودم زیاد توی طراحی DB کار نکردم (تازه کارم:متفکر:) به نظرت حرفش درسته ؟ یانه ؟
استادتون تا به حال چند تا پروژه اینترپرایز از نزدیک دیده ؟ چند بار پروژه بزرگ انجام داده ؟ تا به حال دیتابیس چند ده گیگابایتی ( حالا نه ترابایتی که از نزدیک دیدم ) دیده ؟ میدونه انجین های بانک های اطلاعاتی Server Base مثل SQL Server یا Oracle چه طور با Srtored Procedure ها رفتار میکنن ؟ میدونه کوئری های تو در تو چیست ؟! موتور بانک اطلاعاتی چطور اینها رو پردازیش میکنه ؟ چیزی در مورد Parse کردن ، Fetch کردن ، مباحث Pageing در بانک های اطلاعاتی بزرگ و کوئری های تو در تو میدونه ؟!
الان این کوئری تو در تو هیچ ربطی به SP نداره ، تو SP هم میشه کوئری های تو در تو زد ، چه ربطی داره که کوئری تو در تو برتری داره نسبت به SP ، رسالت Stored Procedure ها چیز دیگری هست .
محمد دوست عزیز یه ملت رو سر کار گذاشتی اول شما برو دیتا تایپ های 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 در فیلد جدید مربوط به اداره مالیت درج کرد ، با این کار تمام برنامه های تمام نمایندگی ها در تمام کشور در عرض چند ثانیه به روز رسانی تحویل گرفته بودن که خودشون هم ازش خبر نداشتن .
کلی مزیت دیگه هم هست که من حوصله ندارم بنویسم ، فقط اینقدری نوشتم که بدونید در مورد چی دارید صحبت میکنید ، دیدتون باز تر بشه و خودتون برید در مورد مزایا و معایبش تحقیق کنید .
در آخر دوست عزیز ، آقای رحیمی من با شما یا شخص دیگری دعوا و دشمنی ندارم ، ولی اجازه نمیدم به کاربری توهین بشه و یا در موردی که شخصی اطلاعات تخصصی نداره نظر بده و نظرش رو بخواد به عنوان یک نظر فنی قالب بدونه و انتقاداتی که دیگران بهش میکنن رو با تمسخر و تخریب پاسخ بده .
موفق باشید .
Jarvis
شنبه 18 خرداد 1392, 10:02 صبح
من تو پیغام خصوصی خدمتتون عرض کردم ، با توجه به اینکه پیشنهادات متعددی ارائه شد و مشکل شما همچنان حل نشده بهتره یک نسخه از بانک اطلاعاتی و برنامتون همراه با سورس که مشکل داره رو ضمیمه کنید تا دوستانی که میخوان بهتون کمک کنن بفهمن مشکل دقیقا از کجاست .
بله .. بنده هم سورس و هم دیتابیس رو گذاشتم ... ولی شما اون پست که سورس توش ضمیمه شده بود رو پاک کردید ...:ناراحت:
حالا من دوباره میزارم.
Felony
شنبه 18 خرداد 1392, 10:10 صبح
پست شما و پست شماره 19 رو من به اشتباه حذف کرده بودم که الان برش گردوندم ، یکی از دوستان برنامه رو براتون تغییر داده ، من بررسی نکردم ، امیدوارم مشکلتون رو حل کنه .
benyaminrahimi
شنبه 18 خرداد 1392, 10:30 صبح
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
یک شنبه 19 خرداد 1392, 20:15 عصر
گویا مشکل این دوستمون حل شد ... خدا رو شکر ... آقای رییس ملت رو سرکار گذاشتن یه استعارست نه بی احترامی و اصلن همچین هدفی نداشت
یه ملت رو سر کار نگذاشته ، بهتره نحوه رفتار کاربر رو ببینی و براش احترام قائل شی ، وقتی کاربری اومده پست زده و صراحتا گفته من مبتدی هستم ، کلی هم جستجو کردم ، کلی هم معذرت خواهی کرده بابت سوالش ، شما حقی نداری بیای و اینطور رفتار کنی ، شما مگر چند پست در این تاپیک دادی که به نظرت کاربر وقتت رو هدر داده و سر کارت گذاشته ؟!
لحن صحبت کردن شما هم چندان جالب نیست قربان ... هر چیم حال نکنی سانسور میکنی حتی پست حاوی سورس طرفو گیرم 4 نفرم زیر پستت کف زدن آخرش چی ؟
Felony
دوشنبه 20 خرداد 1392, 05:18 صبح
هر چیم حال نکنی سانسور میکنی حتی پست حاوی سورس طرفو
پست ایشون به اشتباه حذف شده بود که به خودشون گفته شد و برگردونده شد ، دلیلی نمیبینم به شما در موردش پاسخگو باشم .
4 نفرم زیر پستت کف زدن آخرش چی ؟
جواب اون همه دلیل فنی این بود ؟!
من تاپیکو باز گذاشته بودم که نیای بگی تاپیکو بستی نشد جواب بدم که جواب شما رو هم دیدم ، گویا شما بلد نیستی درست بحث کنی و هر وقت کم میاری آسمون و ریسمون میبافی :)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.