CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  Access

急,怎样将OLE对象导入到文件中

楼主zangyice()2003-08-02 11:52:29 在 其他数据库开发 / Access 提问

本人需要将OLE对象写入到一个文件中,然后再将此数据从文件倒入到OLE对象中,如何处理,急 问题点数:0、回复次数:16Top

1 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2003-08-02 17:34:53 得分 0

http://www.access911.net/index.asp?board=4&mode=3&recordid=75FAB21E12DC  
   
  http://www.access911.net/index.asp?board=4&mode=3&recordid=74FAB51E13DCTop

2 楼zjcxc(邹建)回复于 2003-08-02 20:59:42 得分 0

我知道程序中是可以的.Top

3 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2003-08-02 22:25:24 得分 0

能否说出如何写程序,我知道可以通过去掉头字节来得到ole引擎处理过的文件,但是相关资料不足,只能处理少数文件,zjcxc(邹建)   你有就请公布一下Top

4 楼zangyice()回复于 2003-08-09 12:40:49 得分 0

希望能介绍一下如何处理。Top

5 楼tmtony(轻烟)回复于 2003-08-18 20:45:40 得分 0

可以处理出来,方法也是处理头文件,但必须先分析class知道其扩展名才能将其另存为正确的文件。Top

6 楼cx3322()回复于 2003-08-19 18:44:55 得分 0

OLE的语法句子书上有呀,先写怎样连接到该文件中去,Top

7 楼HsyPrg(图灵心)回复于 2003-09-26 14:49:08 得分 0

