写SQL存储过程,首先要知道有那个输入参数,那个输出参数,那个是输入输入参数,还有存储过程中怎样知道有多少个参数,请问怎样可以知道呢?
还有如果知道了这些内容请问又怎样去使用和绑定呢?
谢谢!如果有那位朋友是写过类似的C++代码类,请贴一小部分代码出来看看啊!本人万分感激!
还有如果知道了这些内容请问又怎样去使用和绑定呢?
谢谢!如果有那位朋友是写过类似的C++代码类,请贴一小部分代码出来看看啊!本人万分感激!
解决方案 »
- 在MDI中反复调用ActiveX中的函数内存会出现增长情况
- 急!连接EXCEL SQL语句带WHERE限制提示错误
- 关于vc向内存写入汇编的方法。。。。但是为什么报错?
- Recordsetptr查询数据
- 股票作图软件, 有前途吗?
- 编制在ListView的打印程序
- 求教:在在模式对话框BOOL CXXX::OnInitDialog()中InitSocket()初始化失败,怎样退出该模式对话框
- 无法解析的外部符号 _CStdStubBuffer_Release@4 怎么解决
- 菜鸟问题:忘了如何定义几位的变量?谁能告诉我,谢谢!
- --------- 急急急----------如何用http上传数据?
- 急,怎么配置VC++6.0的开发环境才能生成INI文件呢,在线守候""
- 浏览器界面问题
CREATE PROCEDURE Test
@Para1 int ,
@Para2 int ,
@Para3 int ,
@Ret int OUTPUT
AS
insert into test1 values (@Para1,@Para2,@Para3)
set @Ret = @Para1;
GO
///////////////////////////////////////////////////////////////////////////////
jnxulei(石头) ( ) 信誉:111
//------------------------------------------------------------------------------
CDatabase * pDatabase = new CDatabase;
pDatabase->OpenEx("DSN=ODBCName;UID=***;PWD=***", 0 );
CRecordset rs( pDatabase );
SQL.Format("{Test %d,%d,%d,%d}",Time0, Time1, Time2, Time3);
rs.Open( CRecordset::dynamic, SQL, CRecordset::none );
rs.GetFieldValue( (long)0, strReturn );
rs.Close();
pDatabase->Close();
delete pDatabase;
///////////////////////////////////////////////////////////////////////////////
lsp5i5j(星辰->女人在哪) ( ) 信誉:87
//------------------------------------------------------------------------------
ODBC有点麻烦,输入输出参数都有
int SimpleGetAccordOtherprocedure(CDatabase *dbCust,char *spstring,char *resultp,int *resultplen,int *ireturn,int *nIndex,char *sUserTel,char *sOtherId,char *sOtherTel,char *sOtherSex,char *sOtherOld)
{
char spstm[512];
int ret;
HSTMT hStmt;
int totallen=0;
SDWORD cbIn1=SQL_NTS, cbIn2=SQL_NTS, cbOut=1024,cbRet=0;
ret=SQLAllocStmt(dbCust->m_hdbc, &hStmt);
if(ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO)
return(-3503);
if(sizeof(spstm)<=strlen(spstring))
return(-3504);
strcpy(spstm,spstring);
ret=SQLPrepare(hStmt, (UCHAR *)spstm, SQL_NTS);
if(ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO)
return(-3504);
ret=SQLBindParameter(hStmt,1,SQL_PARAM_OUTPUT,SQL_C_SSHORT,SQL_INTEGER, 0, 0, ireturn, 0,&cbRet);
ret=SQLBindParameter(hStmt,2,SQL_PARAM_INPUT,SQL_C_SSHORT,SQL_INTEGER,0, 0, nIndex, 0, &cbIn1);
ret=SQLBindParameter(hStmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR, DBACCESS_MAXPARAMLEN, 0, sUserTel, DBACCESS_MAXPARAMLEN,&cbIn1);
ret=SQLBindParameter(hStmt,4,SQL_PARAM_OUTPUT,SQL_C_CHAR,SQL_CHAR, DBACCESS_MAXPARAMLEN, 0, sOtherId, DBACCESS_MAXPARAMLEN,&cbIn2);
ret=SQLBindParameter(hStmt,5,SQL_PARAM_OUTPUT,SQL_C_CHAR,SQL_CHAR, DBACCESS_MAXPARAMLEN, 0, sOtherTel, DBACCESS_MAXPARAMLEN,&cbIn1);
ret=SQLBindParameter(hStmt,6,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR, DBACCESS_MAXPARAMLEN, 0, sOtherSex, DBACCESS_MAXPARAMLEN,&cbIn1);
ret=SQLBindParameter(hStmt,7,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR, DBACCESS_MAXPARAMLEN, 0, sOtherOld, DBACCESS_MAXPARAMLEN,&cbIn1);
ret=SQLExecute(hStmt);
if(ret!=SQL_SUCCESS && ret!=SQL_SUCCESS_WITH_INFO)
return(-3505); // printf("Error in execute!\n");
ret=TBSDBProcWU(hStmt,resultp,resultplen);
return ret;
}
参考:
---------------------------------------------------------------
http://www.vchelp.net/wyy/tour/odbc_api.asp#_Toc50053547
---------------------------------------------------------------
http://tech.ccidnet.com/pub/article/c1060_a58457_p1.html
:p