当前位置:主页>delphi教程/企业管理软件> 文章内容

關於sql語句的參數

发布时间:2010-01-20 | QQ免费站
1楼: sql.add(‘select * from table001 where field1=‘‘‘+你好+‘‘‘‘) sql語句帶入參數我習慣用上面這種方法 但也有另外的方法 sql.add(‘select * from table001 where field1=:aa‘); ParamByName(‘field1‘).AsString:=你好; 這幾天還看見一種format的用法,忘記怎麼寫得了 高手們,給我說說這三種的區別吧,尤其是前兩種,各有甚麼優缺點? 字串8

2楼: 第一种是完全动态的,每次SQL要在数据库端重新编译 第二种不是,如果你只改变参数不改变SQL,那么它只编译一次,以后按授受的参数执行 第三种是第一种的翻版,为了程序更可读 字串7

3楼: 這個編譯,就是檢查語法得用處? 後果就是第一種速度慢一些? 編譯一次是指?如果我點一個按鈕兩次,那第二次得點擊事件裡面的sql語句就不編譯? 字串6

4楼: to ysai 再說仔細點好麼 TO ALL 我基本理解一大半了,剩下的怎麼沒有人回答我阿 沒人理我,自己頂一下吧 字串2

5楼: 我來寫一個 const SQL = ‘select * from table001 where field1=%s‘; SQL.Add(Format(SQL, #39 + ‘你好‘ + #39); 字串8

6楼: to duanhai: 老大,我是要象ysai那样的解释,理论的,不是要问怎么写,写我也会阿 不过还是感谢你帮我顶了一下

字串3

7楼: 就是说第一种是知道要做的事情,而且知道你要输入的参数的具体值, 并且这种值一般是不会变化的,如果变化了那你的程序就要再进行编译 生成可执行程序了. 如sql.add(‘select * from table001 where field1=‘‘‘+你好+‘‘‘‘), 当不再是“你好“,而是“晚安“之类的时候你就要再编译一次源程序了. 而第二种是变量型的,也就是说如果你的“你好“,“晚安“之类的是来自于外部 的数据,比如来自于一个文本文件,而你使用以下语句: sql.add(‘select * from table001 where field1=:aa‘); ParamByName(‘field1‘).AsString:=读取文本文件后的变量; 那么就不需要再重新编译了,因为源代码并没有改变. 实际上在编程中为了以后的可操作性和可维护性,经常需要这样子做.

字串7

8楼: 多人接受答案了。

字串5

9楼: 那我想问一下,如果不是在SQL语句中呢,变量的引用有几中方法??

字串9