參考資料1:[delphi]Delphi ADOQuery連接數據庫的查詢、插入、刪除、修改
參考資料2:請問有關動態建立ADOQuery的方法
uses ...., ADODB; //要使用TADOQuery必須在uses這裡先引用ADODB
procedure TForm1.ButIfClick(Sender: TObject);
var tmp: string;
var DMODULE:TDATAMODULE;
ADOQueryTmp1:TADOQuery;
begin
tmp:='';
InputQuery('查詢', '請輸入學號或姓名:', tmp);
tmp:=trim(tmp);
if tmp='' then
begin
ShowMessage('要查詢的資料不能為空白');
Exit;
end;
DMODULE := TDATAMODULE.Create(Application);
ADOQueryTmp1 := TADOQuery.Create(DMODULE);
ADOQueryTmp1.ConnectionString :='資料庫的連線字串';
with ADOQueryTmp1 do
begin
ADOQueryTmp1.Close;
ADOQueryTmp1.SQL.Clear;
{
//法1 開始==========================
//法1.用字串串字串的方式組合出SQL指令
ADOQueryTmp1.SQL.Text:='Select StudentID,StudentName from Student where StudentID=' + quotedstr(tmp) + ' or StudentName=' + quotedstr(tmp);
//法1 結束==========================
}
//法2 開始==========================
//建議使用法2
ADOQueryTmp1.SQL.Text:='Select StudentID,StudentName from Student where StudentID=:D1 or StudentName=:D2';
ADOQueryTmp1.Parameters.ParamByName('D1').Value:=tmp;
ADOQueryTmp1.Parameters.ParamByName('D2').Value:=tmp;
//法2 結束==========================
//ADOQuery.Open與ADOQuery.ExecSQL不同之處在於ADOQuery.Open一般用在Select查詢;而ADOQuery.ExecSQL用在insert、delete、update等。
ADOQueryTmp1.Open;
if ADOQueryTmp1.isempty=false then
begin
ShowMessage('有資料,姓名:' + ADOQueryTmp1.FieldByName('StudentName').AsString);
end;
ADOQueryTmp1.Close;
end;
end;
沒有留言:
張貼留言