delphi 中sql的语法规范

1.引号配对:
  这是在Delphi使用SQL语句时容易出错的地方,由于delphi规定在字符串中用两个西文的单引号“''”表示一个“'”,在拼装语句的时候就容易疏忽遗漏。
  Delphi里有个函数QuotedStr能够在字符串的头尾加上一个西文的单引号【'】,这个函数的定义:function QuotedStr(const s: string):string;
  因此,如果要在一个语句中拼装入字符串类型的变量就可以用到这个函数。

2.

区别不同的写法
  由于各个数据库的厂商对标准SQL都有各自的扩展,所以在书写SQL语句的时候就要区分不同数据库的不同写法。
  例如:对于连接字符串,MS SQL Server用的是【+】而Oracle用的是【||】。

3

执行前检查
  在执行SQL语句之前需要进行必要的检查,我们可以用ShowMessage()函数来查看我们写的语句是否正确,对于TString类型的语句我们可以用Memo控件进行查看。
  最好加个确认过程,当发现sql有问题的时候就不执行,以避免不必要的意外。

4模拟执行
  在Delphi中写SQL前,有条件的最好在数据库自带的运行SQL的工具中先尝试书写出正确的语句,如MS SQLServer就用查询分析器,Oracle就用SQLPlus,delphi自带的SQL Explorer也可以。

5

空格不要漏:
  我们经常要拼装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】的数据,能不出错吗?

 实例1;

sql.add('select mpgg=bh+''X''+bk from plcs_t ') ;
在delphi中''中如果想出现',则用''来表示
如:print('select mpgg=bh+''X''+bk from plcs_t ');
会显示
select mpgg=bh+'X'+bk from plcs_t

字符串 AB'CD   要写成  'AB''CD'

实例2

在字符串两加单引号。

对于本来说属于字符串的每个单引号,用两个代替。

字符串 AB'CD   要写成  'AB''CD'

以上两条是在DELPHI中使用单引号的原则。

如果字符串是要提交给SQL的,因为也用单引号做分隔符,提交给它的字符串中的个单引号也要用两个来代替。

所以如果要将字符串 AB'CD 提交给 SQL 则要写成 ''AB''''CD''

如要给在表 Table1 中添加一条记录 AB'CD

DELPHI中要写成这样

ADOQuery.SQL.Add('insert into Table1(Field1) values(''AB''''CD'')');

 

转载于:https://www.cnblogs.com/chuangyiyuan/p/6043184.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi是一种集成开发环境(IDE),可以用于创建Windows应用程序。要在Delphi备份SQL Server数据库,您可以使用以下步骤: 1. 首先,确保在Delphi安装了相应的数据库连接组件,例如ADO(ActiveX 数据对象)组件。 2. 在Delphi创建一个新的应用程序项目。 3. 使用ADO组件建立与SQL Server数据库的连接。在连接组件的属性,设置数据库的服务器名称、用户名和密码等信息。 4. 创建一个备份操作的按钮或菜单项,使用户能够触发备份操作。 5. 在备份操作的事件处理程序,编写代码以执行备份操作。以下是一个示例代码: ```delphi procedure TForm1.BtnBackupClick(Sender: TObject); var MyConnection: TADOConnection; BackupQuery: TADOQuery; begin // 创建SQL Server数据库连接 MyConnection := TADOConnection.Create(nil); MyConnection.LoginPrompt := False; MyConnection.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;' + 'User ID=username;Password=password;Initial Catalog=databaseName;Data Source=serverName'; try // 建立与数据库的连接 MyConnection.Connected := True; // 执行备份操作的SQL语句 BackupQuery := TADOQuery.Create(nil); BackupQuery.Connection := MyConnection; BackupQuery.SQL.Text := 'BACKUP DATABASE databaseName TO DISK = ''C:\backup\backup.bak'''; BackupQuery.ExecSQL; ShowMessage('数据库备份成功!'); except on E: Exception do ShowMessage('数据库备份失败:' + E.Message); end; // 释放资源 BackupQuery.Free; MyConnection.Free; end; ``` 以上代码示例,需要替换username、password、databaseName和serverName为实际的SQL Server数据库连接信息。备份操作将数据库备份保存到指定的文件路径(C:\backup\backup.bak)。 通过以上步骤,您可以在Delphi使用适当的代码来备份SQL Server数据库。请注意正确设置连接信息和备份路径,以确保成功备份数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值