欢迎访问:常州市武进区嘉泽中心小学网站 !今天是:
栏目列表
您现在的位置是:首页>>教师>>计算机技术>>程序设计>>杂项>>文章内容
使用ADO执行存储过程
发布时间:2008-11-20   点击:   来源:本站原创   录入者:佚名
  http://{域名已经过期}/article/mfc_database/0152692838.htm

ADO使你能够在客户程序中通过数据提供者来方便地处理数据.ADO主要的优点是容易使用、高速、低内存、磁盘占用
在本文的示例工程中我们可以执行存储过程,传递参数给存储过程并接收它的返回值,以下是此过程的主要代码。



{  

   CString strTmp;

  

   CString m_sdatasource; // Data source name

   CString m_sUserID;     // User Id

   CString m_sPassword;   // Password



   // GET the above values from the user 

   //Without creating Datasource we can use database by the following   code

   /* strTmp.Format( "driver={sql server};"

                           "server=%s;"

                           "Database=%s;""UID=%s;""PWD=%s;",

                           m_server,m_sdatabase,m_sUserID,m_sPassword );*/



   strTmp.Format( "dsn=%s;""UID=%s;""PWD=%s;",m_sdatasource,m_sUserID,m_sPassword );

   _bstr_t         bstrSQLServerConnect;

   _bstr_t bstrProc =( L"sp_StartByteImport" );; //Stored procedure name

   _variant_t Final;

   bstrSQLServerConnect = (LPCTSTR) strTmp;

   m_status="Empty File";

   _ConnectionPtr  Conn1; // connection object pointer

   _CommandPtr     Cmd1;  // command object pointer

   _RecordsetPtr   Rs1; // recordset object pointer

   bool            bvalid = false;

   try

   {

      Conn1.CreateInstance( __uuidof( Connection ) ); // Instantiating connection object

	  Conn1->ConnectionString = bstrSQLServerConnect; // giving the sqlconnection

	  Conn1->Open( bstrEmpty, bstrEmpty, bstrEmpty ); // open the connection object

	  Cmd1.CreateInstance( __uuidof( Command ) ); // creating command object

	  Cmd1->ActiveConnection = Conn1;             // giving the connection handle

	  Cmd1->CommandText      = _bstr_t( bstrProc ); // passing the stored procedue

	  Cmd1->CommandType      = adCmdStoredProc;     // type

	  Cmd1->Parameters->Refresh();                 // passing string value as argument to stored procedure

	  Cmd1->Parameters->Item[ _variant_t( (long) 1 ) ]->Value = _variant_t( (LPCTSTR)m_sfilename );

	  Rs1 = Cmd1->Execute( &vtEmpty, &vtEmpty2, adCmdUnknown ); // executing the stored procedure and storing the recordset value

	  bvalid = true;

	  Final  = Rs1->Fields->GetItem( _variant_t( 0L ) )->Value; // getting the first column value of the result row

	  strTmp.Format( "%s", CrackStrVariant( Final) ); // to see the value

	  // put your code to see all column values   

   }

   catch( CException *e ) // trapping all error messages

   {

	  TCHAR    szCause[255];    

      e->GetErrorMessage(szCause, 255);

	  m_status=szCause;

   }

   catch( _com_error &e )

   {

	m_status=e.ErrorMessage( );

   }

   catch(...)

   {

	m_status="Error while executing the Import";



   }

    //we need to create the stored procedures below before running the application

	//CREATE PROCEDURE sp_AddAccountingInfo @nfinal int, @pcDate datetime,

	//@pcURL varchar (250), @pcTop varchar (250),

	//@pcQueryString varchar (250), @pcBytes int, @pcRequests int AS

       /*

		Do your operation here

	*/

	//CREATE PROCEDURE sp_AddAccountingInfo

	//@nfinal int,

	//@pcDate datetime,

	//@pcURL varchar (250),

	//@pcTop varchar (250),

	//@pcQueryString varchar (250),

	//@pcBytes int,

	//@pcRequests int

	//AS

	/*

		Put your code here

	*/

}


附件:
    关闭窗口
    打印文档
    账号登录
    保持登录 忘记密码?
    账号与武进教师培训平台同步