iCAx开思工具箱

标题: 【原创】ug调用数据库的东东 [打印本页]

作者: mizzle    时间: 2004-10-13 08:22
标题: 【原创】ug调用数据库的东东
其实欧不算高ug二次开发,说起来惭愧呀,都是用的一些mfc的东西,只是,加了接口就调到ug里使用了,以前有不少高手们,发过有关的东西,可能是数据库出了问题后,都没了吧。欧就献丑了,嘿嘿,下面是一个欧做的东东,只是简单的做了一个ug调用数据库的例子。大家指教吧,欧把原代码发上来了。是用odbc访问数据库的,其中用户名和密码是放到access里的,所以只是简单的,调用这个数据库,希望对那些,和欧当初一样的同学可以有点帮助吧,真正的大侠是zzz,pinkwall,还有深夜摔键盘等老兄的说了。但是里面的东西没有,只有登陆那块的,其余的和vc直接对数据库的操作一样的。大家就看看数据库方面的东西吧。
作者: 深夜摔键盘    时间: 2004-10-13 12:36
UG的开发引入数据库是很有必要的。
规模较大的开发,各进程间的数据交换很是个问题。用内存映射或文件来存,不灵活。
小弟,不是mizzle兄所说的什么侠。我不会ODBC,因为工作需要,学了一些ADO。
我很想知道,使用数据库来存放大批量的信息,譬如100万条数据,该怎样提高访问速度,还要不耗太多内存。
作者: mizzle    时间: 2004-10-13 14:26
嘿嘿,首先,欧不是mizzle兄,要不你叫mizzle姐姐?
欧元来做的那个也是用ado做的,不过可能是学得不精,总觉得
还是odbc简单,和直接在mfc里访问数据库是一样地,至于你说的,提高访问速度,应该是数据库设计的问题吧,(欧认为的),其实根据现在计算机的配置,如果数据不是多得吓人的话,据说不用考虑那么多,不大会影响速度的?(一个学计算机的这么说地)
当然了,计算机配置要好,内存要1g吧,还有
使用主键、索引等手段,同时优化SQL语句。
同等条件下,数据量越大,查询速度也就越慢 。
这些都应该是数据库的问题了,欧就不好意思班门弄斧了,嘿嘿
作者: jackezhang    时间: 2004-10-15 03:24
请问Mizzle姐姐,我运行你的程序为什么会有如下错误?
Linking...
LINK : fatal error LNK1104: cannot open file "libufun.lib"
Error executing link.exe.
还有,我对VC环境不是很熟。怎么样才能在建好的UG NX AppWizard V1里面添加相关的ado积类和头文件什么的,使得ado的函数也可以在UG的工程里应用?
作者: wgwang    时间: 2004-10-15 10:12
jackezhang wrote:
请问Mizzle姐姐,我运行你的程序为什么会有如下错误?  
  Linking...  
  LINK : fatal error LNK1104: cannot open file "libufun.lib"  
  Error executing link.exe.  
  还有,我对VC环境不是很熟。怎么样才能在建好的UG NX AppWizard V1里面添加相关的ado积类和头文件什么的,使得ado的函数也可以在UG的工程里应用?

  
在VC中TOOLS->OPTIONS的directory中添加一个到UGOPEN的链接目录即可
作者: jackezhang    时间: 2004-10-15 13:13
楼上的我试过了,好像不行呀!
作者: mizzle    时间: 2004-10-15 14:45
看看下面的图加上看好使吗。
作者: jackezhang    时间: 2004-10-15 19:22
这些lib我都加上了,但还是出现上面的错误
作者: 深夜摔键盘    时间: 2004-10-15 19:34
你的那个lib,没有拷到VC路径下的LIB文件夹内。
作者: zizi    时间: 2004-10-15 19:39
请问:我是新手。想看看调用之后是什么样的,怎么调用mizzle姐姐的这个dll呢?我直接调用显示错误如下:未发现数据源名称且未指定默认驱动程序。我把成件库.mdb文件已拷到dll同目录下了啊???
作者: zizi    时间: 2004-10-15 19:42
谢谢指教!
作者: mizzle    时间: 2004-10-15 19:48
那个,不是把数据库考到那个目录下的问题,你的在进行数据库驱动
在设置->控制面板->管理工->数据源odbc里进行驱动地,最好看看
数据库的东东,最基本的就行了
作者: zizi    时间: 2004-10-15 19:59
哦。。。
请问mizzle姐姐:不用这种方法怎么调用?
作者: jackezhang    时间: 2004-10-16 03:05
我咋一运行哪个dll文件就抱错:invalid file name
还有想问问mizzle姐姐这个工程是怎么建的?大概说一下过程好吗?
作者: mizzle    时间: 2004-10-16 08:00
这个工程就是在vc里建立一个dll工程地。还有这个dll文件你应该在ug下运行地。我建议你还是看看基本的ug二次开发的书籍吧。我也算是新手,没做过多少ug二次开发的东西,这个东西,除了用了一个ug的入口函数,什么也没用到的,完全是vc操作数据库。还有上面的那位,你不驱动数据库,还要用什么办法?我也是初学,不知道还有什么办法,你找到了,告诉我一声,嘿嘿。
作者: jackezhang    时间: 2004-10-18 02:16
8好意思。怎么在数据原理添加了该数据库,但一在UG环境下登陆还是出现:未发现数据源名称且未指定默认驱动程序。请jj具体明示给菜菜鸟们看:)
作者: mizzle    时间: 2004-10-18 08:02
你的在进行数据库驱动  
在设置->控制面板->管理工->数据源odbc里进行驱动地,最好看看  
数据库的东东,最基本的就行了  
  
