Delphi拼裝SQL語句應該注意的地方

2021-06-02 06:28:40 字數 1022 閱讀 1350

delphi中使用sql語句要注意的事項,歸納起來主要有一下幾條:

1、一定不要漏空格或換行符。

在使用delphi開發管理軟體時,我們要經常拼裝sql語句,例如:

'select * from users'+

'where useroid is not null'

這個時候sql語句就變成了

select  *  from  userswhere useroid is not null

這樣的sql語句肯定會出錯,所以一定不要忘記加空格和換行符。

2、引號配對。

這是在delphi使用sql語句時容易出錯的地方,由於delphi規定在字串中用兩個西文的單引號「''」表示乙個「'」,在拼裝語句的時候就容易疏忽遺漏。

delphi裡有個函式quotedstr能夠在字串的頭尾加上乙個西文的單引號【'】,這個函式的定義:function quotedstr(const s: string):string;

因此,如果要在乙個語句中拼裝入字串型別的變數就可以用到這個函式。

3、請多使用quotedstr和過濾一些特殊字元(防止sql注入)。

舉例說明:

在某個功能介面上,可以輸入使用者名稱查詢出該使用者的資料。程式設計師所使用的sql語句如下:

select * from users where name=』』%s』』

如果我把%s替換成乙個單引號呢?這時sql語句就會變成

select * from users where name=』』這樣的sql肯定執行出錯。

如果我又把%s替換成'or u.[name]<>'呢?這時sql有會變成

select * from users where name=''or name<>''

列出這張表裡的所有資料。

如果sql語句如下:

select * from users where name=%s

而%s的值,全部用quotedstr轉換成字串再傳入的話就安全多啦!也不會出錯。

sql查詢語句查詢條件欄位的拼裝

當我們在查詢資料庫中的資訊時 很多時候需要根據使用者輸入的條件進行查詢 有些條件是有的 可有些條件沒有 這就需要進行組裝條件語句了。下面這種方法就是根據這種情況進行編寫的,希望對看官有所幫助 string sql select from table where where後1 個空格 stringb...

java Annotation 拼裝SQL語句

宣告字段對映 target elementtype.field retention retentionpolicy.runtime public inte ce filedref 宣告表對映 target elementtype.type retention retentionpolicy.runt...

動態SQL拼裝技巧

儲存過程裡有時候需要根據不同的條件拼裝動態sql,比如下圖是乙個簡單的sql語句拼裝函式 執行結果如下 plsql的字串連線時,需要用2個單引號表示1個單引號,比如上例中的to date函式裡面用到的日期模式。實際應用中可能會拼裝比這個複雜很多倍的動態sql,特別是當引號比較多的時候,對於拼裝出來的...