`
java-mans
  • 浏览: 11344179 次
文章分类
社区版块
存档分类
最新评论

vc6.0链接数据库调用存储过程

 
阅读更多

一、引用

#import "msado15.dll" no_namespace rename("EOF", "adoEOF") //相对路径的

//#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF") //绝对路径的

二、始化Com库(下面两种都可以)

AfxOleInit(); //add by jiao

//::CoInitialize(NULL);///初始化COM库

三、创建链接

_ConnectionPtr m_pConnection;

HRESULT hr;
try
{
//ADODB.Connection __uuidof(Connection)
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Driver={SQL Server};Server=172.16.45.10;Database=dd;UID=dd;PWD=dd","","",adModeUnknown);

AfxMessageBox("OK");
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}

四、存储过程的调用

_CommandPtr m_pCommand;//还是智能指针
m_pCommand.CreateInstance("ADODB.Command");//实例
m_pCommand->CommandType=adCmdStoredProc;//表示为存储过程adCmdStoredProc
m_pCommand->ActiveConnection = m_pConnection;//设置连接,别忘了啊
m_pCommand->CommandText = "Test";//存储过程为Test

_ParameterPtr m_pParam;
m_pParam.CreateInstance("ADODB.Parameter");

_ParameterPtr m_pParamRet;
m_pParamRet.CreateInstance("ADODB.Parameter");

CString strTmp;
strTmp.Format("%s","jiao");
_variant_t var = (LPCTSTR)strTmp;//转换为_variant_t
m_pParam = m_pCommand->CreateParameter("Name",adVarChar,adParamInput,20,var);

//m_pParam = m_pCommand->CreateParameter("Name",adVarChar,adParamInput,20,(_variant_t)"DengKanjiao");//adVarChar对应VarChar,adParamInput表明输入参数
m_pCommand->Parameters->Append(m_pParam);//加入到Command对象的参数集属性中

//m_pParamRet=m_pCommand->CreateParameter("ret",adChar,adParamOutput,1); //adChar对应char
m_pParamRet=m_pCommand->CreateParameter("ret",adInteger,adParamOutput,1);//adInteger对应int ,adParamOutput表明输出参数
m_pCommand->Parameters->Append(m_pParamRet);


m_pCommand->Execute(NULL,NULL,adCmdStoredProc);

// _variant_t result = m_pCommand->Parameters->GetItem("ret")->GetValue();
int m_nNewNetID=(long)m_pCommand->Parameters->GetItem(_bstr_t("ret"))->GetValue();// 获取返回值

m_pConnection->Close();
CoUninitialize();

AfxMessageBox("Success");

五、存储的SQL语句

CREATE PROCEDURE Test
@Name varchar(20),
@ret int output
AS
declare @nCallTimeLen as int
set @nCallTimeLen=20000
insert into UserInfo values(@Name)
if @@error=0
set @nCallTimeLen=300
else
set @nCallTimeLen=200
set @ret=@nCallTimeLen
return @ret
go


分享到:
评论

相关推荐

    vc++操作Oracle数据库

    在vc6.0上简单实现Oracle数据库的数据写入和导出,简单易懂易操作;本人在vc6.0上编译通过,好用!

    vc++ 应用源码包_6

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例...

    二进制XML存储方案

    BinXML-src.zip包括两部分,一部分是vc的工程,一部分是java的工程,在Visual C++6.0和eclipse+JDK1.4中都已编译、运行通过。大家可以运行BinXML-bin.zip里面的exe程序,测试一下BinXML文件的加载和保存功能。 对象...

    VC++常用功能实例

    研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5字符 12 改变颜色(整个窗体的控件) 13 改变工程表头栏 13 ◆如何找开...

    vc++ 应用源码包_1

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...

    vc++ 应用源码包_2

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...

    vc++ 应用源码包_3

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程技术 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等...

    vc++ 应用源码包_5

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例...

    vc++ 开发实例源码包

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...

    VC++常用的共用函数100多页

    研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5字符 12 改变颜色(整个窗体的控件) 13 改变工程表头栏 13 ◆如何找开...

    数据结构课程设计---人事管理

    在这次课程设计中先后使用了TC2.0、VC++6.0等开发工具,最后调试、生成可执行文件等是在VC下进行的。 在这个简单的人事管理程序中,使用了链表这个动态数据结构。链表是动态数据结构中最简单的一种。它是一种用前后...

    VC++ 专家指导.doc

    (2)VC6.0对VC5.0的兼容性? 83 (3)打印和打印机的问题? 83 (4)CRichEditCtrl滚动条的问题? 84 (5)从数据库中读大于32k的内容? 84 (6)如何获得CRichEditCtrl中字符的位置? 86 (7)如何限制mdi子框架最大化时的大小? 86 ...

Global site tag (gtag.js) - Google Analytics