請教日期字串已經轉為數字為與Table index k值一樣Type為何不行? |
答題得分者是:adonis
|
K1086
初階會員 發表:63 回覆:148 積分:42 註冊:2007-04-09 發送簡訊給我 |
<textarea class="delphi" rows="10" cols="60" name="code">procedure TForm1.Date_1Change(Sender: TObject);
Var SQL:string;
TS1:INTEGER;//日期號碼字串轉數字
S:string[8];
begin
S:= FormatDateTime('yyyyMMdd',Date_1.DateTime);
showmessage(S);
TS1:=STRTOINT(S); //字串轉數字
QUERY1.Close;
QUERY1.SQL.CLEAR;
QUERY1.SQL.ADD('SELECT * FROM Twn_Date.dbf WHERE ');
QUERY1.SQL.ADD('Date_W <= TS1'); //比對Table index k值
// QUERY1.SQL.ADD('Date_w <= 20070523'); //這樣測試可以正常 RUN
QUERY1.SQL.ADD('ORDER BY Date_w ASC');
QUERY1.OPEN;
QUERY1.Last; //與 ASC 對應處理
QUERY1.NEXT;
Edit1.Text := QUERY1.FIELDBYNAME('Date1').Value;
Lab_S.Caption:=QUERY1.FIELDBYNAME('NAME1').Value;
Lab_T.Caption:=QUERY1.FIELDBYNAME('NAME2').Value;
Lab_G.Caption:=QUERY1.FIELDBYNAME('NAME3').Value;
end;
end.</textarea><br />
請教各位先進... 小弟用這種方式去比對 dBASE 是那裡錯誤 ??編譯會通過 RUN 出錯
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
<textarea class="delphi" rows="10" cols="60" name="code">
procedure TForm1.Date_1Change(Sender: TObject);
var
SQL,S:string;
TS1:INTEGER;//日期號碼字串轉數字
begin
S:= FormatDateTime('yyyyMMdd',Date_1.DateTime);
Showmessage(S);
TS1:=STRTOINT(S); //字串轉數字
QUERY1.Close;
QUERY1.SQL.CLEAR;
QUERY1.SQL.Parameter.Clear;
QUERY1.SQL.ADD('SELECT * FROM Twn_Date.dbf WHERE Date_W <= :aValue ORDER BY Date_w ASC');
QUERY1.SQL.ParameterValue['aValue'] := TS1;
QUERY1.OPEN;
if ( QUERY1.RecordCount > 0 ) then
begin
Edit1.Text := QUERY1.FIELDBYNAME('Date1').Value;
Lab_S.Caption:=QUERY1.FIELDBYNAME('NAME1').Value;
Lab_T.Caption:=QUERY1.FIELDBYNAME('NAME2').Value;
Lab_G.Caption:=QUERY1.FIELDBYNAME('NAME3').Value;
end;
end;
</textarea>
編輯記錄
Stallion 重新編輯於 2007-05-23 23:37:43, 註解 無‧
|
K1086
初階會員 發表:63 回覆:148 積分:42 註冊:2007-04-09 發送簡訊給我 |
===================引 用 Stallion 文 章=================== <textarea class="delphi" rows="10" cols="60" name="code">procedure TForm1.Date_1Change(Sender: TObject); var SQL,S:string; TS1:INTEGER;//日期號碼字串轉數字 begin S:= FormatDateTime('yyyyMMdd',Date_1.DateTime); Showmessage(S); TS1:=STRTOINT(S); //字串轉數字 QUERY1.Close; QUERY1.SQL.CLEAR; QUERY1.SQL.Parameter.Clear; QUERY1.SQL.ADD('SELECT * FROM Twn_Date.dbf WHERE Date_W <= :aValue ORDER BY Date_w ASC'); QUERY1.SQL.ParameterValue['aValue'] := TS1; QUERY1.OPEN; if ( QUERY1.RecordCount > 0 ) then begin Edit1.Text := QUERY1.FIELDBYNAME('Date1').Value;???? Lab_S.Caption:=QUERY1.FIELDBYNAME('NAME1').Value;???? Lab_T.Caption:=QUERY1.FIELDBYNAME('NAME2').Value;???? Lab_G.Caption:=QUERY1.FIELDBYNAME('NAME3').Value; end; end; </textarea><br /> 請問 尊榮會員 依上列程式 執行 為何出現 undeclared identifier 'Parameter' 及 undeclared identifier 'ParameterValue' 是否在 var 區要宣告什麼?? |
adonis
高階會員 發表:140 回覆:258 積分:159 註冊:2002-04-15 發送簡訊給我 |
試看看,將
QUERY1.SQL.ParameterValue['aValue'] := TS1; --> 改成 QUERY1.ParamByName('aValue').AsInteger := TS1; 不過,不太了解的是你的這段寫法... 我也在努力學習中,若有錯謬請見諒 ~
------
我也在努力學習中,若有錯謬請見諒。
編輯記錄
adonis 重新編輯於 2007-05-24 11:12:08, 註解 無‧
|
K1086
初階會員 發表:63 回覆:148 積分:42 註冊:2007-04-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |