我正在阅读一个用 C++ 编写的应用程序,从远程 sql server 2005 db 调用存储过程。
我发现它使用两种不同的方法进行远程 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"); }
我找不到谷歌的两种方法的比较。任何人都可以解释两种方法的区别以及何时必须使用什么?