由于需要,需要在Delphi中调用sql server中写好的存储过程,这里翻看了一些代码,同时也查看了一些网上的例子,在这里算是自己的一个小结。
在Delphi中提供两种方式进行存储过程的调用,一种是ADO的TADOStoredProc,另一种则是BDE的TStoredProc。
在Delphi的DBTable单元中存在类TStoredProc,该类自身具有的属性有:Overload, ParamBindMode, ParamCount, Params, Prepared以及StoredProcName。
自身具有的方法有:CopyParams, Create, DescriptionAvailable, Destroy, ExecProc, ParamByname, Prepare, UnPrepare。
overload主要是在oracle数据库中用到,因为oracle中允许存储过程可以重名,为了表示调用不同的存储过程,就用这个参数作为标识。
在其中的StoredProcName就是需要的存储过程的名字,因此在实际编程中先定义一个TStoredProc对象: objectStoredProc: TStoredProc,然后将数据库中
已编写好的存储过程名(例如: sp_procedure)赋值给objectStoredProc.StoredProcName。即: objectStoredProc.StoredProcName := 'sp_procedure'。如此,一
个不带参数的存储过程就弄好了,然后prepare, execproc就执行存储过程。
如果是一个带参数的存储过程,则先要将参数创建出来,然后再对它进行赋值。