如何在DELPHI应用程序中插入复杂SQL语句(100分)

  • 主题发起人 主题发起人 lvxinming
  • 开始时间 开始时间
用TQuery控件就可以了.
 
只能用TQuery吧!
with Query1 do begin
SQL.clear;
SQL.add('所需要的语句');// 语句写到这里
.....
ExecSQL;
end;
 
复杂SQL语句?
用tquery
或者把SQL放在存储过程中用tstoreproc访问
 
用TQUEY,并在程序运行时设置SQL的内容,灵活性更强。
 
query1.active:=false;
query1.sql.clear;
query1.sql.add('......');

query1.open;(for select statement)
or query1.exesql;(for insert,update...)
if you wanna another sql statement, do those again.
 
如果是select,query.open.
其它,如update,query.execsql.
 
可用QBE,它能自动生成SQL语句.
 
用TQuery控件就可以了在DELPHI应用程序中插入复杂SQL语句.
具体的方法是在TQuery组件的SQL属性里填上适当的语句后调用Open或EXECSQL
方法就能用TQuery使用SQL语句.
SQL语句语法可参考Delphi有Local SQL Guide帮助文件.
 
答案还是Tquery.
如下例:
var
subtext,sub:string;
begin
query1.close;
subtext:=query1.sql.text;//备份以前的SQL语句;
query1.sql.clear;
query1.sql.add("本次要执行的SQL语句");
try
query1.open;
except
query1.execSQL;
end;
qurey1.close;//恢复上次query1 的状态
query1.sql.clear;
query1.sql.add(subtext);
try
query1.open;
except
query1.execsql;
end;
query1.active:=false;
query1.active:=true;

end;


这点我比较喜欢powerbuilder那种嵌入式SQL语句,它完全将SQL语句与
宿主语言溶在一起。
 
用Format方法格式化sql语句,再在Query中调用它。
 
还有什么说的,大不了分段加呀,
with Query1 do
begin
SQL.add('select...');
SQL.add('from...');
SQL.add('where...');
...
end;
 
调用TQuery的时候,
Open是需要返回数据的,
ExecSQL是不需要返回的。
之前调用Prepare方法,SQL执行起来会比较快一点。
还有就是可以用Query的Params属性定义参数,
sql调用的时候,之前用:参数名就可以访问了,和SQL一样的。
 
接受答案了.
 
后退
顶部