一、引用
#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
分享到:
相关推荐
在vc6.0上简单实现Oracle数据库的数据写入和导出,简单易懂易操作;本人在vc6.0上编译通过,好用!
系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例...
BinXML-src.zip包括两部分,一部分是vc的工程,一部分是java的工程,在Visual C++6.0和eclipse+JDK1.4中都已编译、运行通过。大家可以运行BinXML-bin.zip里面的exe程序,测试一下BinXML文件的加载和保存功能。 对象...
研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5字符 12 改变颜色(整个窗体的控件) 13 改变工程表头栏 13 ◆如何找开...
系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...
系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...
系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程技术 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等...
系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例...
系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...
研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5字符 12 改变颜色(整个窗体的控件) 13 改变工程表头栏 13 ◆如何找开...
在这次课程设计中先后使用了TC2.0、VC++6.0等开发工具,最后调试、生成可执行文件等是在VC下进行的。 在这个简单的人事管理程序中,使用了链表这个动态数据结构。链表是动态数据结构中最简单的一种。它是一种用前后...
(2)VC6.0对VC5.0的兼容性? 83 (3)打印和打印机的问题? 83 (4)CRichEditCtrl滚动条的问题? 84 (5)从数据库中读大于32k的内容? 84 (6)如何获得CRichEditCtrl中字符的位置? 86 (7)如何限制mdi子框架最大化时的大小? 86 ...