Delphi拼装SQL语句应该注意的地方

 

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转换成字符串再传入的话就安全多啦!也不会出错。大笑抄自小强日志!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值