//////////////////////////////////////////////////////////////////////////  
  //将指定文件导入ACCESS表:  
  //其中:ResField-为存储数据的TBolbField,szFile-为数据文件  
  function   TDataModuleApp.SaveFileToAccess(ResField:TBlobField;szFile:   String):DFImportResult;  
  var   nhDl:Integer;  
          ResStream:TAdoBlobStream;  
  begin  
        Result:=DFIFileImpOkay;  
        if   not   FileExists(szFile)   then  
        begin  
                Result:=DFIFileNotFound;  
                Exit;  
        end;  
        nhDl:=FileOpen(szFile,fmOpenRead);  
        if   nHdl=-1   then  
        begin  
                Result:=DFIFileDenied;  
                Exit;  
        end;  
        FileClose(nHdl);  
        ////////////////////////////////////  
        ResStream:=nil;  
        try  
                ResStream:=TAdoBlobStream.Create(ResField,bmWrite);  
                try  
                        ResStream.LoadFromFile(szFile);  
                except  
                        Result:=DFIFileImpErr;  
                end;  
        finally  
                if   Assigned(ResStream)   then   ResStream.Free;  
        end;  
        ////////////////////////////////////  
  end;  
   
   
  ////////////////////////////////////////////////////////////////////  
  //从ACCESS的BLOBFIELD字段提取数据到文件,以下提取的为ANI文件,请参考  
  procedure   TDataModuleApp.GetAppResource;  
  var   szResFile:String;  
          Pos:TPoint;  
  begin  
          AdoTable.Close;  
          AdoTable.TableName:='Resource';  
          AdoTable.IndexName:='ResName';  
          AdoTable.Open;  
          AdoTable.Filter:='TaskId<0   AND   ResType   =   '+QuotedStr('ANI');  
          //AdoTable.Filter:='ResType   =   '+QuotedStr('ANI');  
          AdoTable.Filtered:=True;  
          AdoTable.First;  
          while   not   AdoTable.Eof   do  
          begin  
                szResFile:=GszTmpPath+Trim(AdoTable.FieldByName('ResName').AsString);  
                try  
                      TBlobField(AdoTable.FieldByName('Resource')).SaveToFile(szResFile);  
                except  
                      GetCursorPos(Pos);  
                      MsgBox(Pos,  
                              #10#10#10#10'                 获取面板资源失败!',[msgOk],(msgWarn),(bkBottom));  
                      break;  
                end;  
                AdoTable.Next;  
          end;  
          AdoTable.Filtered:=FALSE;  
          AdoTable.Filter:='';  
          AdoTable.Close;  
          //////////////////////////////////////////////////////////////////////////////  
          //Load   XP   Style   Normal   Resource:  
          szResFile:=GszTmpPath+_CursorFlWXPNORMAL;  
          if   FileExists(szResFile)   then  
          begin  
                Screen.Cursors[_CursorScrWXPNORMAL]:=LoadCursorFromFile(PCHAR(szResFile));  
                DeleteFile(szResFile);  
          end;  
          /////////////////////////////////////////////////////////////////////////////  
          /////////////////////////////////////////////////////////////////////////////  
          //Load   XP   Style   Busy   Resource:  
          szResFile:=GszTmpPath+_CursorFlWXPBUSY;  
          if   FileExists(szResFile)   then  
          begin  
                Screen.Cursors[_CursorScrWXPBUSY]:=LoadCursorFromFile(PCHAR(szResFile));  
                DeleteFile(szResFile);  
          end;  
          /////////////////////////////////////////////////////////////////////////////  
          /////////////////////////////////////////////////////////////////////////////  
          //Load   XP   Style   HSPLIT   Resource:  
          szResFile:=GszTmpPath+_CursorFlWXPHSPLIT;  
          if   FileExists(szResFile)   then  
          begin  
                Screen.Cursors[_CursorScrWXPHSPLIT]:=LoadCursorFromFile(PCHAR(szResFile));  
                DeleteFile(szResFile);  
          end;  
          //////////////////////////////////////////////////////////////////////////////  
          /////////////////////////////////////////////////////////////////////////////  
          //Load   XP   Style   HSPLIT   Resource:  
          szResFile:=GszTmpPath+_CursorFlWXPMOVE;  
          if   FileExists(szResFile)   then  
          begin  
                Screen.Cursors[_CursorScrWXPMOVE]:=LoadCursorFromFile(PCHAR(szResFile));  
                DeleteFile(szResFile);  
          end;  
          //////////////////////////////////////////////////////////////////////////////  
          /////////////////////////////////////////////////////////////////////////////  
          //Load   XP   Style   SHRINK   Resource:  
          szResFile:=GszTmpPath+_CursorFlWXPSHRINK;  
          if   FileExists(szResFile)   then  
          begin  
                Screen.Cursors[_CursorScrWXPSHRINK]:=LoadCursorFromFile(PCHAR(szResFile));  
                DeleteFile(szResFile);  
          end;  
          //////////////////////////////////////////////////////////////////////////////  
  end;  
  Top

8 楼zjcxc(邹建)回复于 2003-10-28 15:56:24 得分 0

'从ole1保存到文件  
  Private   Sub   Command1_Click()  
          Dim   ifn&  
          ifn   =   FreeFile  
          Open   "c:\a.dat"   For   Binary   As   ifn  
          OLE1.SaveToFile   ifn  
          Close   ifn  
  End   Sub  
   
  '从文件中读取到ole1  
  Private   Sub   Command2_Click()  
          Dim   ifn&  
          ifn   =   FreeFile  
          Open   "c:\a.dat"   For   Binary   As   ifn  
          OLE1.ReadFromFile   ifn  
          Close   ifn  
  End   Sub  
  Top

9 楼zjcxc(邹建)回复于 2003-10-28 15:58:52 得分 0

to:   changechange(改了又改)    
   
  楼主只是要求将ole保存到文件再用ole调出.所以上面的VB代码就可以了.  
   
  不知道是否我理解有误.  
  Top

10 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2003-10-29 23:46:06 得分 0

不知道你这样做,还是原来那个文件吗?只是用二进制流保存成文件而已。  
   
  比如我加进ole的是一个xls文件(手动的,不是用stream写入那种),我用你这种方法再次保存成xls文件,用     excel能够打开吗?Top

11 楼zjcxc(邹建)回复于 2003-11-01 15:40:23 得分 0

当然不能,但楼主好像也没有这样要求吧?Top

12 楼yoki(小马哥--鬓微霜,又何妨)回复于 2003-12-03 13:52:35 得分 0

手动添加ole对象如果要用程序读出的话需要将文件头去掉,因为ole手动添加的时候会自己在前面加上一些描述信息Top

13 楼lphy(心亘)回复于 2003-12-18 15:20:25 得分 0

vb中怎么样自动给文件加上ole描述信息呢?Top

14 楼lphy(心亘)回复于 2003-12-19 13:54:08 得分 0

顶Top

15 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2003-12-20 00:09:38 得分 0

http://www.access911.net/index.asp?board=4&mode=3&recordid=75FAB21E12DCTop

16 楼AutoDataManager(内存数据库控件)回复于 2004-01-11 00:33:17 得分 0

MarkTop

相关问题

  • 文件导入
  • 怎样将对象的脚本文件(*.sr*文件)动态导入生成数据窗口?
  • 如何在OLE容器中导入Excel文件
  • 关于pb导入excel生成哦ole对象出错
  • 导入文件的问题
  • srf文件怎么导入?
  • dump文件的导入
  • 导入文件错误!!!
  • 导入文本文件
  • 文本文件导入Excel

关键词

  • .net
  • 文件
  • 数据
  • access
  • resstream
  • nhdl
  • szfile
  • resfield
  • 对象
  • ole

得分解答快速导航

  • 帖主:zangyice

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo