oledb對多結果集的處理

2021-04-09 06:09:51 字數 1332 閱讀 2571

1. 建立乙個簡單表及儲存過程

create table sp_table

( username varchar(

30),

age 

int)

create procedure test_sp

@username varchar(

30),

@age 

int,

@out 

intoutput

asinsert into sp_table values(@username,@age);

select @out 

=count(username) from sp_table

declare @a 

intexec test_sp 

'oliver', 

21,@a output;

print @a

2. 建立乙個ccommandrs; 其中第三個引數必須是cmultipleresults,預設為cnomultipleresults3. 建立儲存過程模版

ccommand

<

cdynamicparameteraccessor,crowset,cmultipleresults

>

rs;

hresult hr 

=rs.create(dbconn

->

m_session,

"exec dbo.querystock ?,?,?");

4. 設定引數

hr =

rs.prepare();

void

*pdummy;

hr =

rs.bindparameters(

&rs.m_hparameteraccessor,rs.m_spcommand,

&pdummy);

char

*nparamvalue1 ="

lei"

;rs.setparam(nparamvalue1);

intnparamvalue2 =22

;rs.setparam((ulong)2,

&nparamvalue2);

5. 呼叫儲存過程

if(rs.open(null,null,0)

!=s_ok)

...

6. 過濾掉無用的返回結果,找到自己合適的結果集

long

*plrowsaffected 

=null;

while

(rs.getnextresult(plrowsaffected) 

==s_ok)

...}}

多結果集的訪問

using sqlconnection conn new sqlconnection connectstring string cmdtext select top 10 from customers select lastname,firstname from employees sqlcomma...

關於多結果集的儲存過程的處理

對於乙個存諸過程,如果返回的結果是我們預先知道的,那麼可以根據儲存過程定義的順序來進行 處理 事實上一般不會這樣 但對於複雜的多結果集的處理,如何定義乙個通用的流程?我們先看一下jdbc本身能為我們提供什麼?乙個儲存過程執行後返回的是boolean型 boolean flag callablesta...

關於多結果集的儲存過程的處理

對於乙個存諸過程,如果返回的結果是我們預先知道的,那麼可以根據儲存過程定義的順序來進行 處理 事實上一般不會這樣 但對於複雜的多結果集的處理,如何定義乙個通用的流程?我們先看一下jdbc本身能為我們提供什麼?乙個儲存過程執行後返回的是boolean型 booleanflag callablestat...