Delphi ADOQuery查詢使用者是否存在

2021-09-13 09:47:33 字數 1450 閱讀 6796

procedure tform1.bt_findclick(sender: tobject);

var i,count:integer;

result:boolean;

begin

adoquery1.close;

adoquery1.sql.clear;

adoquery1.sql.add('select * from user where id=:m_id') ; //查詢表中所有內容

adoquery1.parameters.parambyname('m_id').value:=trim(edit1.text); //將edit1.text的值賦給m_id

adoquery1.open;

//以上close、clear、open是經典的語句,在每次查詢之前先把上次查詢之前的內容給關了

//如果不關,第一次查詢是沒問題的,可如果adoqury1再用一次的話,就可能與上次發生衝突

adoquery1.first;

count:=adoquery1.recordcount; //得到資料庫中資料的數目

result:=true;

for i:=0 to count do

begin

if adoquery1.fieldbyname('password').asstring=edit2.text then

//將password值轉換為字串後判斷是否等於edit2.text的值,因為edit2.text是字串型別的

begin

label3.caption:='存在使用者';

result:=false;

break;

end;

adoquery1.next;

end;

if result then

begin

label3.caption:='不存在使用者';

end;

end;

close是因為之前有對adoquery1進行open,當在open狀態下對資料集進行操作是不行的,就像你想刪除乙個正在開啟的excel文件無法執行一樣,這裡也是一樣,想要對adoquery1進行操作,前提必須是它要在關閉狀。

.sql.clear 清除原來的sql語句

fieldbyname是根據名字獲取字段 如 資料庫表 學生 設計了個字段 學號 

parambyname是取sql語句中的引數 如 select *from table where no = :studentno

first:將記錄指標置於資料集第一記錄處;

next:將記錄指標移至下一條記錄處;

prior:將記錄指標移置前一條記錄處;last:將記錄打針移到資料集最後一條記錄處;

execsql 與 open的區別在於:

exec 是執行不且不返回結果集。 通常用於 增刪改

open 返回結果集,通常用於查詢

delphi adoquery的增刪查改

delphi adoquery查詢 插入 刪除 修改 查詢記錄 procedure tform1.button1click sender tobject begin adoquery.close adoquery.sql.clear adoquery.sql.add select from your...

Delphi ADOQuery處理多條SQL語句

delphi pascal code var sqlstr string begin sqlstr begin sqlstr sqlstr update table1 set col1 test where 1 2 sqlstr sqlstr update table1 set col1 test2...

delphi adoquery 判斷字段是否存在

使用adoquery資料集運算元據庫,一般情況下使用adoquery.fieldbyname columnname asstring來訪問資料,如果columnname不存在,系統會報錯columnname not found,如何提前判斷columnname是否存在呢?1.使用fieldlist....