又一个关于SQL的查询问题 |
答題得分者是:老大仔
|
zhouying82
高階會員 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
代码如下:
//查询记录 procedure TForm1.SpeedButton1Click(Sender: TObject); begin SqlLink; TDateField(DBGrid1.Columns.items[1].Field).DisplayFormat:='HH:mm'; absqry.SQL.Clear ; case cbb1.ItemIndex of 2: begin absqry.SQL.text:='select*from rd where 提醒周期=' QuotedStr(labelededit1.Text); absqry.Active:=true; if absqry.RecordCount =0 then begin MessageBox(0,'数据库中没有此票记录,系统将显示全部记录!', 'ReminDer提醒',MB_OK or MB_ICONWARNING); ToolButton9.OnClick(self); end; end; 3: begin absqry.SQL.text:='select*from rd where 提醒人=' QuotedStr(lowercase(labelededit1.Text) ); absqry.Active:=true; if absqry.RecordCount =0 then begin MessageBox(0,'数据库中没有此票记录,系统将显示全部记录!', 'ReminDer提醒',MB_OK or MB_ICONWARNING); ToolButton9.OnClick(self); end; end; end; end; //sql数据库连接; procedure TForm1.SqlLink; begin DataSource1.DataSet :=absqry ; DBGrid1.DataSource :=DataSource1 ; DBGrid1.DataSource.DataSet :=absqry ; ABSDatabase1.DatabaseFileName := ExtractFilePath(Application.ExeName) DataBaseFileName; ABSDatabase1.DatabaseName:=DataBaseFileName; absqry.DatabaseName := DataBaseFileName; end; //按照时间排序: procedure TForm1.DBGrid1TitleClick(Column: TColumn); begin SqlLink; absqry.SQL.text:='select*from rd order by 提醒时间'; absqry.Active:=true; TDateField(DBGrid1.Columns.items[1].Field).DisplayFormat:='HH:mm'; absqry.SQL.Clear ; 现在的问题是每次执行查询,一定要先执行下DBGrid1TitleClick,然后才可以正确执行条件查询,否则就会出现错误。 请问各位大大,这个是什么原因啊?我急啊!
------
断断续续的学了几年,还是一个初学者,永远支持Delphi ! |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
因為你把DataSource1、DatagGrid1..等等的設定都擺在SqlLink中
而你只有在DBGrid1TitleClick中有呼叫SqlLink 所以當你按下了DBGrid1TitleClick時,那些連結資料庫的設定就會開起來(SqlLink) 然後你其它的查詢才不會有問題 但萬一!!當你在還沒按下DBGrid1TitleClick就先開始查詢,那麼就一定會出錯 因為所有的資料庫連結都還沒設定好 所以你要在別的查詢功能中也加入SqlLink~ 舉例來說:(1和2是執行的順序) 一、 (1)DBGrid1TitleClick->SqlLink=>可以查詢 (2)某查詢=>也可以查詢 但假如是: 二、 (1)某查詢=>無法查詢 (2)DBGrid1TitleClick->SqlLink=>可以查詢 所以應該會是: 三、 (1)某查詢->SqlLink=>可以查詢 (2)DBGrid1TitleClick->SqlLink=>可以查詢 而你的狀況"一定要先執行下DBGrid1TitleClick然後才能正確執行條件查詢" 應該是第一種的狀況 然後會出現錯誤是因為你可能做了第二種的狀況(因為sql的設定都還沒設定) 所以用了第三個方法可能不會出錯....吧 以上純屬個人的猜測 請試看看
編輯記錄
老大仔 重新編輯於 2009-03-25 00:19:57, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |