PDA

View Full Version : می خواهم برای فیلدphoto_last_modifiedکه از نوع datetime است Null کنم



ali_abbasi22145
دوشنبه 23 مهر 1386, 12:21 عصر
سلام
سوال اول- من با کدی می خواهم برای فیلدphoto_last_modifiedکه از نوع datetime است Null کنم واز بانک SQL SERVER 2000.
کد زیر را نوشتم و هنگام اجرای ان دستور خطایی که در عکس زیر می بینید را نشان داد.
مشکل چیست؟

MainForm.ADOTable1.Edit;
MainForm.ADOTable1.FieldByName('photo_last_modifie d').AsString := Null;
MainForm.ADOTable1.Post;

البته MainForm.ADOTable1.FieldByName('photo_last_modifie d').AsString := ''
و خطایی نداد اما مقدار Null را به فیلد نمی دهد و این روش را نمی خواهم!

سوال دوم- حال با چه کدی رکوردهای DBGrid که مقدار photo_last_modified آن برابر Null می باشد را فیلتر کنم؟

Maisa pardaz
دوشنبه 23 مهر 1386, 14:15 عصر
سلام
سوال اول- من با کدی می خواهم برای فیلدphoto_last_modifiedکه از نوع datetime است Null کنم واز بانک SQL SERVER 2000.
کد زیر را نوشتم و هنگام اجرای ان دستور خطایی که در عکس زیر می بینید را نشان داد.
مشکل چیست؟

MainForm.ADOTable1.Edit;
MainForm.ADOTable1.FieldByName('photo_last_modifie d').AsString := Null;
MainForm.ADOTable1.Post;

البته MainForm.ADOTable1.FieldByName('photo_last_modifie d').AsString := ''
و خطایی نداد اما مقدار Null را به فیلد نمی دهد و این روش را نمی خواهم!

دوست عزیز فکر کنم اگر شما به جای AsValue، AsString بذاری و عبارت NULL رو هم با حروف بزرگ تایپ کنی مشکلت حل بشه.


سوال دوم- حال با چه کدی رکوردهای DBGrid که مقدار photo_last_modified آن برابر Null می باشد را فیلتر کنم؟
در رابطه با این سوال هم میتونی یه دستور Select بنوسی که فیلدهایی که برابر NULL هستند و فیلدهایی که برابر '' هستند را فیلتر کند.


Select Field_Name
From Table_Name
Where Photo_Last_Modified = NULL And Photo_Last_Modified = ''

ghabil
سه شنبه 24 مهر 1386, 01:30 صبح
MainForm.ADOTable1.FieldByName('photo_last_modifie d').Clear;

مساوی با Null جز در شرایط خاص معنی نداره ، از IS NULL استفاده کن.

vcldeveloper
سه شنبه 24 مهر 1386, 01:50 صبح
دوست عزیز فکر کنم اگر شما به جای AsValue، AsString بذاری و عبارت NULL رو هم با حروف بزرگ تایپ کنی مشکلت حل بشه.
برخلاف زبان های خانواده C، دلفی حساسیتی نسبت به بزرگی و کوچکی حروف نداره.

ali_abbasi22145
چهارشنبه 25 مهر 1386, 09:23 صبح
سلام
متشکرم و تست می کنم.

ali_abbasi22145
شنبه 12 آبان 1386, 16:16 عصر
سلام Maisa pardaz

آیا می توان بدون کوری شما DBGrid را فیلتر کرد؟

Select Field_Name
From Table_Name
Where Photo_Last_Modified = NULL And Photo_Last_Modified = ''

A.Nemati
یک شنبه 13 آبان 1386, 14:04 عصر
در رابطه با سوال اول باید اینطور بنویسید:
MainForm.ADOTable1.FieldByName('photo_last_modifie d').Value:= null

در رابطه با سوال دوم:
می‌تونید از خاصیت فیلتر ADOTable1 خودتون استفاده کنید
MainForm.ADOTable1.FieldByName('photo_last_modifie d').Value is null
و خاصیت Filtered را True کنید. اما توجه داشته باشید که این عمل (استفاده از خاصیت فیلتر) به علت کند کردن برنامه شما، به هیچ وجه توصیه نمی‌شود. بهترین حالت، استفاده از StoredProcedure می‌باشد.