PDA

View Full Version : یه اشکال در عمل delet عناصر............؟



tik_tak
پنج شنبه 02 اسفند 1386, 22:28 عصر
با سلام



if DataModule2.ADOTable4.Locate('name-gooshy',Edit3.Text,[]) = True
then
DataModule2.ADOTable4.delete;


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

SYNDROME
جمعه 03 اسفند 1386, 08:15 صبح
Delete نمی کند چون پیدا نمی کند.
آیا نام گوشی ها را در همین کامپیوتر با این ویندوز اضافه کرده ای و یا نه روی کامپیوتر دیگری اضافه شده است؟
برای امتحان مثلاً کلمه "حذف" را به عنوان نام گوشی اضافه کن و سپس ببین می توانی حذف کنی.
اگر باز هم جواب نگرفتنی با عمل فیلترین جستجو را انجام بده.


ADOQuery1.Filtered := False;
ADOQuery1.Filter := 'Name = '+QuotedStr(Edit1.Text);
ADOQuery1.Filtered := True;
IF Not ADOQuery1.IsEmpty Then
ADOQuery1.Delete;

موفق باشید

champion
جمعه 03 اسفند 1386, 09:19 صبح
البته به جای فیلتر میتونی مستقیم یک Query بزنی و رکورد مورد نظرت رو Delete کنی

tik_tak
جمعه 03 اسفند 1386, 19:06 عصر
آره اسم گوشیا رو سیتمم خودم نوشتم
چرا با فارسی اینجوری رفتار میکنه؟

SYNDROME
جمعه 03 اسفند 1386, 21:16 عصر
عمل فیلتر را هم امتحان کردی تا ببینی جواب می دهد یا نه؟
موفق باشید

champion
جمعه 03 اسفند 1386, 21:56 عصر
موضوع فارسی هست نه روش مورد استفاده شما و نه روشهای پیشنهادی من و جناب Syndrome احتمالا کلمات شما یک فاصله اول یا اخرش داره که نمیتونه پیدا کنه بازم پیشنهاد میکنم از دستورات Sql استفاده کنی و برای پیدا کردن اسم گوشی از دستور Like استفاده کن مثلا
Delete from tbl1 where Name Like '%xxx'
علامت % رو اگه هم اول بذار و هم آخر که اونوقت همه گوشیهایی که شامل این کلمه باشه برات حذف میکنه
دوست عزیزم توی این جور موارد من پیشنهاد میکنم به جای اینکه مستقیم با اسم کار کنی یک Id برای جدولت در نظر بگیر و با اون کار کن این روش فعلی شما مطمئن نیست
موفق باشی

tik_tak
شنبه 04 اسفند 1386, 23:54 عصر
با سلام
یعنی از کاربر بخوام کدشو وارد کنه وبعد حذف کنه درست میگین منم آخرش مجبور شدم همین کارو بکنم
خب اگه کاربر کد جنس رو ندونه چی ؟فقط اسم اون جنس یا کالارو بدونه چی؟
خب در این صورت تنها یه راه براش میمونه اینه که در قسمت جستجو
اسم کالا رو بده تا کد کالا رو ببینه و پیدا کنه بعدش کد کالارو درقسمت حذف بده
تا اون کالا حذف بشه
بازم برگشتم سر خونه اول اونم اینه که نمیتونه اسمهای فارسی رو جستجو کنه ؟؟

راستی با فیلتر امتحان نکردم هنوز

SYNDROME
یک شنبه 05 اسفند 1386, 07:32 صبح
برای این کار روی هر رکوردی که کاربر می ایستد مقدار کد را برگردانید و در Query مورد نظر قرار دهید و سپس باید ADO اولی را هم Refresh کنید تا رکوردی که حذف شد در این ADO نیز اعمال شود.
موفق باشید

tik_tak
یک شنبه 05 اسفند 1386, 09:01 صبح
سلام
مشکل اون جستجو فارسی حل شد
علتش این بود که:
بعضی از کالاهایی رو که من تو اکسس وارد جدولم میکردم رو در دلفی نمیشناخت تا اونجاییم که من امتحان کردم
اون کالاهایی رو که توشون حرف "ی" به کار برده شده بودند رو دلفی نمیشناخت حالا شایدم حروف دیگه ایم باشه !
ولی تمام کالاهایی رو که تو دلفی با هر حرفی به فارسی مینوسم و به جدولم اضافه میکنم این کالاها رو در جستجو پیدا میکنه یعنی در واقع میشناسه
چه با کوئری چه با دستورات جستجو
خب اینا که از یه سیستم وارد پایگاه داده میشدن پس واسه چی اینجوری میشه؟؟

dkhatibi
یک شنبه 05 اسفند 1386, 13:55 عصر
این مشکل وجود داره.
من هم با داده هایی که با VB وارد شده بود و تو دلفی می خواستم از اون استفاده کنم مشکل وجود داشت.
هر روشی را که می شده را امتحان کردم.
تنها یک راه حل مطمئن وجود داره که پس از تکمیل اطلاعات کدهای مربوط به حروف ی و ک را در برنامه ی دلفی تبدیل کنید
یک کد در این رابطه وجود دارد.
عبارت زیر را جستجو کنید...
مشکل حروف

SYNDROME
یک شنبه 05 اسفند 1386, 16:52 عصر
فقط به این نکته دقت کنید که اگر اطلاعات را در یک کامپیوتر وارد کنید ممکن است به دلیل مشکل کدها در کامپیوتر دیگر جستجو بی نتیجه باشد.
در هنگام ورود اطلاعات در Edit ها در رویداد OnkeyPress فرم اصلاح کنید تا در آینده هم به مشکلات دیگری برخورد نکنید.
موفق باشید

tik_tak
یک شنبه 05 اسفند 1386, 19:28 عصر
در هنگام ورود اطلاعات در Edit ها در رویداد OnkeyPress فرم اصلاح کنید تا در آینده هم به مشکلات دیگری برخورد نکنید.
موفق باشید

منظورتون رو از اصلاح متوجه نشدم!!

SYNDROME
یک شنبه 05 اسفند 1386, 21:41 عصر
منظورتون رو از اصلاح متوجه نشدم!!
لینک زیر را نگاه کنید.
http://barnamenevis.org/forum/showthread.php?t=71262&highlight=KeyPreview
موفق باشید

champion
پنج شنبه 09 اسفند 1386, 13:00 عصر
ببین دوست عزیز منظور از کد این نیست که شما از کاربر بخواهید کد کالا رو وارد کنه منظور اینه که در جدول مربوطه یک فیلد int اضافه کنی که کلید جدول باشه و تکراری هم نباشه یعنی Autoinc اونوقت توی برنامه از Dblockup استفاده کن کاربر لیست گوشیها رو میبینه و یکی رو انتخاب میکنه و شما میتونید کد متناظر با گوشی انتخاب شده رو بخونید چه جوری ؟ عرض میکنم یا مقدار Keyvalue لوک اپ رو بخون و یا مستقیم فیلد کد رو از جدولی که لوک آپ شما به اون وصل هست. و بعد میتونی یک کوئری بزنی و اون گوشی رو پاک کنی . امیدوارم واضح توضیح داده باشم و مشکل شما هم حل شده باشه