编程访问带有varbinrany参数的存储过程(C#与ado版)

原创 2004年09月21日 13:48:00

存储过程:

CREATE  PROCEDURE Zzd

@A1 varbinary(8000)
AS

GO

 

C#:
   SqlConnection cn=null;
   SqlCommand    cmd=null;
   try
   {
    cn=new SqlConnection();
    cn.ConnectionString="data source=192.168.0.199;initial catalog=haha;user id=sa;password=sa";
    cn.Open();
    cmd=cn.CreateCommand();
    cmd.CommandType=CommandType.Text;
    cmd.CommandText="exec zzd @A1";

    SqlParameter param= new SqlParameter();
    param.ParameterName="@A1";
    param.DbType=DbType.Binary;
    param.Direction=ParameterDirection.Input;
    byte [] a=new byte[200];
    SqlBinary bin=new SqlBinary(a);
    param.Value=bin;
    cmd.Parameters.Add(param);

    cmd.ExecuteNonQuery();
   }
   catch(Exception e1)
   {
    string a11=e1.Message;
   }

   if(cmd!=null)
    cmd=null;
   if(cn!=null)
   {
    cn.Close();
    cn=null;
   }

Ado:

 CoInitialize(NULL);
 {
  _ConnectionPtr cn;
  _CommandPtr    cmd;
  _ParameterPtr  para;
  SAFEARRAY *psa=NULL;
  para.CreateInstance(__uuidof(Parameter));
   try
   {
    cn.CreateInstance(__uuidof(Connection));
    cmd.CreateInstance(__uuidof(Command));
    para.CreateInstance(__uuidof(Parameter));

    cn->ConnectionString="Provider=SQLOLEDB.1;User ID=sa;password=sa;Initial Catalog=haha;Data Source=192.168.0.199";
    cn->Open( _bstr_t(L""), _bstr_t(L""), _bstr_t(L""), -1 );
    cmd->ActiveConnection=cn;
    cmd->CommandType=adCmdText;
    cmd->CommandText="exec zzd ?";

    //para->Name=_bstr_t("@A1");
    para->Type=adVarBinary;
    para->Size=8000;
    para->Direction=adParamInput;

    SAFEARRAY *psa;
    SAFEARRAYBOUND rgsabound[1];
    rgsabound[0].lLbound = 0;
    rgsabound[0].cElements = 100;
    psa = SafeArrayCreate(VT_UI1, 1, rgsabound); ///创建SAFEARRAY对象
    char  pChar='C';
            
    //复制数据
    for (long i = 0; i < (long)100; i++)
     SafeArrayPutElement (psa, &i, &pChar);

    VARIANT varBLOB;
    varBLOB.vt = VT_ARRAY | VT_UI1;//varBLOB的类型设置为BYTE类型的数组
    varBLOB.parray = psa;
    para->Value=varBLOB;
    cmd->Parameters->Append(para);
    cmd->Execute(NULL, NULL, adCmdText);
   }
   catch (_com_error &e)
   {
    _bstr_t bstrError = e.Description();
    CString m_strError = (LPCTSTR)bstrError;

   }
   if(psa!=NULL)
   {
    SafeArrayDestroy(psa);
   }
   if(cmd!=NULL)
   {
    cmd=NULL;
   }
   if(cn!=NULL)
   {
    cn->Close();
    cn=NULL;
   }
 }
 CoUninitialize();

版权声明:本文为博主原创文章,未经博主允许不得转载。

数据库访问方式(ODBC OLEDB ADO ADO.NET)

ODBC(Open Database Connectivity,开放数据库互连) 1992年,微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有...
  • lxd8731247769
  • lxd8731247769
  • 2016年01月02日 09:36
  • 1570

ADO数据库编程详解(C++)----初级入门篇

一、概述         ADO即Microsoft ActiveXData Object,是Microsoft继ODBC之后,基于OLE DB技术的一种数据库操作技术,使您能够编写通过...
  • MingoJiang
  • MingoJiang
  • 2013年01月22日 22:40
  • 15916

[C#]ADO访问多数据库的C#库

[C#]ADO访问多数据库的C#库 罗朝辉 (http://blog.csdn.net/kesalin/) 本文遵循“署名-非商业用途-保持一致”创作公用协议 一,C# Database...
  • kesalin
  • kesalin
  • 2013年03月27日 19:16
  • 6028

MFC中ADO方式操作数据库实例

连接ACCESS为例:  C++代码   //头文件   #pragma once           #include "math.h"           #im...
  • u011135902
  • u011135902
  • 2015年04月15日 18:08
  • 501

Python学习笔记——ADO访问数据库

因为工作中用到ADO访问数据库,在这做一个记录,文中实例是Python通过ADO访问SQL Server 2005数据库。 ADO (ActiveX Data Objects,ActiveX数据对象)...
  • xxyy142857
  • xxyy142857
  • 2015年07月15日 14:09
  • 1222

VC用ADO访问数据库

VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看。  正文  一、ADO概述  ADO是Microsoft为最新和最强大的数据访问...
  • worldy
  • worldy
  • 2013年09月21日 11:18
  • 4546

Windows下C++访问数据库(ADO)

C++利用ADO访问数据库还是比较方便的,我参考网上其它资料把ADO到一个类中,这样调用起来会更加的方便 这个类单线程访问数据库没有问题,提供了查询、增加、删除和修改的接口。 并行访问的话会有...
  • luke2834
  • luke2834
  • 2015年08月19日 12:07
  • 1845

在VS2010下MFC采用ADO方式连接ACCESS数据库(详细过程)

第一步:首先建立基于对话框的MFC应用程序Library,然后添加一个用户登录界面如图: 并建立此对话框的类LoginDlg ,在类中新建两个变量CString m_strName; ...
  • u012816020
  • u012816020
  • 2015年06月20日 16:33
  • 1832

ADO中怎么使用参数化查询

C/C++ code ? 1 2 3 4 5 6 7 8 //Command因为参数无法清空,不太好操作,所...
  • u011300819
  • u011300819
  • 2017年05月24日 09:56
  • 377

C++ ADO方式连接mysql数据库

对于软件开发其实说白了就是在不停地和数据打交道, 所以数据库的操作是必不可少的, 接下来介绍VC开发中利用ADO建立ODBC数据源来访问MySQL数据库.        从我接触的数据库编程方式来说,...
  • lbcab
  • lbcab
  • 2016年05月06日 10:02
  • 4115
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编程访问带有varbinrany参数的存储过程(C#与ado版)
举报原因:
原因补充:

(最多只允许输入30个字)