在Delphi中拼装SQL语句的注意点
我使用delphi也不是很长时间,由于经常要用到SQL语句,总结了一些Delphi中使用SQL语句要注意的事项,归纳起来主要有一下几条:
一、空格不要漏:
我们经常要拼装SQL语句,特别是where条件句,在各个语句中别忘了头尾加上空格。因为在一个语句中我们会注意用空格分开关键字但是往往忘了头尾的空格。例如:
sSQL=' select * from students Where ''a''=''a'' '
sWhere='and age >= 14'
sSQL = sSQL+sWhere;
sWhere='and age <= 16'
sSQL = sSQL+sWhere;
这个时候sSQL的内容为【select * from students where 'a'='a' and age >= 14and age <=16】
这个SQL语句肯定错了,因为【and age >=14】和【and age <= 16】之间没有空格,数据库分析的时候认为你需要的是【age >= 14and】的数据,能不出错吗?
二、引号配对:
这是在Delphi使用SQL语句时容易出错的地方,由于delphi规定在字符串中用两个西文的单引号“''”表示一个“'”,在拼装语句的时候就容易疏忽遗漏。
Delphi里有个函数QuotedStr能够在字符串的头尾加上一个西文的单引号【'】,这个函数的定义:function QuotedStr(const s: string):string;
因此,如果要在一个语句中拼装入字符串类型的变量就可以用到这个函数。
三、区别不同的写法
由于各个数据库的厂商对标准SQL都有各自的扩展,所以在书写SQL语句的时候就要区分不同数据库的不同写法。
例如:对于连接字符串,MS SQL Server用的是【+】而Oracle用的是【||】。
四、执行前检查
在执行SQL语句之前需要进行必要的检查,我们可以用ShowMessage()函数来查看我们写的语句是否正确,对于TString类型的语句我们可以用Memo控件进行查看。
最好加个确认过程,当发现sql有问题的时候就不执行,以避免不必要的意外。
五、模拟执行
在Delphi中写SQL前,有条件的最好在数据库自带的运行SQL的工具中先尝试书写出正确的语句,如MS SQLServer就用查询分析器,Oracle就用SQLPlus,delphi自带的SQL Explorer也可以。
相关文档:
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
fr ......
PATINDEX
返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
语法
PATINDEX ( '%pattern%' , expression )
参数
pattern
一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数 ......
Select CONVERT(varchar(100), GETDATE(), 0) as 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1) as 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2) as 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3) as 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4) as 16.05.06
Select CON ......
这部分包含那些 PostgreSQL 支持的 SQL 命令的信息.这里的 "SQL" 就是该语言通常
的含义; 每条命令的与标准有关的兼容性的信息可以在相关的参考页中找到.
Table of Contents
ABORT -- 退出当前事务
ALTER GROUP -- 向组中增加用户或从组中删除用户
ALTER USER -- 改变数据库用户帐号.
......
下面是指导文档。请跟着一步步的做。就能成功连接上sql server 2008
java中连接sql server 2008的注意事项:
2000,2005的数据库驱动类的写法是:
com.microsoft.jdbc.sqlserver.SQLServerDriver
URL的写法是:假设数据库是news
jdbc:microsoft:sqlserver://localhost:1433;databaseName=news
但是20 ......