PDA

View Full Version : سوال: چگونگی ذخیره مقدار TColor در بانک SQL



mehran2000_544
سه شنبه 10 شهریور 1388, 13:10 عصر
سلام به اساتید. من دو تا سوال رنگی دارم:
فرض کنید جدولی داریم به نام Table1 که فیلدی به نام color از نوع nvarchar در آن ایجاد کرده ایم.
می خواهیم نام یک رنگ را در فیلد color ذخیره کنیم.
با توجه به اینکه رنگ ها در دلفی از نوع TColor هستند، نوع nvarchar برای ذخیره نام رنگ جوابگو هست؟ اگر نیست چه نوعی مناسب است ؟ و به جای علامت سوال در کد زیر چی بنویسم که جواب بده؟




ColorDialog1.Execute;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into Table1 color=???? ');
ADOQuery1.ExecSQL;

Tiam121
سه شنبه 10 شهریور 1388, 13:30 عصر
1-نوع Nvarcharجوابگو هست و شما باید وقتی رنگ رو انتخاب میکنی توسط پارامتر اسم یا مقدار اونو به بانک اضافه کنی
2-وقتی که رنگ رو از بانک انتخاب کردی اونو به Color شی مورد نظرت انتساب بده

mehran2000_544
سه شنبه 10 شهریور 1388, 17:17 عصر
با استفاده از خاصیت Parameter مشکل حل شد:



ColorDialog1.Execute;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into Table1 values (:param)');
ADOQuery1.Parameters.ParamValues['param']:=ColorDialog1.Color;
ADOQuery1.ExecSQL;


(خواندن و انتساب مقادیر به روش معمول رشته ها بدون مشکل صورت می گیرد)

error682
جمعه 13 شهریور 1388, 16:18 عصر
البته اگه فضولی نباشه توی توابع دلفی ، ColorToString و StringToColor هم داریم که میتونید از یک استرینگ توی بانک استفاده کنید و رنگ رو به استرینگ تبدیل کنید و ذخیره کنید :بامزه:

vcldeveloper
جمعه 13 شهریور 1388, 16:52 عصر
نیازی به هیچکدوم از این کارها نبود. TColor یک عدد صحیح ساده هست، و میشه اون رو بصورت Integer ذخیره کرد.