iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 25015|回复: 2
打印 上一主题 下一主题

UG二次开发实现从数据库中读取保存的prt,UG自动加载

[复制链接]
跳转到指定楼层
楼主
发表于 2005-6-8 19:17:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
下面是主要代码~
/* TODO: Add your application code here */
  // 定义字符串,保存路径信息
  CString pathname;
  // 数据库连接初始化
  ADOConn m_AdoConn;
  m_AdoConn.OnInitDBConnect();
  // SQL语句,查询数据库
  _bstr_t vSQL;
  vSQL = "select * from mdo where name='D:\\Program Files\\Microsoft Visual Studio .NET 2003\\MyWorkSpace\\SaveIntoDB\\Debug\\aa.prt'";
  _RecordsetPtr m_pRecord;
  m_pRecord = m_AdoConn.GetRecordSet(vSQL);
  // 得到image字段的实际大小
  long IDataSize = m_pRecord->GetFields()->GetItem("image")->ActualSize;
  // 定义缓冲区,把数据库中的image字段的二进制字符保存到缓冲区内
  char* m_pBuffer;
  if(IDataSize>0)
  {
    _variant_t varBLOB;
    varBLOB = m_pRecord->GetFields()->GetItem("image")->GetChunk(IDataSize);
    if(varBLOB.vt == (VT_ARRAY|VT_UI1))
    {
      if(m_pBuffer = new char[IDataSize+1])
      {
        char* pBuf = NULL;
        SafeArrayAccessData(varBLOB.parray, (void**)[$pBuf)]
        memcpy(m_pBuffer, pBuf, IDataSize);
        SafeArrayUnaccessData(varBLOB.parray);
      }
      // 将缓冲区的内容写入文件
      pathname = "D:\\bb.prt";
      CFile file;
      if(!file.Open(pathname, CFile::modeCreate|CFile::modeWrite))
      {
        CString msg;
        msg = "无法打开prt文件!";
        AfxMessageBox(msg);
        return;
      }
      file.Write(m_pBuffer, IDataSize);
      file.Close();
    }
    // 提示消息,告知用户已成功将数据库中prt部件取出,并保存到本地
    CString msg;
    msg = CString("您已经成功将部件文件从资源共享数据库中取出,并保存在本地目录")+ pathname + CString("下!");
    AfxMessageBox(msg);
  }
  // UG加载取出的prt部件
  UF_PART_load_status_t error_status;
  tag_t part;
  char * part_name = "D:\\bb.prt";
  UF_PART_open(part_name, [$part, &error_status)]
  UF_PART_set_display_part(part);
  
/* Terminate the API environment */
UF_CALL(UF_terminate());
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
沙发
发表于 2011-5-23 10:53:55 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
发表于 2011-6-9 19:57:59 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-11-23 13:48 , Processed in 0.013391 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表