dosql語句中的請教 |
答題得分者是:Chance36
|
thomas_chio
一般會員 發表:3 回覆:1 積分:0 註冊:2004-05-01 發送簡訊給我 |
本人用Access建立了一個資料庫
在以下的語句中,若資料列不太過時可以運作,
但當資料列超過6000列時,便不能運作,試過將
database轉了Mssql,但仍搜尋不到應怎樣
改善語句煩請各位大大多多指教,本人初學DELPHI,
請多多指點! procedure TForm1.Button1Click(Sender: TObject);
var
sql:string;
begin
ADOQuery.SQL.Clear;
dosql('select * from MP3 where 歌曲名稱 like' '''' LabeledEdit1.Text '''');
sql:='select * from MP3 where 歌曲名稱 like' '''' LabeledEdit1.Text '''';
doselect(sql,'專輯類型',edit1.text);
end; procedure TForm1.dosql(sql: string);
begin
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(sql);
ADOQuery.Open;
end; function TForm1.doselect(sqlname, colum, condition: string):string;
begin
if (condition<>'') then
begin
dosql('select * from (' sqlname ') where ' colum ' =' '''' condition '''');
sqlname:='select * from (' sqlname ') where ' colum ' =' '''' condition '''';
end;
result:=sqlname;
end;
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
thomas_chio 你好 以目前的程式片段可以改成如下(不知有沒有誤會你的意思)
procedure TForm1.Button1Click(Sender: TObject); var sql:string; begin // 這行不用 //ADOQuery.SQL.Clear; // 這行也不用(多餘的,被後面的doSelect蓋掉了 //dosql('select * from MP3 where 歌曲名稱like' '''' LabeledEdit1.Text ''''); sql:='select * from MP3 where 歌曲名稱 like' '''' LabeledEdit1.Text '''' ' And 專輯類型=''' edit1.text ''''; // 改用 doSQL(sql); // doselect(sql,'專輯類型',edit1.text); //這行也不用 end; procedure TForm1.dosql(sql: string); begin ADOQuery.Close; //ADOQuery.SQL.Clear; //ADOQuery.SQL.Add(sql); ADOQuery.SQL.Text := sql; // 省一行 ADOQuery.Open; end; {========= 這個Function好像可以不需要 function TForm1.doselect(sqlname, colum, condition: string):string; begin if (condition<>'') then begin dosql('select * from (' sqlname ') where ' colum ' =' '''' condition ''''); sqlname:='select * from (' sqlname ') where ' colum ' =' '''' condition ''''; end; result:=sqlname; end; }發表人 - chance36 於 2004/05/05 02:50:12 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |