一个关于返回值较简单的存储过程的编写

likesome 2005-10-21 05:05:11
编程工具:VB 6.0

数据库:Oracle 9i
表名:表A
字段:ID,CusCode,CusName


问题:
现有一大堆ini文件(数据量很大),我用Vb读出了其中的CusCode值,我要与Oracle的表A按CusCode进行比对,如如存在,就写入一个本地的表(可以是Access或文本文件)

由于数据量大,对速度要求也特别大,所以我的思想是在Oracle中写一个存储过程,但我没有在VB中调用过,及用ADO调用方法


能不能大家帮我写一下这个存储过程,及说明一个VB的调用方法。




要实现功能,有一大
...全文
196 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chanet 2005-10-22
  • 打赏
  • 举报
回复
http://blog.csdn.net/chanet/archive/2005/01/19/259391.aspx
waterfirer 2005-10-21
  • 打赏
  • 举报
回复
VB调用存储过程
Set mEditParaCnn = New ADODB.Connection
mEditParaCnn.ConnectionString = mStrDbSource
Set mEditParaCmd = New ADODB.Command
mEditParaCnn.Open

mEditParaCmd.CommandType = adCmdStoredProc
mEditParaCmd.CommandText = "yourfunction"
mEditParaCmd.ActiveConnection = mEditParaCnn

mEditParaCmd.Parameters.Append mEditParaCmd.CreateParameter("ReturnCode", adVarChar, adParamReturnValue, 25)
mEditParaCmd.Parameters.Append mEditParaCmd.CreateParameter("aaa", adVarChar, adParamInput, 25)
mEditParaCmd.Parameters.Append mEditParaCmd.CreateParameter("bbb", adVarChar, adParamInput, 25)

mEditParaCmd("aaa") = aaa

mEditParaCmd("bbb") = bbb

mEditParaCmd.Execute

ccc= mEditParaCmd("ReturnCode")

Set mEditParaCmd = Nothing
Set mEditParaCnn = Nothing
qiaozhiwei 2005-10-21
  • 打赏
  • 举报
回复
VB 调用不是很清楚,vc就明白,建个类,连接下数据库即可
qiaozhiwei 2005-10-21
  • 打赏
  • 举报
回复
思路:vb在ini中读取cuscode值,调用oracle过程比较,如果存在返回1,否则返回0,oracle过程供参考:
CREATE OR REPLACE PROCEDURE COMP_PARA
(
p_CusCode IN TABLEA.CusCode%TYPE,
p_RESLUT OUT NUMBER
)
/*
参数说明:
p_CusCode 传入的比较值
p_RESLUT 返回结果,存在传入值,返回 1,否则返回 0
*/
AS
v_COUNT NUMBER;
BEGIN
SELECT COUNT(*) INTO v_COUNT
FROM TABLEA
WHERE CUSCODE = p_CusCode;
IF v_COUNT > 0 THEN
p_RESLUT := 1;
ELSE
p_RESLUT := 0;
--如需要其它操作,可在此添加(当传入值,在当前数据库中不存在)
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SUBSTR('ERROR:'||SQLERRM,1,255));
END COMP_PARA;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