Delphi中关于如何拼接SQL语句

如题所述

核心提示:在一些论坛,常看到有人拼接SQL的时候,喜欢直接硬拼,结果就是出现一大堆加号和单引号,不仅写起来麻烦(你得小心该连续写多少个单引号),SQL的可读性也相当差。...稍微好一点的方法是,使用QuotedStr函数,这个函数用于输出一个单引号括着的字符串。我相信写“'Insert into table(a,b,c) values(' + QuotedStr('ET') + ',' + QuotedStr('OTL') + ',' + QuotedStr('ORZ') + ')'”,总比你写“'Insert into table(a,b) values(' + ''''ET'''' + ',' + ''''OTL'''' + ',' + ''''ORZ'''' + ')'”可读性要强些吧,这么多引号看着都烦,别说写了。更好的方法是使用Format函数。此函数一定要多多善用,通过格式化字符串的办法,可大大提高语句的可读性;而且格式化控制符有数字型也有字符串型,免除了你一会IntToStr,一会又StrToInt的痛苦。以上SQL的等效写法是“Format('Insert into table(a,b,c) values(%s,%s,%s)', [QuoteStr('ET'), QuotedStr('OTL'), QuotedStr('ORZ')])”。 本文到此还没结束,大家是否觉得尽管Format能大大提高了语句的可读性,但是写带单引号的字符串时,仍然比较麻烦呢?no problem,其实我们稍稍"扩充"下Format语句就行了: function FormatSQL(const AFormat: string; const Args: array of const): string; begin result := Format(StringReplace(AFormat, '%q', QuotedStr('%s'), [rfReplaceAll, rfIgnoreCase]), Args); end; 以上SQL的等效写法为“FormatSQL('Insert into table(a,b,c) values(%q,%q,%q)', ['ET', 'OTL', 'ORZ'])”。应该算是比较方便了,我觉得。顶一下
温馨提示:内容为网友见解,仅供参考
无其他回答

用delphi做的程序如何连接SQL数据库?应该怎么操作?
1. 新建一个FORM。在控件栏找到ADO一栏,把里面的ADOConnection和ADOQuery两个各建立一个放在FORM里。这两个控件运行后是不可见的,所以你可以随便放在FORM的任何位置。然后再找到DATA ACCESS一栏,把它下属的DataSource控件拖一个放到FORM里。用这三个控件就可以建立连接了。2.设置相关属性,首先我们设置...

delphi 如何接住sql 存储过程output传下来的参数
create procedure proc_inserttea(@i int output,@id char(10),@name char(10),@title char(20),@grade char(5))as insert into teacher(Tid,Tname,title,Tgrade) values(@id,@name,@title,@grade)select @i=id from teacher where Tid=@id 传出id这个参数,用ADOStoredProc去接收 storepro...

Delphi如何使用ADO连接SQLServer2008?
1、创建TADOquery控件;2、选择TADOquery控件,进入ConnectionString设置,见下图:3、在弹出的窗口中,选择下一步,见下图:4、在弹出的页面中,选择数据库,并输入数据库用户名及密码,见下图:5、确定后,ConnectionString属性会自动生成联接码;6、完成以上步骤,就可在ADO中输入SQL语句,进行数据读取啦。

delphi中如何实现对sql数据库记录进行添加,删除,修改
使用ADO,首先用ADOConnection对象建立连接,然后使用ADOQuery对象对数据库进行操作。ADOQuery对象操作:查询:先使用close;再设置SQL.text为SQL查询语句内容;最后使用OPEN方法打开添加:Append或Insert;FieldByName('字段名').Value := 字段内容;Post;修改:Edit;FieldByName('字段名').Value := 字段...

delphi中如何使用SQL语句结果
在窗体上再加一个adoconnection1,使得它连接资料库,ADOQ连接它。begin try adoconnection1.begintrans;\/\/开始事务 ... \/\/插入记录 reset;adoconnection1.committrans;\/\/提交事务 ... \/\/给出一个button2.click时的异常 except adoconnection1.rollbacktrans;\/\/事务回滚 showmesage('添加失效!'...

delphi如何连接sql2000
我给你个控件步骤吧,选择ADOQUERY控件,在CONNTIONSTRING属性,点击BUILD,选择SQL SERVER,然后输入用户名和密码,选在你需要的数据库,点击测试连接,如果没问题,就显示连接成功,然后点确定,然后再把CONNTION属性改为TURE,然后在SQL属性里面编写SQL语句(SELECT * FROM 表)。选择DATASOURCE控件,双击...

关于Delphi连接SQL数据库的问题
从你的情况看是需要每个窗体都添加ADOConnection的,不过可以向工程里添加一个DataMoudle来实现公用连接,然后在需要引用的单元里面引用此DataMoudle就可以了。

如何进行组合查询 在delphi应用程序上任意选择条件,然后对SQL sever...
告诉你个简单的方法,就是用嵌套的sql语句进行查询。例:Select * From (Select * From Table1 where Field1=0) where (Field2>'ABC') and (Field3 like '%OK%')

怎样在delphi里直接写sql语句插入一条带日期数据到数据库?
对于SqlServer 数据库,可以如下操作。在窗体上放一个TDateTimePicker控件,用于日期选择,然后直接用 Insert into语句就可以 var SaveSql:String;SaveSql:='Insert into kc_rkdmx(单号,入库日期,制单人) values('+'''+LEdit_dh.Text+'''+','+'''+DateToStr(TDateTimePicker.Date)+'''+','\/...

delphi中设置了一个数组,如何在SQL语句当中调用这个数组
where a= '"+ c[i]+ "'加双引号引用变量

相似回答