PDA

View Full Version : Default Value



bardia goharbin
چهارشنبه 25 بهمن 1385, 16:55 عصر
دو سئوال :
چگونه برای یک فیلد از نوع bit یک Default Value مثلا False در Sql2005 درنظر بگیرم.
برای یک فیلد از نوع Image یا Binary چگونه میتوانم یک Default Value مثلا یک عکس درنظر بگیرم.
از لطفتون ممنونم

AminSobati
جمعه 27 بهمن 1385, 17:36 عصر
شاید این جواب بده:
یک تابع بنویسید که VARBINARY MAX برگردونه، این تابع رو بعنوان مقدار Default استفاده کنید.
باید تصویر Default رو جایی ذخیره کنید تا داخل این تابع Select کنین و بعنوان مقدار بازگشتی برگردونین

bardia goharbin
جمعه 27 بهمن 1385, 18:58 عصر
متاسفانه جواب شما برای من مفهوم نبود، اگر ممکنه یک کمی واضح تر بگید که ما بی تجربه ها بفهمیم

AminSobati
شنبه 28 بهمن 1385, 16:17 عصر
ببینید، شما میتونین از یک تابعی که خودتون نوشتین برای مقدار Default استفاده کنین. تابعی بنویسید که یک تصویر برگردونه!

DonetKarvb
شنبه 28 بهمن 1385, 18:48 عصر
در تکمیل حرف های استاد ثباتی و اینکه علم خودمم بالاتر بره:

اینگونه فلید ها نمی توانند مقدار Default داشته باشد باید یک تابع یا یک SP و ... چیزی نوشت که هنگام وارد کردن داده ها بیاید چک کند که آیا شما عکسی وارد کرده اید یا نه اگر عکسی وارد نکرده اید بیاید عکس را تبدیل کنه به باینری و وارد رکورد کنه!!

bardia goharbin
شنبه 28 بهمن 1385, 20:59 عصر
مشکل شد چند تا ! حالا چطوری عکس رو به باینری تبدیل کنم با یک Sp
حالا از این که بگذریم راه حل تعریف Default برای یک فیلد Bit چیه؟

DonetKarvb
شنبه 28 بهمن 1385, 21:49 عصر
مشکل شد چند تا ! حالا چطوری عکس رو به باینری تبدیل کنم با یک Sp
میتونی مقدار باینری یک عکس رو ذخیره شده از قبل داشته باشی و هنگام اینزرت کردن خودت اونو دستی اینزرت کنی.

حالا از این که بگذریم راه حل تعریف Default برای یک فیلد Bit چیه؟
من تست کردم میشه Default براش گذاشت. مشکل چیه.؟ به اسکریپت زیر نگاه کن.


Create Table t1
(c1 int ,c2 bit default 0 Not null)

--megdare Default
insert t1 Values(1,Default)

--megdar dehee ba 0,1
insert t1 Values(2,1)
insert t1 Values(3,0)

--inam fail mishe Choon Null nemipazieerh
insert t1 Values(4,Null)

--Va natzjee
Select * From t1

AminSobati
یک شنبه 29 بهمن 1385, 15:28 عصر
اینگونه فلید ها نمی توانند مقدار Default داشته باشد
چرا مقدار Default نمیتونن داشته باشند؟


create table T1(
c1 int,
c2 varbinary(max) default 0x00)

bardia goharbin
یک شنبه 29 بهمن 1385, 16:28 عصر
چگونه میتوان در DesignView در قسمت Properties یک فیلد Image این Default را قرار داد؟

DonetKarvb
یک شنبه 29 بهمن 1385, 21:07 عصر
چگونه میتوان در DesignView در قسمت Properties یک فیلد Image این Default را قرار داد؟
به عکس زیر توجه کن.

برای وارد کردن مقدار Default هنگام اینزرت از همان کلمه Default استفاده کن. مثالش رو تو پست قبلیم گفتم.

bardia goharbin
دوشنبه 30 بهمن 1385, 08:14 صبح
خدا خیرت بده از اول هم منظور من این بود!
حالا این دو تا رو هم جواب بدین دیگه نور علی نور میشه یا اگه مرجعی هست که تعریف این Default Value رو توش گفته باشه معرفی کنین که مزاحمتون نشم زیاد.
با دو تا دیگه مشکل دارم!
۱ - با همین روش برای فیلد از نوع DateTime میخوام تاریخ و ساعت روز Default بشه موقع Insert
۲ - آیا برای فیلد بیت باید Default فقط 0 , 1 باشه؟

darvishiali
دوشنبه 30 بهمن 1385, 13:26 عصر
سلام؛

1- برای گذاشتن Default روی فیلد DateTime از تابع GetDate() یا CURRENT_TIMESTAMP استفاده کنید.


CREATE TABLE MyTable (..., DateTimeColumnName DateTime Default GetDate())


2- همونجوری که از اسم نوع داده بر می آد، BIT یعنی رقم دودوئی. پس فقط میتونین صفر یا یک وارد کنید. صفر یعنی False و یک یعنی True. اگه می خواین از این فیلد در Application استفاده کنید، معمولا ADO خودش یه Implicit Conversion برای تغییر False به صفر و True به یک انجام میده. یعنی شما در Application میتونین مقدار این فیلد رو True یا False قرار بدین، خودش صفر یا یک در این فیلد وارد می کنه.

bardia goharbin
دوشنبه 30 بهمن 1385, 13:35 عصر
منظورم من در همان قسمت DesignView بود در قسمت Propertis فیلد