ورود

View Full Version : چگونه مي توان چند ركورد را همزمان از جدول توسط كد SQL حذف كرد؟



drahmadtaraffoo
پنج شنبه 29 اردیبهشت 1390, 16:19 عصر
بسم الله الرحمن الرحيم
با سلام خدمت دوستام عزيز
من يك جدول دارم كه در آن مشخصات مشتريان را ذخيره مي كنم ( جدول اكسس )
مي خواهم ركوردهايي از جدول كه فيلد تاريخ آنها خالي است را حذف نمايم.
چون در جدول من در پايان روز ممكن است تعدادي ركورد اضافه شده باشد كه چون تاريخ سفارش آنها خالي است بايد از جدول حذف گردند.
براي اين كار از دستور SQL استفاده ميكنم اما با خطا مواجه مي شوم لطفاً بفرمائيد خطاي دستورات زير در چيست؟
و اصلاً راه درست براي انجام اين كار چگونه است؟


;Ado.Close
;Ado.sql.clear
;(' ' ' Ado.sql.Add('Delete from moshtari where Tarikh Like
;Ado.open

و آيا در ادامه بايد دوباره براي نمايش جدول از دستور زير استفاده كنم يا خير؟


;Ado.Close
;Ado.sql.Clear
;(';Ado.sql.Add('Select * from moshtari
;Ado.Open


متشكرم :قلب:

یوسف زالی
پنج شنبه 29 اردیبهشت 1390, 16:57 عصر
بهتره دو تا ADO داشته باشید که هی پر و خالی نکنید.

Delete Moshtari Where isnull(Tarikh, '') = '' -- isnull mige age null bud '' dar nazar begir

در اینجا فرض کردم که نوع شما کاراکتریه.

drahmadtaraffoo
پنج شنبه 29 اردیبهشت 1390, 19:21 عصر
بسم الله الرحمن الرحیم
دوست عزیز
کد شما را استفاده کردم.

( '',Delete Moshtari Where isnull(Tarikh



خطا داد!

('' ,Syntax error (missing operator) in query expretion 'Moshtari where isnull(Tarikh


علت چیست؟


ممنون :تشویق:

Mahmood_M
پنج شنبه 29 اردیبهشت 1390, 21:11 عصر
DELETE FROM Moshtari WHERE Tarikh IS Null
یا
DELETE FROM Moshtari WHERE Tarikh = ''

موفق باشید ...

یوسف زالی
پنج شنبه 29 اردیبهشت 1390, 22:08 عصر
آقا محمود من که هردو کد رو ادغام کرده بودم.
ممکنه بگین فرقش چیه؟

Mahmood_M
جمعه 30 اردیبهشت 1390, 02:38 صبح
تابع ISNULL برای همچین کاری قرار داده نشده ! ، این تابع برای جایگزینی مقادیر NULL با یک مقدار مشخص به کار میره ، توصیه میشه که از این تابع برای دریافت مقدارهای NULL در شرط WHERE در جدول استفاده نشه ( مثل مورد بالا ) و به جای اون از IS NULL استفاده بشه ، نکته ی دیگه اینکه ISNULL زمان بیشتری صرف بررسی میکنه رکوردها می کنه ، این صفحه از MSDN (http://msdn.microsoft.com/en-us/library/ms184325.aspx) شاید مفید باشه . موفق باشید ...

یوسف زالی
جمعه 30 اردیبهشت 1390, 08:20 صبح
ممنون اما اگر از نظر زمانی اشتباه باشه ارور که نمی ده.
این دوستمون می فرمایند ارور گرفتند.
قرار دادن IsNull به خودی خود که باعث ارور نباید بشه.
تست کردم .
ممنون

a_mosavian
سه شنبه 03 خرداد 1390, 17:29 عصر
فرم درست استفاده از ISNULL
Delete Moshtari Where isnull(Tarikh, '') = ''

M_Maskout
پنج شنبه 05 خرداد 1390, 07:45 صبح
سلام
تابع IsNull در اکسس معتبر نیست و تنها راه به دست اوردن فیلد Null همون هست که تو پست #4 (http://barnamenevis.org/showthread.php?287903-چگونه-مي-توان-چند-ركورد-را-همزمان-از-جدول-توسط-كد-SQL-حذف-كرد؟&p=1267294&viewfull=1#post1267294) گفته شده.


من يك جدول دارم كه در آن مشخصات مشتريان را ذخيره مي كنم ( جدول اكسس )