改寫某段add語法請教 |
|
jiannrong
一般會員 發表:58 回覆:36 積分:18 註冊:2002-05-09 發送簡訊給我 |
我這裡有段語法 之前的人是用table元件寫的
若我想要改成Query元件 請教一下 我有哪些要注意的地方呢
謝謝 procedure TFormfday.BitBtnFAdd1Click(Sender: TObject);
var Year, Month, Day, w: Word;
Date1,Date2,Date:TDateTime;
QueryT: TQuery;
begin
DecodeDate(Now, Year, Month, Day);
Date1:=StrToDate(format('%0.4d/%0.2d/01',[Year,Month]));
Date2:=StrToDate(format('%0.4d/%0.2d/01',[Year 1,Month]))-1; QueryT := TQuery.Create(Self);
QueryT.DatabaseName := DM.TBFday.DatabaseName;
QueryT.SQL.Clear;
QueryT.SQL.Add('select FDAY from ' IRecDB[irFday].DBName
' where FDAY>=''' DateToSqlString(Date1) ''' AND FDAY<='''
DateToSqlString(Date2) ''' order by FDAY');
QueryT.Prepare;
QueryT.Open;
DM.DSFday.DataSet.DisableControls;
try
w:=DayOfWeek(Date1);
if (CheckBox1.checked=true) then begin
if w<>7 then Date:=Date1 (7-w) //init first match day
else Date:=Date1;
while Date<=Date2 do begin
if QueryT.Locate('FDAY', Date,[loPartialkey])=false then begin
DM.DSFday.DataSet.Append;
DM.DSFday.DataSet.FieldByName('FDAY').AsDateTime:=Date;
DM.DSFday.DataSet.post;
end;
Date:=Date 7;
end;
end;
if (CheckBox2.checked=true) then begin
if w<>1 then Date:=Date1 (8-w) //init first match day
else Date:=Date1;
while Date<=Date2 do begin
if QueryT.Locate('FDAY', Date,[loPartialkey])=false then begin
DM.DSFday.DataSet.Append;
DM.DSFday.DataSet.FieldByName('FDAY').AsDateTime:=Date;
DM.DSFday.DataSet.post;
end;
Date:=Date 7;
end;
end;
finally
// free query:
QueryT.Close;
QueryT.Free;
DM.DSFday.DataSet.EnableControls;
end;
MonthCalendar1.Date:=DM.DSFday.DataSet.FieldByName('FDAY').AsDatetime;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |