用一个Query动态生成并执行SQL语句
在学做三层开发的时候,有个想法不知道能不能实现:
就是客户端能否只向应用服务器提供操作类型和参数,应用服务器能够根据这个操作类型动态生成SQL语句并接收客户端传来的这些参数,执行insert、update、delete等操作,这样做的目的是应用服务器端只用一个Query就能完成这些操作,但SQL语句是根据客户端传来的操作类型动态生成的,不知有哪位朋友能提供详细方法和实现步骤?
问题点数:100、回复次数:6Top
1 楼fsstolw(fsstolw)回复于 2002-11-09 14:19:32 得分 0
upTop
2 楼Nepalon(大头)回复于 2002-11-09 14:25:41 得分 60
当然可以啦。你把你要进行的操作,如insert,作为字符参数传过去,在服务器进行判断。在服务器上设置不同判断结果的SQL语句,这就相当于动态的了。当然,你还是要把条件,表名,字段等信息传给服务器的。如果用BDE的话,你可以用BDE的UpdateSQL控件,基本上不用写代码,只需设一下属性就行了。Top
3 楼fsstolw(fsstolw)回复于 2002-11-09 14:28:58 得分 0
啊,楼上这位朋友能不能再详细说说,给个例子好么?在线等待!Top
4 楼jishiping(JSP 季世平)回复于 2002-11-10 20:27:16 得分 40
这有何难?比如有如下变量TableName, FieldName1, FieldValue1, FieldName2, FieldValue2,所有变量均为AnsiString型,字段类型为字符串型。这样写好了:
Query->SQL->Text = "UPDATE " + TableName + " SET " + FieldName1 +
"='" + FieldValue1 + "'," + FieldName2 + "='" + FieldValue2 + "'";
Query->ExecSQL();Top
5 楼fsstolw(fsstolw)回复于 2002-11-11 09:22:13 得分 0
哦,但是参数的传递却不能用ClientDataSet的Delta呀?Top
6 楼fsstolw(fsstolw)回复于 2002-11-13 21:26:55 得分 0
嗯,我已经明白了,谢谢大家!Top




