PDA

View Full Version : ایجاد فیلد calculated به صورت ساخت در زمان اجرا



moya_168
پنج شنبه 22 آذر 1386, 09:56 صبح
باسلام
من میخوام از فیلد calculated استفاده کنم ولی لازم به توضیحه که Adoquery من بصورت Create زمان اجرا استفاده می شود و من میخوام فیلد calculated را در زمان اجرا با دستورات مربوطه به سازم به صورتی که فیلد calculated که ساختم به فیلد های دیگر Adoquery من اضافه بشه.

باکمال تشکر

mehdia86
سه شنبه 27 آذر 1386, 14:38 عصر
با سلام
از این کد استفاده کن ، در اینجا DS همون DataSet یا Recordset می باشد.مثلا عنوان جدولی که می خوای این فیلد بهش اضافه بشه


Var
Filed:TField



Try
Field:=TStringField.Create(DS1); 1
2 with Field do
3 begin
FieldName:='Att'; Size:=3; Alignment:=taCenter; Calculated:=True; 4
DataSet:=DS1; Visible:=True; 5
end; 6

Except7
End; 8

moya_168
پنج شنبه 29 آذر 1386, 09:44 صبح
با سلام از راهنمایتون ممنونم
من اینکارو میکنم و Adoquery من فقط همین فیلد رو نشون میده و فیلدهای دیگه رو که از بانک Select کردم رو نشون نمیده.
من میخواستم این فیلد رو کنار فیلدهای دیگم بذاره ولی این فیلد Calculated رو جایگزین فیلدهای دیگرم میکنه.
var
field:Tfield
Adoquery:Tadoquery

query:=TADOQuery.Create(self); query.Connection:=ADOConnection1;
query.SQL.Text:='select * from Tbl_Seprator';
source:=TDataSource.Create(self);
source.DataSet:=query;
DBGrid1.DataSource:=source;
Field:=TStringField.Create(query);
with field do
begin
FieldName:='moya'; Size:=3; Alignment:=taCenter; Calculated:=True;
DataSet:=query; Visible:=True;
end;


با تشکر

کمکم کنید.

JAFO_IRAN
پنج شنبه 29 آذر 1386, 10:54 صبح
سلام

اصولا وقتی فیلدهای persistent برای یک DataSet تعریف میکنی، فقط همون فیلدها نشون داده میشن. کدی که دوستمون نوشته برای اضافه کردن بک فیلد به DataSet است. فرض شده قبل از اون فیلدهای عادی رو به روشی (مثلا با IDE یا با همان روشی که در پست قبلی گفته‌اند) به DataSet اضافه کرده‌اید.

ارادت

mehdia86
پنج شنبه 29 آذر 1386, 15:57 عصر
با سلام
همونطور که دوستمون گفتن فرض من بر این بوده از یک شی Adotable یا AdoQuery یا AdoStoredProcedure و ... استفاده می کنید و اونا رو قبلا اضافه کردی ولی اگر اونا رو هم می خوای زمان اجرا اضافه کنی عین همون کد که گفتم رو بنویس ولی calculated=true رو ننویس
البته بهتره از شی هایی که گفتم استفاده کنی برنامه نویس اونجوری کمی راحتتره

موفق باشید