请问VB中如何存取ORACLE数据库的C
strSql="Selecttbl,priCatalogID,isvalid,OE_row,OE_col,OE_page,slice,db,"strSql=strSql&"cube,userid,createtime,nodeInfo,graphtype,"strSql=strSql&"pagepos,filter,ispublishedFrom"&gstrSchema&"preReport"strSql=strSql&"WherepreRptID="strSql=strSql&Mid(sKey,7)说明:nodeInfo、filter字段为CLOB类型。 ---------------...全部
strSql="Selecttbl,priCatalogID,isvalid,OE_row,OE_col,OE_page,slice,db,"strSql=strSql&"cube,userid,createtime,nodeInfo,graphtype,"strSql=strSql&"pagepos,filter,ispublishedFrom"&gstrSchema&"preReport"strSql=strSql&"WherepreRptID="strSql=strSql&Mid(sKey,7)说明:nodeInfo、filter字段为CLOB类型。
---------------------------------------------------------------在vb中的处理在vb中处理大对象,一般可以用OO4O(oracleobjectsforole)来处理大对象。
这里介绍一种不用0040处理大对象blob的方法。下面这段程序可以将一个文件(文本文件,doc文件,图象文件等)保存到数据库中,并可以将其从数据库读出需要两个commandbuttoncmd1名称cmdsavecaption保存cmd2名称cmdreadcaption读取一个cmddialog控件同时需要创建一张表t_demo(字段id类型number,;字段text类型blob;)exmple3。
OptionExplicitDimrnAsADODB。ConnectionPublicFunctionCreateDataSource(DataSourceAsString,UserIDAsString,PasswordAsString)AsBooleanOnErrorGoT "Provider=OraOledb。
Oracle。1;"&_"password="&Password&";"&_"UserID="&UserID&";"&_"DataSource="&DataSource&";"&_"LocaleIdentifier=2052"。
OpenEndWithCreateDataSource=TrueExitFunctio ()DimrsAsNewADODB。Recordsetrs。ActiveConnection=rnrs。
LockType=adLockOptimisticrs。CursorLocation=adUseClientrs。Source="select*fromt_demo"rs。OpenComDlgDir。
DialogTitle="保存文件"ComDlgDir。Filter="*。*"ComDlgDir。ShowSaveCallBlobToFile(rs。Fields("text"), lename)Setrs=NothingExitSubSetrs=NothingEndSubPrivateSubcmdsave_Click()DimrsAsNewADODB。
Recordsetrs。ActiveConnection=rnrs。LockType=adLockOptimisticrs。CursorLocation=adUseClientrs。Source="select*fromt_demo"rs。
Openrs。AddNewComDlgDir。DialogTitle="选取文件"ComDlgDir。ShowOpenrs。Fields("id")。Value= lename<>""ThenCallFileToBlob(rs。
Fields("text"), lename)rs。UpdateEndIfSetrs=NothingExitSubSetrs=NothingEndSubPrivateSubForm_Load()IfNotCreateDataSource("sid","systemp","manager")ThenMsgBox"Connectionfailure!"EndIfEndSubfldAsADODB。
Field,filenameAsString,OptionalChunkSizeAsLong=8192)DimfnumAsInteger,bytesleftAsLong,bytesAsLongDimtmp()AsByteIf(fld。
AttributesAndadFldLong)=0ThenErr。Raise1001,,"fielddoesn'tsupporttheGetChunkmethod。"EndIfIfDir$(filename)=""ThenErr。
Raise53,,"Filenotfound"fnum=FreeFileOpenfilenameForBinaryAsfnumbytesleft=LOF(fnum)DoWhilebytesleftbytes=bytesleftIfbytes>ChunkSizeThenbytes=ChunkSizeReDimtmp(1Tobytes)AsByteGetfnum,,tmpfld。
AppendChunktmpbytesleft=bytesleft-bytesLoopClose#fnumEndSubSubBlobToFile(fldAsADODB。Field,filenameAsString,OptionalChunkSizeAsLong=8192)DimfnumAsInteger,bytesleftAsLong,bytesAsLongDimtmp()AsByteIf(fld。
AttributesAndadFldLong)=0ThenErr。Raise1001,,"fielddoesn'tsupporttheGetChunkmethod。"EndIfIfDir$(filename)<>""ThenKillfilenamefnum=FreeFileOpenfilenameForBinaryAsfnumbytesleft=fld。
ActualSizeDoWhilebytesleftbytes=bytesleftIfbytes>ChunkSizeThenbytes=ChunkSizetmp=fld。GetChunk(bytes)Put#fnum,,tmpbytesleft=bytesleft-bytesLoopClose#fnumEndSub。
收起