adoquery1.sort时出现“类型出错” |
尚未結案
|
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
各位大大:
不好意思,又有问题了,我的table中有filed1(varchr型)和filed2(datetime型),用的是sql server.我用了两个button,
button1中是:adotable2.sort:='filed1';
button2中是:adotable2.sort:='filed2';
我单独使用是好的,但只要在两个button间切换,就会出现“类型出错”的错误,恳请各位大大帮助!谢了! 發表人 - luowy651 於 2004/02/11 19:39:13
|
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 各位大大: 不好意思,又有问题了,我的table中有filed1(varchr型)和filed2(datetime型),用的是sql server.我用了两个button, button1中是:adotable2.sort:='filed1'; button2中是:adotable2.sort:='filed2';luowy651 你好 button1中改成這樣 adotable2.sort:='';//先清除掉 adotable2.sort:='filed1';//再重新設定 button2中同理 adotable2.sort:=''; adotable2.sort:='filed2'; 祝好運! |
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
感谢chance36大大,只是如果我在主表table1中上下移动,就会出现“类型不匹配”的错误,主表中datasource1中有如下code:
procedure Tform1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if (sender as TDatasource).State=dsbrowse then
begin
if radiobutton1.Checked=true then
begin
adotable2.active:=false;
adotable2.active:=true;
adotable2.sort:='';//先清除掉
adotable2.Sort:='spdm ASC';
end
else begin
adotable2.active:=false;
adotable2.active:=true;
adotable2.sort:='';//先清除掉
adotable2.Sort:='modifytime DESC';
end;
end;
end; 在该form中还有两个radiobutton,code如下:
procedure Tform.RadioButton1Click(Sender: TObject);
begin
if radiobutton1.Checked=true then
adotable2.sort:='';//先清除掉
adotable2.Sort:='spdm ASC';
end; procedure Tform.RadioButton2Click(Sender: TObject);
begin
if radiobutton2.Checked=true then
adotable2.Sort:='';
adotable2.Sort:='modifytime DESC';
end; 谢谢!
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
我用D5的AdoTable並沒有Sort屬性?,試試下列程序 procedure Tform1.DataSource1DataChange(Sender: TObject; Field: TField); begin if (sender as TDatasource).State=dsbrowse then begin if radiobutton1.Checked=true then begin adotable2.sort:='';//搬到這兒 adotable2.active:=false; // 不了解為何要關了再開 adotable2.active:=true; adotable2.Sort:='spdm ASC'; end else begin adotable2.sort:='';//搬到這兒 adotable2.active:=false; adotable2.active:=true; adotable2.Sort:='modifytime DESC'; end; end; end; |
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
OK 至少我們知道設定adotable2.sort時AdoTable2必須是開啟的 ,嘗試改成下述
procedure Tform1.DataSource1DataChange(Sender: TObject; Field: TField); begin if (sender as TDatasource).State=dsbrowse then begin if radiobutton1.Checked=true then begin If adoTable2.Active Then Begin adotable2.sort:='';// adotable2.active:=false; // End; adotable2.active:=true; adotable2.Sort:='spdm ASC'; end else begin If adoTable2.Active Then Begin adotable2.sort:='';// adotable2.active:=false; // End; adotable2.active:=true; adotable2.Sort:='modifytime DESC'; end; end; end;ps:以我片斷了解,似乎程式架構有點奇怪,為何會在DataSource1DataChange事件中作這些事呢?而不是在adotable1的AfterScroll事件中。唉!離題太遠了,或許你有你的考量吧。 |
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
引言: ps:以我片斷了解,似乎程式架構有點奇怪,為何會在DataSource1DataChange事件中作這些事呢?而不是在adotable1的AfterScroll事件中。唉!離題太遠了,或許你有你的考量吧。您好,感谢您的ps,确实只要在afterscroll事件中就可实现了. 经过努力,我已把问题解决了,但没再用.sort,而是使用了adoquery的动态查询功能来实现主副明细表的方法.贴上code,以供参考: procedure Tfmsjcx.ADOTable1AfterScroll(DataSet: TDataSet); VAR X:STRING; begin if radiobutton1.Checked=true then begin X:=TRIM(adotable1.fieldbyname('field').asstring); adoquery1.ACTIVE:=FALSE; adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add('SELECT *'); adoquery1.sql.add('FROM table'); adoquery1.sql.add('WHERE field='); adoquery1.sql.add('''' X ''''); adoquery1.sql.add('order by spdm ASC'); adoquery1.ACTIVE:=TRUE; end else begin X:=TRIM(adotable1.fieldbyname('field').asstring); adoquery1.ACTIVE:=FALSE; adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add('SELECT *'); adoquery1.sql.add('FROM table'); adoquery1.sql.add('WHERE field='); adoquery1.sql.add('''' X ''''); adoquery1.sql.add('order by modifytime DESC'); adoquery1.ACTIVE:=TRUE; end; end; 發表人 - luowy651 於 2004/02/12 22:39:24 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |