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

نام تاپیک: چک کردن تکراری بودن مقدار فیلد(ها)

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1384
    محل زندگی
    كاشان
    سن
    35
    پست
    315

    چک کردن تکراری بودن مقدار فیلد(ها)

    سلام
    یک سئوال فنی
    من میخوام وقتی فرم در حالت Insert یا Edit یک جدول، هنگام ورود اطلاعات در یک dbedit ، چک کنم که آیا این مقدار وارد شده، تکراری هست یا خیر.
    من از روش زیر میخوام استفاده کنم:
    بعداز اینکه مقدار وارد dbedit شد بیام با استفاده از یک کوئری مقدار وارد شده رو در جدول بررسی کنم .
    حالا سئوال اصلی
    آیا در هنگام Insert یا Edit روی یک جدول ، نوشتن یک کوئری روی همان جدول ، مشکلی ایجاد نخواهد کرد؟
    یا اصلا این روش من اصولی هست یا نه؟

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

    نقل قول: چک کردن تکراری بودن مقدار فیلد(ها)

    شما باید یک تابع بنویسید که این کار را براتون انجام بده و اون رو در موقع OnExit شی DBEdit فراخونی کنید .

    (توجه کنید که در تابع شما باید یک متغییر از نوع TADOQuery تعریف کنید و با اون برای یافتن مقدار تکراری کار کنید تا داده هایی که در سایر اشیا به نمایش گذاشته می شوند به هم نخورند )

    من خودم از این تابع را در یکی از پروژه هام استفاده کردم :

    function TFrmAddDrivers.SearchDuplicate(const TabelName, FieldName,
    Value: string;NumericType:Boolean=False): Boolean;
    var
    SQLRun:TADQuery;
    begin
    try
    SQLRun:=TADQuery.Create(Self);
    SQLRun.Connection:=FrmMain.ADConnection1;
    if (not NumericType) then
    SQLRun.SQL.Add('Select * From '+TabelName+' Where '+
    FieldName +'='+QuotedStr(Value))
    else
    begin
    SQLRun.SQL.Add('Select * From '+TabelName);
    SQLRun.Active:=True;
    Result:=SQLRun.Locate(FieldName,Value ,[loCaseInsensitive]);
    FreeAndNil(SQLRun);
    Exit;
    end;
    SQLRun.Active:=True;
    if (SQLRun.RecordCount>0)then
    Result:=True
    else
    Result:=False;
    finally
    FreeAndNil(SQLRun);
    end;
    end;


    آیا در هنگام Insert یا Edit روی یک جدول ، نوشتن یک کوئری روی همان جدول ، مشکلی ایجاد نخواهد کرد؟
    من هنوز مشکلی در این زمینه پیدا نکردم

  3. #3
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    نقل قول: چک کردن تکراری بودن مقدار فیلد(ها)

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

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

    نقل قول: چک کردن تکراری بودن مقدار فیلد(ها)

    سلام
    علاوه بر روشی که دوستمون فوقا ذکر فرمودند شما همچنین میتونین علاوه بر اون Table که توسط اون عمل ذخیره و ویرایش را انجام میدید یه Table دیگه روی فرم قرار بدید و توسط اون قبل از ذخیره اطلاعات چک کنین که آیا این رکورد سابقه ذخیره قبلی دارد یا نه؟ مثلا:
    if adotable1.locate('code',dbedit1.text,[]) then
    showmessage('Record tekrari ast!!')
    else
    adotable2.post;

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اصفهان
    پست
    204

    نقل قول: چک کردن تکراری بودن مقدار فیلد(ها)

    سلام دوست عزيز؛

    راه بهتر اينه كه داخل خود بانك اطلاعاتي اين كار را انجام بديد و خطاهاي صادره از بانك را مديريت كنيد. (توي بانك بر روي فيلدها قيد عدم تكرار بذاريد و يا به صورت كليد معرفي كنيد، در اين صورت به هيچ وجه امكان وجود ركوردهاي تكراري وجود نخواهد داشت).

    توجه كنيد قرار نيست همه‌ي كارها را توي دلفي انجام بديم. برخي از كارها را بهتره به مدير بانك اطلاعاتي (منظورم DBMS هست)، بسپاريم.


    يا علي... موفق باشيد...

  6. #6
    کاربر دائمی
    تاریخ عضویت
    آبان 1384
    محل زندگی
    كاشان
    سن
    35
    پست
    315

    نقل قول: چک کردن تکراری بودن مقدار فیلد(ها)

    نقل قول نوشته شده توسط alireza v.f مشاهده تاپیک
    شما باید یک تابع بنویسید که این کار را براتون انجام بده و اون رو در موقع OnExit شی DBEdit فراخونی کنید .
    ...
    سلام
    اتفاقا من از همین روش استفاده می کنم و می خواستم بدون که این روش برا بانک و یا پایگاه مشکلی ایجاد نمیکنه که با جواب شما تقریبا خیالم راحت شد.

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

    نقل قول: چک کردن تکراری بودن مقدار فیلد(ها)

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

    موفق باشید

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

    نقل قول: چک کردن تکراری بودن مقدار فیلد(ها)

    نقل قول نوشته شده توسط alinikaein مشاهده تاپیک
    سلام دوست عزیز؛

    توجه کنید قرار نیست همه‌ی کارها را توی دلفی انجام بدیم. برخی از کارها را بهتره به مدیر بانک اطلاعاتی (منظورم DBMS هست)، بسپاریم.

    یا علی... موفق باشید...
    سلام
    میشه یه کم در این رابطه توضیح و مثالی بزنید؟

  9. #9

    نقل قول: چک کردن تکراری بودن مقدار فیلد(ها)

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

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

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