這裡討論的是ado呼叫儲存過程,按msdn的例子,一般都是下面的呼叫方法(節選自msdn):
_connectionptr pconnection = null;
m_conn.createinstance(__uuidof(connection));
m_conn->connectionstring = "provider=sqloledb;data source=srv;"initial catalog=pubs;user id=sa;password=;";
m_conn->open("","","",null);
_variant_t m_param;
_bstr_t m_bstr;
int index = 0,nfieldcount;
_recordsetptr m_rs;
m_rs.createinstance(__uuidof(recordset));
m_rs->open("select * from titles",(idispatch*)(m_conn->m_conn),adopenstatic, adlockreadonly,adcmdtext);
nfieldcount = m_rs->fields->count;
while(!m_rs->endoffile)
m_rs->movenext();
}m_rs->close();
m_conn->close();
以上一段就是普通的執行查詢sql語句的**,簡單起見,去掉了所有防護和判斷**,對於ms sqlserver,如果是執行返回結果集的儲存過程,比如pubs的byroyalty,只需要把上面**中的"select * from titles"替換成"byroyalty 100"就可以了,即"過程名 引數1,引數2,..."形式。
VC呼叫儲存過程的通用方法(SQLServer篇)
vc呼叫儲存過程的通用方法 sqlserver篇 這裡討論的是ado呼叫儲存過程,按msdn的例子,一般都是下面的呼叫方法 節選自msdn connectionptr pconnection null m conn.createinstance uuidof connection m conn co...
vc2010呼叫儲存過程
coinitialize null connectionptr pmyconnect null hresult hr pmyconnect.createinstance uuidof connection if failed hr return bstr t strconnect provider ...
VC中使用ADO呼叫儲存過程
2.為了使我們的呼叫儲存過程的例子有更多的通用性,我建了有輸入引數,有輸出引數,有乙個返回記錄集,有乙個返回值的儲存過程,如下 create procedure sp 1 pin1 int pin2 char 10 pout1 int output,pout2 char 10 output as b...