找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 17746|回复: 10
打印 上一主题 下一主题

【求助】UG二次开发有连接数据库的函数吗?

[复制链接]
跳转到指定楼层
1
发表于 2004-10-5 01:25:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
请问各位高手UGOPEN C++库函数中有没有提供连接数据库的函数?
小弟做个东西,一定要连上数据库Access,获取一些数据。望高手指点:)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2004-10-5 11:08:11 | 只看该作者
UG二次开发的工具是VC,开发的方式是写DLL。VC有数据库接口,什么ODBC,DAO,OLE DB,ADO。
UG不会提供连接数据库的函数吧。
  
ACCESS,用DAO后者ADO都不错。后者的性能要好一些。需要看看VC数据库的书
3
发表于 2004-10-7 10:36:40 | 只看该作者
如果你用Excel的话,UG有专门的读表格的函数
4
发表于 2004-10-8 08:48:32 | 只看该作者
这个东东,欧做过一点点,其实和在完全的vc下访问数据库是一样的,只是,加了一个ug的入口函数,可以让你的程序在ug下运行即可。
在你建立工程后,加入#include <uf.h>
5
发表于 2004-10-8 16:39:44 | 只看该作者
楼上的这位兄弟的意思是,UG连结数据库完全和VC连结一样了,就照着VC连结数据库的格式作就行了?
6
发表于 2004-10-8 18:38:51 | 只看该作者
对地,嘿嘿,建立一dll工程后,加入#include <uf.h>
然后CTestApp theApp;
  
extern "C" __declspec(dllexport) void ufusr(char *param, int *retcode, int rlen)
{
  
  UF_initialize();
  
  CTestDlg dlg;
                    dlg.DoModal();
  UF_terminate();
}
extern "C" int ufuser_ask_unload(void)
{
  return(UF_UNLOAD_UG_TERMINATE);
}
上面是把mfc里的对话框和ug连到一起了
其中testdlg是建立对话框出现的,就可以在testdlg.cpp里进行做了,和用
vc访问数据库是一个样子的。
7
发表于 2006-6-20 09:18:35 | 只看该作者
原帖由 mizzle 于 2004-10-8 10:38 发表
对地,嘿嘿,建立一dll工程后,加入#include <uf.h>
然后CTestApp theApp;
  
extern "C" __declspec(dllexport) void ufusr(char *param, int *retcode, int rlen)
{
  
  ...




请问#include include <uf.h>这句是直接加么?加在何处?谢谢
8
发表于 2006-6-27 15:30:53 | 只看该作者
正常的ug二次开发的代码写就行了。
调用一个对话框。
在对话框类里面vc连接数据库就行了
9
发表于 2006-6-28 01:39:35 | 只看该作者
请帮我看看这个连接数据库的程序,编译通过,却实现不了连接.谢谢....

是mfc dll 的ug二次开发.ufsta接口放在另外的文件中


BOOL CElementInfoDlg::OnInitDialog()
{AfxOleInit();//初始化COM
HRESULT hr;
try
{hr=m_pCon.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
hr=m_pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\fixture\code\fixture.mdb","","",adModeUnknown);}
}
catch (_com_error e){CString errormessage;
                errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
                AfxMessageBox(errormessage);///显示错误信息
                return FALSE;}
try
{
m_pRec.CreateInstance("ADODB.Recordset");

m_pRec->Open("SELECT*FROM 元件信息表",_variant_t((IDispatch*)m_pCon,true),adOpenDynamic,adLockOptimistic,adCmdText);
//创建记录集*/
m_bSuccess= TRUE;
_variant_t vFieldValue;CString sname,stype;//操作数据库
        m_pRec->MoveFirst();
        vFieldValue=m_pRec->GetCollect("元件名称");
                sname=(LPCSTR)_bstr_t(vFieldValue);
                vFieldValue.Clear();
        vFieldValue=m_pRec->GetCollect("所属类别");
stype=(LPCSTR)_bstr_t(vFieldValue);
       

m_name=sname;m_type=stype;        //赋值给编辑框控件
UpdateData(FALSE);
}
catch(_com_error e)///捕捉异常
        {
                AfxMessageBox("读取数据库失败!");///显示错误信息
        }

}
10
发表于 2006-6-28 09:39:25 | 只看该作者
呵呵,改成Data Source=c:\\fixture\\code\\fixture.mdb
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-28 23:02 , Processed in 0.032381 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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