调用方法不正确
调用时没有实参,你应该按照函数定义时参数的个数和类型给函数传递同样个数和类型的参数,这是最基本的啊
你定义的是个函数,是函数就要返回值,你得用一个函数返回值同样类型的变量去接收这个返回值
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
set Comd=severcreateobject("adodbmand")
openDB '连接数据库
set dactiveconnection=conn'数据连接相关联
dmandtype=adcmdstoredproc'提示调用的存储过程
dmandtext="user"'被调用的存储过程
set para1=dcreateparameter("username",advarchar,adparaminput,15)'全部的变量设置要与存储过程里面的要对应
set para2=dcreateparameter("password ",advarchar,adparaminput,15)
set para3=dcreateparameter("realname",advarchar,adparaminput,15)
set para4=dcreateparameter("gender",advarchar,adparamtinput,15)
set para5=dcreateparameter("tel",advarchar,adparaminput,15)
set para6=dcreateparameter("email",advarchar,adparaminput,15)
set para7=dcreateparameter("homepage",advarchar,adparaminput,15)
set para8=dcreateparameter("savesignup",adboolean,adparameoutput,15)'要注意的是每一个数据类型前加ad
dparametersAppend para1
dparametersappend para2
dparametersappend para3
dparametersappend para4
dparametersappend para5
dparametersappend para6
dparametersappend para7
dparametersappend para8
d("username")=strusername
d("password")=strpassword
d("realname")=strrealname
d("gender")=strgender
d("tel")=strtel
d("email")=stremail
d("homepage")=strhomepage
dexectue
可以给我解析一下这段代码么``顺便讲一下exectue的用途
解析:
首先定义了参数的名称和类型
然后将参数添加到存储过程里面
exectue是执行相应的SQL语句的
本处执行存储过程
第一个存储过程(被调用的)里定义OUTPUT参数,如:
Create Procedure 存储过程1
@参数1 数据类型
@参数2 数据类型 output
AS
存储过程语句
第二个存储过程:
Create
AS
Declare @本地参数1
Declare @本地参数2
EXEC 存储过程1 @本地参数1,@本地参数2 OUTPUT
--这样@本地参数2就可以直接使用了,带回来的是存储过程1中的@参数2
CADODatabase db;
dbOpen(Provider=SQLOLEDB1;Persist Security Info=False;Initial Catalog=%s;Data Source=%s;User Id=%s;Password=%s;Min Pool Size=60;Max Pool Size=100;pooling = true;);
CADORecordset rs(db);
rsOpenEx(sql);
rsm_pCmd->Parameters->Append(rsm_pCmd->CreateParameter(_bstr_t("Para"), adInteger, adParamInput, 0, _variant_t(type)));
rsExecuteCmd();
for (; !rsIsEOF(); rsMoveNext())
{
CString str("");
rsGetFieldValue("Column", str)
}
db的连接字符串里%s分别代表数据库名,数据库服务地址(含实例名),数据库用户名(sa),连接密码。
sql是存储过程名。
OpenEx之后就是追加参数,其中Para是参数名,Type是传入的参数值。
rsExecuteCmd(),执行。
后面是获取记录集的方式。
Column是列名,str 是Column这一列对应的值。
晕,有上面这么麻烦吗
1\打开企业管理器
2\展开左边的树结构,直到看到database
3\右击database,在d出菜单中找一个项,最后是(K)的,后面还有个三角形的
4\鼠标指向这一项,又出现一个菜单,其中有一个项,最后是(A)的,点击它,就打开附加数据库的窗口了
5\在这个窗口内附加数据库,就OK了
(1)执行一个没有参数的存储过程的代码如下:
SqlConnection conn=new SqlConnection(“connectionString”);
SqlDataAdapter da = new SqlDataAdapter();
daselectCommand = new SqlCommand();
daselectCommandConnection = conn;
daselectCommandCommandText = "NameOfProcedure";
daselectCommandCommandType = CommandTypeStoredProcedure;
(2)执行一个有参数的存储过程的代码如下
SqlConnection conn=new SqlConnection(“connectionString”);
SqlDataAdapter da = new SqlDataAdapter();
daselectCommand = new SqlCommand();
daselectCommandConnection = conn;
daselectCommandCommandText = "NameOfProcedure";
daselectCommandCommandType = CommandTypeStoredProcedure;
param = new SqlParameter("@ParameterName", SqlDbTypeDateTime);
paramDirection = ParameterDirectionInput;
paramValue = ConvertToDateTime(inputdate);
daselectCommandParametersAdd(param);
若需要添加输出参数:
param = new SqlParameter("@ParameterName", SqlDbTypeDateTime);
paramDirection = ParameterDirectionOutput;
paramValue = ConvertToDateTime(inputdate);
daselectCommandParametersAdd(param);
若要获得参储过程的返回值:
param = new SqlParameter("@ParameterName", SqlDbTypeDateTime);
paramDirection = ParameterDirectionReturnValue;
paramValue = ConvertToDateTime(inputdate);
daselectCommandParametersAdd(param);
实现的方法和详细的 *** 作步骤如下:
1、第一步,创建一个存储过程,该代码如图所示。存储过程的主要目的是为表“JingYan”插入新数据,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,执行以下几行代码,并查看执行是否成功。现在,数据库中有一个存储过程源“sp_JY”,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,查看“JingYan”表中的当前数组,只有三行数据,如下图所示,然后进入下一步。
4、然后,完成上述步骤后,在mysql中,要调用存储过程,只需使用“call”关键字并输入存储过程的名称即可。当然,如果有参数,则需要带一个参数。代码见下图,然后进入下一步。
5、随后,完成上述步骤后,再次查看“JingYan”表中的数据,可以看到当前数据已经是四个,这表明对存储过程的调用已成功插入了新数据,如下图所示,然后进入下一步。
6、接着,完成上述步骤后,添加另一个存储过程,该存储过程使用select语句返回表数据,如下图所示,然后进入下一步。
7、最后,完成上述步骤后,调用新的存储过程,可以看到结果中已经返回了表数据,如下图所示。这样,问题就解决了。
以上就是关于oracle存储过程调用另一个存储过程全部的内容,包括:oracle存储过程调用另一个存储过程、asp调用存储过程、SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)