我觉得你有必要先看看基本的数据库和vc的东东,在动手做吧。
作者: 深夜摔键盘    时间: 2004-10-18 08:27
我也来说句闲话,这些数据源啊,当初是把我吓住了。兄弟们,要是着了急,就用ADO吧,当初我是那么过来的。因为看到书上有介绍:使用ADO,能够将精力集中在实现程序功能得细节上,而不必费心学习大量不同得数据库访问协议。
ODBC,可以提供一些底层的访问,这个对咱们这些应用的人来说不太重要。书上还说说,ODBC的访问速度是有瓶颈的,但从ODBC来入手学习数据库可能概念会更清晰一些。
作者: zizi    时间: 2004-10-18 08:47
楼上的大哥,ADO能否与Uistyler的按钮联系起来呢?
作者: jackezhang    时间: 2004-10-18 13:02
对我也向问这个问题,怎么吧ADO或DAO与Uistyler结合在一起用!!??
作者: 深夜摔键盘    时间: 2004-10-18 15:16
无论ODBC,DAO,OLE DB,ADO,它们都可以在UG二次开发中被使用。
ODBC,是访问数据库的标准接口,一堆访问数据库的API组成。但ODBC,只是一个标准,想通过它来访问各种数据库,那么还需要数据库的生产厂商提供相应的ODBC驱动。联想一下你的WORD软件是怎样让你的打印机来工作的?这里的ODBC驱动,就类似于打印机驱动程序的作用。每种打印机也都要有自己的驱动程序的。
  
Ado采用了COM技术,可以在任何语言平台被调用,一般用3个智能指针来完成数据库的访问(智能指针,类似于3个对象的接口,通过指针来调用对象所开放的功能)。
只需要在你的工程中引入ADO的库,然后在按钮回调函数中做如下工作:
(1)初始化COM环境,一个函数就可以做到。
(2)打开一个数据库连接,譬如连接到ACCESS,也是一个函数,这个函数返回一个连接指针。这个连接指针是ADO第一个智能指针。
(3)打开一个表,这个表在ADO中是以记录集指针来表示的,也是一个函数,返回一个记录集指针。
(4)对数据进行操作(表的读写)。
(5)使用_CommandPtr(命令指针),使用带参数的命令,执行一些SQL指令。另外,连接指针和记录集指针也可以执行SQL命令,无参数的。
(6)关闭记录集指针
(7)关闭连接指针。
随便找一份关于ADO的教程,只要在UG的按钮回调函数中实现上面的步骤即可。
作者: jackezhang    时间: 2004-10-19 03:45
我在odbc里建了一个数据源,应该没有错,我以前也建过的,但奇怪就是不行。请MIzzle姐姐具体告诉一下吧。反正我用的湿Access Driver驱动,系统和用户的DNS都加了
作者: 深夜摔键盘    时间: 2004-10-19 11:19
ODBC,小弟不甚懂,看了看mizzle兄的代码,感觉与数据源连接时出了问题。
m_database.Isopen是不是要在打开数据源之后用的?
  
我开个帖子,说一说ODBC数据源如何配置吧。
作者: mizzle    时间: 2004-10-19 15:07
嘿嘿,传得时候没细看,还是以前做尝试的东东,还劳累,键盘弟弟,仔细读偶得烂代码,不好意思,误导了。
作者: lion_arthas    时间: 2010-10-23 11:34
原来是大姐级的,失敬失敬
作者: wwwwoshida    时间: 2010-12-2 22:13
路过,我正在做Pro/E 4.0的二次开发,要用到ODBC连接Access数据库,
谢谢分享!
作者: zhaocm    时间: 2010-12-3 18:33
版主,好人呐!
作者: SWORDINHAND    时间: 2012-5-1 19:11
学习了,谢谢
作者: 63455    时间: 2012-5-3 18:58
姐姐几岁啊 我单身
作者: w580602    时间: 2014-6-26 20:51
厉害的楼主姐姐阿,我就来留个名...
作者: wel8584    时间: 2016-9-3 15:35
学习学习哈~~




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3