使用Parameter 發生錯誤 |
答題得分者是:GrandRURU
|
superrakce
一般會員 發表:24 回覆:35 積分:11 註冊:2006-10-09 發送簡訊給我 |
ADOQuery1.Close;
ADOQuery1.SQL.Clear; ADOQuery1.Parameters.Clear; ADOQuery1.SQL.Add(('SELECT 公司代碼 FROM AMST WHERE account=:IDD and password=:PWW')); ADOQuery1.Parameters.CreateParameter('IDD',ftstring,pdInput,50,UserID); ADOQuery1.Parameters.CreateParameter('PWW',ftstring,pdInput,50,UserPW); ADOQuery1.Open; ADOQuery1.First; 執行後跑出這麼一行錯誤訊息:'行1:' ':'附近的語法不正確 可是在網路上爬了很多文,Parameter 不就是要加上「 : 」 怎麼現在出錯了? 使用 Delphi 7 、資料庫是sql2000 |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
咦?
不是應該用「ADOQuery1.Parameters.ParamByName('IDD').Value := ValueName;」來指定嗎? ===================引 用 superrakce 文 章=================== ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.Parameters.Clear; ADOQuery1.SQL.Add(('SELECT 公司代碼 FROM AMST WHERE account=:IDD and password=:PWW')); ADOQuery1.Parameters.CreateParameter('IDD',ftstring,pdInput,50,UserID); ADOQuery1.Parameters.CreateParameter('PWW',ftstring,pdInput,50,UserPW); ADOQuery1.Open; ADOQuery1.First; 執行後跑出這麼一行錯誤訊息:'行1:' ':'附近的語法不正確 可是在網路上爬了很多文,Parameter 不就是要加上「 : 」 怎麼現在出錯了? 使用 Delphi 7 、資料庫是sql2000 |
superrakce
一般會員 發表:24 回覆:35 積分:11 註冊:2006-10-09 發送簡訊給我 |
原來只要一行 Parameters.ParamByName('IDD').Value :=userid;
然後ADOQuery 的ParametersCheck 要設為true ADOQuery 裡的Parameters也不需要設定 就可以達成了 突然從c# 轉過來,中毒太深,沒想到一行就全搞定了 這是原先我參考的資料 |
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
|
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
用 Parameter 的好處很多
1. 批次新增 / 更新時,SQL 只須被 database server 編譯一次,即可重複使用,提昇效能。 2. 不會受到輸入值中有單引號等特殊字元的影響,使得 SQL 字串出現錯誤 3. 防止 SQL Injection 的最重要方法 絕對值得使用,千萬不要怕麻煩
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
編輯記錄
sryang 重新編輯於 2011-05-06 10:48:58, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |