所有你说的3中方式都是走一个东西, 那就是数据库引擎。
1,delphi中写sql直接查询, 你必须用ado,bde,dbexpress,ibx等等控件,或者其底层的对象, 而这些都是一个引擎。
“2,传参数到sql server执行查询语句”
这个我真不明白你说的是什么意思? 是指如:"select * from table1 where a1 =:a1"
嘛?
如果是这样,跟你说的第一种没有区别。 只是参数的输入方式不同,这种更加可靠,安全一点而已。
没有效率的区别。
“3、将整个语句传到sql server里面执行(没有试过,不知是否可以)”
对于你说的这个,我一点都不理解了, ADOQuery1.sql.text:='select * from table';这样的语句是不是将整个语句传到数据库里执行了??
首先, 所有的sql语句,无论你用什么方式传入,或者用什么引擎承载,总之它是到了数据库之后才被执行的。 你的exe,windows都没有这样的能力。 因为sql就是写给db的。