0
我正在阅读使用C++编写的应用程序,从远程sql server 2005 db调用存储过程。使用dbfcmd和dbrpcsend从C++调用SQL Server存储过程
我发现它使用两种不同的方法来进行远程SP调用。
使用dbfcmd
int ProcessMsg1(PDBPROCESS dbproc){ dbfcmd(dbproc,"exec message1_proc '%s'",blk->msgtype); dbsqlexec(dbproc); if (dbretstatus(dbproc)==-1) printf("dbsqlexec failed.\n"); }
使用dbrpcinit,dbrpcparam,dbrpcsend
int ProcessMsg2(PDBPROCESS dbproc){ dbrpcinit(dbproc, "message2_proc", (DBSMALLINT)0); dbrpcparam(dbproc, "@MType", 0, SQLCHAR, 4, 4, blk->msgtype); if ((dbrpcsend(dbproc) == FAIL)) printf("dbrpcsend failed.\n"); }
我无法找到从谷歌两种方法的比较。任何人都可以解释两种方法的区别,何时必须使用什么?
我以为他们的差异与“RPC”或远程有关,因为第二种方法在其名称中提到了rpc。所以无论调用的数据库是远程还是本地的,它们都可以互换? – JiuDong 2013-04-10 09:12:29
它们可以互换。 – muhmud 2013-04-10 09:26:26
谢谢,这清除了我的疑惑 – JiuDong 2013-04-10 13:34:56