1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski #ifndef _CONNECTIVITY_ADO_AWRAPADO_HXX_ 24*b1cdbd2cSJim Jagielski #define _CONNECTIVITY_ADO_AWRAPADO_HXX_ 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/PropertyAttribute.hpp> 27*b1cdbd2cSJim Jagielski 28*b1cdbd2cSJim Jagielski // Includes fuer ADO 29*b1cdbd2cSJim Jagielski #include "ado_pre_sys_include.h" 30*b1cdbd2cSJim Jagielski #include <oledb.h> 31*b1cdbd2cSJim Jagielski #include <ocidl.h> 32*b1cdbd2cSJim Jagielski #include <adoint.h> 33*b1cdbd2cSJim Jagielski #include "ado_post_sys_include.h" 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski #include "ado/adoimp.hxx" 37*b1cdbd2cSJim Jagielski #include "ado/Aolewrap.hxx" 38*b1cdbd2cSJim Jagielski #include "ado/Aolevariant.hxx" 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski namespace connectivity 41*b1cdbd2cSJim Jagielski { 42*b1cdbd2cSJim Jagielski namespace ado 43*b1cdbd2cSJim Jagielski { 44*b1cdbd2cSJim Jagielski class WpADOConnection; 45*b1cdbd2cSJim Jagielski class WpADOCommand; 46*b1cdbd2cSJim Jagielski class WpADORecordset; 47*b1cdbd2cSJim Jagielski class WpADOField; 48*b1cdbd2cSJim Jagielski class WpADOParameter; 49*b1cdbd2cSJim Jagielski class WpADOError; 50*b1cdbd2cSJim Jagielski class WpADOProperty; 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski typedef WpOLEAppendCollection< ADOFields, ADOField, WpADOField> WpADOFields; 53*b1cdbd2cSJim Jagielski typedef WpOLECollection< ADOProperties, ADOProperty, WpADOProperty> WpADOProperties; 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ 56*b1cdbd2cSJim Jagielski class WpADOConnection : public WpOLEBase<ADOConnection> 57*b1cdbd2cSJim Jagielski { 58*b1cdbd2cSJim Jagielski friend class WpADOCommand; 59*b1cdbd2cSJim Jagielski public: 60*b1cdbd2cSJim Jagielski WpADOConnection(ADOConnection * pInt)61*b1cdbd2cSJim Jagielski WpADOConnection(ADOConnection* pInt) : WpOLEBase<ADOConnection>(pInt){} 62*b1cdbd2cSJim Jagielski WpADOConnection(const WpADOConnection & rhs)63*b1cdbd2cSJim Jagielski WpADOConnection(const WpADOConnection& rhs){operator=(rhs);} 64*b1cdbd2cSJim Jagielski operator =(const WpADOConnection & rhs)65*b1cdbd2cSJim Jagielski WpADOConnection& operator=(const WpADOConnection& rhs) 66*b1cdbd2cSJim Jagielski {WpOLEBase<ADOConnection>::operator=(rhs); return *this;} 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski ////////////////////////////////////////////////////////////////////// 69*b1cdbd2cSJim Jagielski 70*b1cdbd2cSJim Jagielski WpADOProperties get_Properties() const; 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski rtl::OUString GetConnectionString() const; 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski sal_Bool PutConnectionString(const ::rtl::OUString &aCon) const; 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski sal_Int32 GetCommandTimeout() const; 77*b1cdbd2cSJim Jagielski 78*b1cdbd2cSJim Jagielski void PutCommandTimeout(sal_Int32 nRet); 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski sal_Int32 GetConnectionTimeout() const ; 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski void PutConnectionTimeout(sal_Int32 nRet); 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielski sal_Bool Close( ) ; 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski sal_Bool Execute(const ::rtl::OUString& _CommandText,OLEVariant& RecordsAffected,long Options, WpADORecordset** ppiRset); 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski sal_Bool BeginTrans(); 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski sal_Bool CommitTrans( ) ; 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski sal_Bool RollbackTrans( ); 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski sal_Bool Open(const ::rtl::OUString& ConnectionString, const ::rtl::OUString& UserID,const ::rtl::OUString& Password,long Options); 95*b1cdbd2cSJim Jagielski 96*b1cdbd2cSJim Jagielski sal_Bool GetErrors(ADOErrors** pErrors); 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski ::rtl::OUString GetDefaultDatabase() const; 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski sal_Bool PutDefaultDatabase(const ::rtl::OUString& _bstr); 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski IsolationLevelEnum get_IsolationLevel() const ; 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski sal_Bool put_IsolationLevel(const IsolationLevelEnum& eNum) ; 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski sal_Int32 get_Attributes() const; 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski sal_Bool put_Attributes(sal_Int32 nRet); 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski CursorLocationEnum get_CursorLocation() const; 111*b1cdbd2cSJim Jagielski 112*b1cdbd2cSJim Jagielski sal_Bool put_CursorLocation(const CursorLocationEnum &eNum) ; 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski ConnectModeEnum get_Mode() const; 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski sal_Bool put_Mode(const ConnectModeEnum &eNum) ; 117*b1cdbd2cSJim Jagielski 118*b1cdbd2cSJim Jagielski ::rtl::OUString get_Provider() const; 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski sal_Bool put_Provider(const ::rtl::OUString& _bstr); 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski sal_Int32 get_State() const; 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski sal_Bool OpenSchema(SchemaEnum eNum,OLEVariant& Restrictions,OLEVariant& SchemaID,ADORecordset**pprset); 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski ::rtl::OUString get_Version() const; 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski // special methods 129*b1cdbd2cSJim Jagielski ADORecordset* getExportedKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ); 130*b1cdbd2cSJim Jagielski ADORecordset* getImportedKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ); 131*b1cdbd2cSJim Jagielski ADORecordset* getPrimaryKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ); 132*b1cdbd2cSJim Jagielski ADORecordset* getIndexInfo( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, sal_Bool unique, sal_Bool approximate ); 133*b1cdbd2cSJim Jagielski ADORecordset* getTablePrivileges( const ::com::sun::star::uno::Any& catalog, 134*b1cdbd2cSJim Jagielski const ::rtl::OUString& schemaPattern, 135*b1cdbd2cSJim Jagielski const ::rtl::OUString& tableNamePattern ); 136*b1cdbd2cSJim Jagielski ADORecordset* getCrossReference( const ::com::sun::star::uno::Any& primaryCatalog, 137*b1cdbd2cSJim Jagielski const ::rtl::OUString& primarySchema, 138*b1cdbd2cSJim Jagielski const ::rtl::OUString& primaryTable, 139*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& foreignCatalog, 140*b1cdbd2cSJim Jagielski const ::rtl::OUString& foreignSchema, 141*b1cdbd2cSJim Jagielski const ::rtl::OUString& foreignTable); 142*b1cdbd2cSJim Jagielski ADORecordset* getProcedures( const ::com::sun::star::uno::Any& catalog, 143*b1cdbd2cSJim Jagielski const ::rtl::OUString& schemaPattern, 144*b1cdbd2cSJim Jagielski const ::rtl::OUString& procedureNamePattern ); 145*b1cdbd2cSJim Jagielski ADORecordset* getProcedureColumns( const ::com::sun::star::uno::Any& catalog, 146*b1cdbd2cSJim Jagielski const ::rtl::OUString& schemaPattern, 147*b1cdbd2cSJim Jagielski const ::rtl::OUString& procedureNamePattern, 148*b1cdbd2cSJim Jagielski const ::rtl::OUString& columnNamePattern ); 149*b1cdbd2cSJim Jagielski ADORecordset* getTables( const ::com::sun::star::uno::Any& catalog, 150*b1cdbd2cSJim Jagielski const ::rtl::OUString& schemaPattern, 151*b1cdbd2cSJim Jagielski const ::rtl::OUString& tableNamePattern, 152*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Sequence< ::rtl::OUString >& types ); 153*b1cdbd2cSJim Jagielski ADORecordset* getColumns( const ::com::sun::star::uno::Any& catalog, 154*b1cdbd2cSJim Jagielski const ::rtl::OUString& schemaPattern, 155*b1cdbd2cSJim Jagielski const ::rtl::OUString& tableNamePattern, 156*b1cdbd2cSJim Jagielski const ::rtl::OUString& columnNamePattern ); 157*b1cdbd2cSJim Jagielski ADORecordset* getColumnPrivileges( const ::com::sun::star::uno::Any& catalog, 158*b1cdbd2cSJim Jagielski const ::rtl::OUString& schemaPattern, 159*b1cdbd2cSJim Jagielski const ::rtl::OUString& table, 160*b1cdbd2cSJim Jagielski const ::rtl::OUString& columnNamePattern ); 161*b1cdbd2cSJim Jagielski ADORecordset* getTypeInfo(DataTypeEnum _eType = adEmpty ); 162*b1cdbd2cSJim Jagielski }; 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ 165*b1cdbd2cSJim Jagielski class WpADOCommand : public WpOLEBase<ADOCommand> 166*b1cdbd2cSJim Jagielski { 167*b1cdbd2cSJim Jagielski public: WpADOCommand()168*b1cdbd2cSJim Jagielski WpADOCommand(){} 169*b1cdbd2cSJim Jagielski // Konstruktoren, operator= 170*b1cdbd2cSJim Jagielski // diese rufen nur die Oberklasse WpADOCommand(ADOCommand * pInt)171*b1cdbd2cSJim Jagielski WpADOCommand(ADOCommand* pInt) : WpOLEBase<ADOCommand>(pInt){} 172*b1cdbd2cSJim Jagielski WpADOCommand(const WpADOCommand & rhs)173*b1cdbd2cSJim Jagielski WpADOCommand(const WpADOCommand& rhs){operator=(rhs);} 174*b1cdbd2cSJim Jagielski operator =(const WpADOCommand & rhs)175*b1cdbd2cSJim Jagielski WpADOCommand& operator=(const WpADOCommand& rhs) 176*b1cdbd2cSJim Jagielski { 177*b1cdbd2cSJim Jagielski WpOLEBase<ADOCommand>::operator=(rhs); return *this;} 178*b1cdbd2cSJim Jagielski 179*b1cdbd2cSJim Jagielski ////////////////////////////////////////////////////////////////////// 180*b1cdbd2cSJim Jagielski 181*b1cdbd2cSJim Jagielski sal_Bool putref_ActiveConnection( WpADOConnection *pCon); 182*b1cdbd2cSJim Jagielski 183*b1cdbd2cSJim Jagielski void put_ActiveConnection(/* [in] */ const OLEVariant& vConn); 184*b1cdbd2cSJim Jagielski void Create(); 185*b1cdbd2cSJim Jagielski sal_Int32 get_State() const; 186*b1cdbd2cSJim Jagielski ::rtl::OUString get_CommandText() const; 187*b1cdbd2cSJim Jagielski sal_Bool put_CommandText(const ::rtl::OUString &aCon) ; 188*b1cdbd2cSJim Jagielski sal_Int32 get_CommandTimeout() const; 189*b1cdbd2cSJim Jagielski void put_CommandTimeout(sal_Int32 nRet); 190*b1cdbd2cSJim Jagielski sal_Bool get_Prepared() const; 191*b1cdbd2cSJim Jagielski sal_Bool put_Prepared(VARIANT_BOOL bPrepared) const; 192*b1cdbd2cSJim Jagielski sal_Bool Execute(OLEVariant& RecordsAffected,OLEVariant& Parameters,long Options, ADORecordset** ppiRset); 193*b1cdbd2cSJim Jagielski ADOParameter* CreateParameter(const ::rtl::OUString &_bstr,DataTypeEnum Type,ParameterDirectionEnum Direction,long nSize,const OLEVariant &Value); 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski ADOParameters* get_Parameters() const; 196*b1cdbd2cSJim Jagielski sal_Bool put_CommandType( /* [in] */ CommandTypeEnum lCmdType); 197*b1cdbd2cSJim Jagielski CommandTypeEnum get_CommandType( ) const ; 198*b1cdbd2cSJim Jagielski // gibt den Namen des Feldes zur"ueck 199*b1cdbd2cSJim Jagielski ::rtl::OUString GetName() const ; 200*b1cdbd2cSJim Jagielski sal_Bool put_Name(const ::rtl::OUString& _Name); 201*b1cdbd2cSJim Jagielski sal_Bool Cancel(); 202*b1cdbd2cSJim Jagielski }; 203*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ 204*b1cdbd2cSJim Jagielski class WpADOError : public WpOLEBase<ADOError> 205*b1cdbd2cSJim Jagielski { 206*b1cdbd2cSJim Jagielski public: 207*b1cdbd2cSJim Jagielski 208*b1cdbd2cSJim Jagielski // Konstruktoren, operator= 209*b1cdbd2cSJim Jagielski // diese rufen nur die Oberklasse 210*b1cdbd2cSJim Jagielski WpADOError(ADOError * pInt)211*b1cdbd2cSJim Jagielski WpADOError(ADOError* pInt):WpOLEBase<ADOError>(pInt){} 212*b1cdbd2cSJim Jagielski WpADOError(const WpADOError & rhs)213*b1cdbd2cSJim Jagielski WpADOError(const WpADOError& rhs){operator=(rhs);} 214*b1cdbd2cSJim Jagielski operator =(const WpADOError & rhs)215*b1cdbd2cSJim Jagielski WpADOError& operator=(const WpADOError& rhs) 216*b1cdbd2cSJim Jagielski {WpOLEBase<ADOError>::operator=(rhs); return *this;} 217*b1cdbd2cSJim Jagielski 218*b1cdbd2cSJim Jagielski ////////////////////////////////////////////////////////////////////// 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski ::rtl::OUString GetDescription() const; 221*b1cdbd2cSJim Jagielski 222*b1cdbd2cSJim Jagielski ::rtl::OUString GetSource() const ; 223*b1cdbd2cSJim Jagielski 224*b1cdbd2cSJim Jagielski sal_Int32 GetNumber() const ; 225*b1cdbd2cSJim Jagielski ::rtl::OUString GetSQLState() const ; 226*b1cdbd2cSJim Jagielski sal_Int32 GetNativeError() const ; 227*b1cdbd2cSJim Jagielski }; 228*b1cdbd2cSJim Jagielski 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski 231*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ 232*b1cdbd2cSJim Jagielski class WpADOField : public WpOLEBase<ADOField> 233*b1cdbd2cSJim Jagielski { 234*b1cdbd2cSJim Jagielski // friend class WpADOFields; 235*b1cdbd2cSJim Jagielski public: 236*b1cdbd2cSJim Jagielski 237*b1cdbd2cSJim Jagielski // Konstruktoren, operator= 238*b1cdbd2cSJim Jagielski // diese rufen nur die Oberklasse WpADOField(ADOField * pInt=NULL)239*b1cdbd2cSJim Jagielski WpADOField(ADOField* pInt=NULL):WpOLEBase<ADOField>(pInt){} WpADOField(const WpADOField & rhs)240*b1cdbd2cSJim Jagielski WpADOField(const WpADOField& rhs){operator=(rhs);} 241*b1cdbd2cSJim Jagielski operator =(const WpADOField & rhs)242*b1cdbd2cSJim Jagielski WpADOField& operator=(const WpADOField& rhs) 243*b1cdbd2cSJim Jagielski {WpOLEBase<ADOField>::operator=(rhs); return *this;} 244*b1cdbd2cSJim Jagielski ////////////////////////////////////////////////////////////////////// 245*b1cdbd2cSJim Jagielski 246*b1cdbd2cSJim Jagielski WpADOProperties get_Properties(); 247*b1cdbd2cSJim Jagielski sal_Int32 GetActualSize() const ; 248*b1cdbd2cSJim Jagielski sal_Int32 GetAttributes() const ; 249*b1cdbd2cSJim Jagielski sal_Int32 GetStatus() const ; 250*b1cdbd2cSJim Jagielski sal_Int32 GetDefinedSize() const ; 251*b1cdbd2cSJim Jagielski // gibt den Namen des Feldes zur"ueck 252*b1cdbd2cSJim Jagielski ::rtl::OUString GetName() const ; 253*b1cdbd2cSJim Jagielski DataTypeEnum GetADOType() const ; 254*b1cdbd2cSJim Jagielski void get_Value(OLEVariant& aValVar) const ; 255*b1cdbd2cSJim Jagielski OLEVariant get_Value() const; 256*b1cdbd2cSJim Jagielski sal_Bool PutValue(const OLEVariant& aVariant); 257*b1cdbd2cSJim Jagielski sal_Int32 GetPrecision() const ; 258*b1cdbd2cSJim Jagielski sal_Int32 GetNumericScale() const ; 259*b1cdbd2cSJim Jagielski sal_Bool AppendChunk(const OLEVariant& _Variant); 260*b1cdbd2cSJim Jagielski OLEVariant GetChunk(long Length) const; 261*b1cdbd2cSJim Jagielski void GetChunk(long Length,OLEVariant &aValVar) const; 262*b1cdbd2cSJim Jagielski OLEVariant GetOriginalValue() const; 263*b1cdbd2cSJim Jagielski void GetOriginalValue(OLEVariant &aValVar) const; 264*b1cdbd2cSJim Jagielski OLEVariant GetUnderlyingValue() const; 265*b1cdbd2cSJim Jagielski 266*b1cdbd2cSJim Jagielski void GetUnderlyingValue(OLEVariant &aValVar) const; 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski sal_Bool PutPrecision(sal_Int8 _prec); 269*b1cdbd2cSJim Jagielski 270*b1cdbd2cSJim Jagielski sal_Bool PutNumericScale(sal_Int8 _prec); 271*b1cdbd2cSJim Jagielski 272*b1cdbd2cSJim Jagielski void PutADOType(DataTypeEnum eType) ; 273*b1cdbd2cSJim Jagielski 274*b1cdbd2cSJim Jagielski sal_Bool PutDefinedSize(sal_Int32 _nDefSize); 275*b1cdbd2cSJim Jagielski 276*b1cdbd2cSJim Jagielski sal_Bool PutAttributes(sal_Int32 _nDefSize); 277*b1cdbd2cSJim Jagielski }; 278*b1cdbd2cSJim Jagielski 279*b1cdbd2cSJim Jagielski 280*b1cdbd2cSJim Jagielski 281*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ 282*b1cdbd2cSJim Jagielski class WpADOProperty: public WpOLEBase<ADOProperty> 283*b1cdbd2cSJim Jagielski { 284*b1cdbd2cSJim Jagielski public: 285*b1cdbd2cSJim Jagielski // Konstruktoren, operator= 286*b1cdbd2cSJim Jagielski // diese rufen nur die Oberklasse WpADOProperty(ADOProperty * pInt=NULL)287*b1cdbd2cSJim Jagielski WpADOProperty(ADOProperty* pInt=NULL):WpOLEBase<ADOProperty>(pInt){} WpADOProperty(const WpADOProperty & rhs)288*b1cdbd2cSJim Jagielski WpADOProperty(const WpADOProperty& rhs){operator=(rhs);} operator =(const WpADOProperty & rhs)289*b1cdbd2cSJim Jagielski WpADOProperty& operator=(const WpADOProperty& rhs) 290*b1cdbd2cSJim Jagielski {WpOLEBase<ADOProperty>::operator=(rhs); return *this;} 291*b1cdbd2cSJim Jagielski ////////////////////////////////////////////////////////////////////// 292*b1cdbd2cSJim Jagielski 293*b1cdbd2cSJim Jagielski OLEVariant GetValue() const; 294*b1cdbd2cSJim Jagielski void GetValue(OLEVariant &aValVar) const; 295*b1cdbd2cSJim Jagielski sal_Bool PutValue(const OLEVariant &aValVar) ; 296*b1cdbd2cSJim Jagielski ::rtl::OUString GetName() const ; 297*b1cdbd2cSJim Jagielski DataTypeEnum GetADOType() const ; 298*b1cdbd2cSJim Jagielski sal_Int32 GetAttributes() const ; 299*b1cdbd2cSJim Jagielski sal_Bool PutAttributes(sal_Int32 _nDefSize); 300*b1cdbd2cSJim Jagielski }; 301*b1cdbd2cSJim Jagielski 302*b1cdbd2cSJim Jagielski 303*b1cdbd2cSJim Jagielski class WpADORecordset : public WpOLEBase<ADORecordset> 304*b1cdbd2cSJim Jagielski { 305*b1cdbd2cSJim Jagielski 306*b1cdbd2cSJim Jagielski public: 307*b1cdbd2cSJim Jagielski // Konstruktoren, operator= 308*b1cdbd2cSJim Jagielski // diese rufen nur die Oberklasse WpADORecordset(ADORecordset * pInt=NULL)309*b1cdbd2cSJim Jagielski WpADORecordset(ADORecordset* pInt=NULL):WpOLEBase<ADORecordset>(pInt){} WpADORecordset(const WpADORecordset & rhs)310*b1cdbd2cSJim Jagielski WpADORecordset(const WpADORecordset& rhs){operator=(rhs);} operator =(const WpADORecordset & rhs)311*b1cdbd2cSJim Jagielski WpADORecordset& operator=(const WpADORecordset& rhs) 312*b1cdbd2cSJim Jagielski { 313*b1cdbd2cSJim Jagielski WpOLEBase<ADORecordset>::operator=(rhs); 314*b1cdbd2cSJim Jagielski return *this; 315*b1cdbd2cSJim Jagielski } ~WpADORecordset()316*b1cdbd2cSJim Jagielski ~WpADORecordset() 317*b1cdbd2cSJim Jagielski { 318*b1cdbd2cSJim Jagielski // if(pInterface && get_State() == adStateOpen) 319*b1cdbd2cSJim Jagielski // Close(); 320*b1cdbd2cSJim Jagielski } 321*b1cdbd2cSJim Jagielski ////////////////////////////////////////////////////////////////////// 322*b1cdbd2cSJim Jagielski void Create(); 323*b1cdbd2cSJim Jagielski sal_Bool Open( 324*b1cdbd2cSJim Jagielski /* [optional][in] */ VARIANT Source, 325*b1cdbd2cSJim Jagielski /* [optional][in] */ VARIANT ActiveConnection, 326*b1cdbd2cSJim Jagielski /* [defaultvalue][in] */ CursorTypeEnum CursorType, 327*b1cdbd2cSJim Jagielski /* [defaultvalue][in] */ LockTypeEnum LockType, 328*b1cdbd2cSJim Jagielski /* [defaultvalue][in] */ sal_Int32 Options); 329*b1cdbd2cSJim Jagielski LockTypeEnum GetLockType(); 330*b1cdbd2cSJim Jagielski void Close(); 331*b1cdbd2cSJim Jagielski sal_Bool Cancel() const; 332*b1cdbd2cSJim Jagielski sal_Int32 get_State( ); 333*b1cdbd2cSJim Jagielski sal_Bool Supports( /* [in] */ CursorOptionEnum CursorOptions); 334*b1cdbd2cSJim Jagielski PositionEnum get_AbsolutePosition(); 335*b1cdbd2cSJim Jagielski void GetDataSource(IUnknown** pIUnknown) const ; 336*b1cdbd2cSJim Jagielski void PutRefDataSource(IUnknown* pIUnknown); 337*b1cdbd2cSJim Jagielski void GetBookmark(VARIANT& var); 338*b1cdbd2cSJim Jagielski OLEVariant GetBookmark(); 339*b1cdbd2cSJim Jagielski CompareEnum CompareBookmarks(const OLEVariant& left,const OLEVariant& right); 340*b1cdbd2cSJim Jagielski sal_Bool SetBookmark(const OLEVariant &pSafeAr); 341*b1cdbd2cSJim Jagielski WpADOFields GetFields() const; 342*b1cdbd2cSJim Jagielski sal_Bool Move(sal_Int32 nRows, VARIANT aBmk); 343*b1cdbd2cSJim Jagielski sal_Bool MoveNext(); 344*b1cdbd2cSJim Jagielski sal_Bool MovePrevious(); 345*b1cdbd2cSJim Jagielski sal_Bool MoveFirst(); 346*b1cdbd2cSJim Jagielski sal_Bool MoveLast(); 347*b1cdbd2cSJim Jagielski 348*b1cdbd2cSJim Jagielski sal_Bool IsAtBOF() const; 349*b1cdbd2cSJim Jagielski sal_Bool IsAtEOF() const; 350*b1cdbd2cSJim Jagielski sal_Bool Delete(AffectEnum eNum); 351*b1cdbd2cSJim Jagielski sal_Bool AddNew(const OLEVariant &FieldList,const OLEVariant &Values); 352*b1cdbd2cSJim Jagielski sal_Bool Update(const OLEVariant &FieldList,const OLEVariant &Values); 353*b1cdbd2cSJim Jagielski sal_Bool CancelUpdate(); 354*b1cdbd2cSJim Jagielski WpADOProperties get_Properties() const; 355*b1cdbd2cSJim Jagielski sal_Bool NextRecordset(OLEVariant& RecordsAffected,ADORecordset** ppiRset); 356*b1cdbd2cSJim Jagielski sal_Bool get_RecordCount(sal_Int32 &_nRet) const; 357*b1cdbd2cSJim Jagielski sal_Bool get_MaxRecords(sal_Int32 &_nRet) const; 358*b1cdbd2cSJim Jagielski sal_Bool put_MaxRecords(sal_Int32 _nRet); 359*b1cdbd2cSJim Jagielski sal_Bool get_CursorType(CursorTypeEnum &_nRet) const; 360*b1cdbd2cSJim Jagielski sal_Bool put_CursorType(CursorTypeEnum _nRet); 361*b1cdbd2cSJim Jagielski sal_Bool get_LockType(LockTypeEnum &_nRet) const; 362*b1cdbd2cSJim Jagielski sal_Bool put_LockType(LockTypeEnum _nRet); 363*b1cdbd2cSJim Jagielski sal_Bool get_CacheSize(sal_Int32 &_nRet) const; 364*b1cdbd2cSJim Jagielski sal_Bool put_CacheSize(sal_Int32 _nRet); 365*b1cdbd2cSJim Jagielski sal_Bool UpdateBatch(AffectEnum AffectRecords); 366*b1cdbd2cSJim Jagielski }; 367*b1cdbd2cSJim Jagielski 368*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ 369*b1cdbd2cSJim Jagielski class WpADOParameter:public WpOLEBase<ADOParameter> 370*b1cdbd2cSJim Jagielski { 371*b1cdbd2cSJim Jagielski public: 372*b1cdbd2cSJim Jagielski // Konstruktoren, operator= 373*b1cdbd2cSJim Jagielski // diese rufen nur die Oberklasse WpADOParameter(ADOParameter * pInt)374*b1cdbd2cSJim Jagielski WpADOParameter(ADOParameter* pInt):WpOLEBase<ADOParameter>(pInt){} WpADOParameter(const WpADOParameter & rhs)375*b1cdbd2cSJim Jagielski WpADOParameter(const WpADOParameter& rhs):WpOLEBase<ADOParameter>(rhs){} operator =(const WpADOParameter & rhs)376*b1cdbd2cSJim Jagielski WpADOParameter& operator=(const WpADOParameter& rhs) 377*b1cdbd2cSJim Jagielski {WpOLEBase<ADOParameter>::operator=(rhs); return *this;} 378*b1cdbd2cSJim Jagielski ////////////////////////////////////////////////////////////////////// 379*b1cdbd2cSJim Jagielski 380*b1cdbd2cSJim Jagielski ::rtl::OUString GetName() const ; 381*b1cdbd2cSJim Jagielski DataTypeEnum GetADOType() const ; 382*b1cdbd2cSJim Jagielski void put_Type(const DataTypeEnum& _eType); 383*b1cdbd2cSJim Jagielski sal_Bool put_Size(const sal_Int32& _nSize); 384*b1cdbd2cSJim Jagielski sal_Int32 GetAttributes() const ; 385*b1cdbd2cSJim Jagielski sal_Int32 GetPrecision() const ; 386*b1cdbd2cSJim Jagielski sal_Int32 GetNumericScale() const ; 387*b1cdbd2cSJim Jagielski ParameterDirectionEnum get_Direction() const; 388*b1cdbd2cSJim Jagielski void GetValue(OLEVariant& aValVar) const ; 389*b1cdbd2cSJim Jagielski OLEVariant GetValue() const; 390*b1cdbd2cSJim Jagielski sal_Bool PutValue(const OLEVariant& aVariant); 391*b1cdbd2cSJim Jagielski sal_Bool AppendChunk(const OLEVariant& aVariant); 392*b1cdbd2cSJim Jagielski }; 393*b1cdbd2cSJim Jagielski 394*b1cdbd2cSJim Jagielski class OTools 395*b1cdbd2cSJim Jagielski { 396*b1cdbd2cSJim Jagielski public: 397*b1cdbd2cSJim Jagielski /** putValue set the property value at the ado column 398*b1cdbd2cSJim Jagielski @param _rProps the properties where to set 399*b1cdbd2cSJim Jagielski @param _aPosition which property to set 400*b1cdbd2cSJim Jagielski @param _aValVar the value to set 401*b1cdbd2cSJim Jagielski */ 402*b1cdbd2cSJim Jagielski static void putValue(const WpADOProperties& _rProps,const OLEVariant &_aPosition,const OLEVariant &_aValVar); 403*b1cdbd2cSJim Jagielski 404*b1cdbd2cSJim Jagielski /** getValue returns a specific property value 405*b1cdbd2cSJim Jagielski @param _rProps the properties where to set 406*b1cdbd2cSJim Jagielski @param _aPosition the property 407*b1cdbd2cSJim Jagielski 408*b1cdbd2cSJim Jagielski @return the property value 409*b1cdbd2cSJim Jagielski */ 410*b1cdbd2cSJim Jagielski static OLEVariant getValue(const WpADOProperties& _rProps,const OLEVariant &_aPosition); 411*b1cdbd2cSJim Jagielski }; 412*b1cdbd2cSJim Jagielski } 413*b1cdbd2cSJim Jagielski } 414*b1cdbd2cSJim Jagielski #endif //_CONNECTIVITY_ADO_AWRAPADO_HXX_ 415*b1cdbd2cSJim Jagielski 416