发帖
 找回密码
 立即注册
搜索
9 0 0

使用ODBC连接Access数据库

历史版块_9 9 9 2017-5-24 09:34:58
[i=s] 本帖最后由 zorsite 于 2017-5-24 09:42 编辑 [/i]

[color=#000][font=Helvetica][size=14.6667px]用户手册的Tutorial中有一篇是讲SQL的,不过它使用的是MySQL。[/size][/font][/color][color=#000][font=Helvetica][size=14.6667px]
[/size][/font][/color]
[color=#000][font=Helvetica][size=14.6667px]现在我把这篇教程转为使用Access数据库。[/size][/font][/color][font=Helvetica][color=#000000]
[/color][/font]
[color=#000][font=Helvetica][size=14.6667px]模型背景如下:[/size][/font][/color]
[color=#000][font=Helvetica][size=14.6667px]发生器产生4种临时实体,进入4台处理器进行加工。每种临时实体在不同的处理器中加工时间不一样。[/size][/font][/color]
[color=#000][font=Helvetica][size=14.6667px]
[/size][/font][/color]
[color=#000][font=Helvetica][size=14.6667px]我们可以通过建立一张全局表进行加工时间的定义,也可以使用外部数据库。[/size][/font][/color]
[font=Helvetica][color=#000000][size=14.6667px]首先你得有一个数据库。使用ACCESS创建一个新的数据库,命名为flexsimdata。创建一张数据表,表名为processtimes,添加4个字段proc1、[/size][/color][/font][color=#000][font=Helvetica][size=14.6667px]proc2、[/size][/font][/color][color=#000][font=Helvetica][size=14.6667px]proc3、[/size][/font][/color][color=#000][font=Helvetica][size=14.6667px]proc4。[/size][/font][/color]


[color=#000][font=Helvetica][size=14.6667px]
[/size][/font][/color]
[font=Helvetica][color=#000000][size=14.6667px]数据库建好了,能用Flexsim直接访问吗?答案是不能。应用程序想要访问某种数据库,必须针对此数据库软件编写相应的“驱动程序”。市面上数据库软件那么多,难道Flexsim公司要一一去编写驱动吗?显然不现实。而这个工作微软件已经完成了。[/size][/color][/font]
[font=Helvetica][color=#000000][size=14.6667px]微软在操作系统中内置了一个叫做ODBC(Open Database Connectivity[/size][/color][/font][color=#000][font=Helvetica][size=14.6667px]开放数据库连接)的组件,这个组件可以和不同的数据库软件连接。[/size][/font][/color][font=Helvetica][color=#000000][size=14.6667px]开放数据库互连(ODBC)是微软提出的数据库访问接口标准,其定义了访问数据库API的一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言。ODBC规范后来被X/OPEN和ISO/IEC采纳,作为SQL标准的一部分。也就是说,只要是遵循SQL标准的数据库软件,都可以和ODBC连接,并通过ODBC进行管理。这样一来,类似[/size][/color][/font][color=#000][font=Helvetica][size=14.6667px]Flexsim这样的软件要做的就是和ODBC这个中间件对接就好了,再由ODBC对不同的数据库进行连接。[/size][/font][/color]
[color=#000][font=Helvetica][size=14.6667px]现在,我们在ODBC中为刚建立的ACCESS数据库建立一个连接。[/size][/font][/color]
[color=#000][font=Helvetica][size=14.6667px]ODBC在控制面板--管理工具中可以找到。如果是64位ACCESS,参见[/size][/font][/color][font=Helvetica][color=#000000][size=14.6667px]http://flexsimasia.com/viewthread.php?tid=6202&page=1&fromuid=610#pid19984。[/size][/color][/font]
[font=Helvetica][color=#000000][size=14.6667px]
[/size][/color][/font]
[font=Helvetica][color=#000000][size=14.6667px]
[/size][/color][/font]
[font=Helvetica][color=#000000][size=14.6667px]数据源名可以和数据库同名,也可以不同名。Flexsim在同数据库进行连接时,需要使用在ODBC中设置的这个“数据源名”,而不再使用数据库的名字。[/size][/color][/font][font=Helvetica][color=#000000][size=14.6667px]创建好数据库连接之后,可以在flexsim中使用dbopen命令打开该数据库。[/size][/color][/font]
[font=Helvetica][color=#000000][size=14.6667px]在处理器的“加工时间”中输入以下代码:[/size][/color][/font]
[font=Helvetica][color=#000000][size=14.6667px][code]/**查询数据库*/
string sqlstr="select * from processtimes";
dbopen("flexsimdata",sqlstr,0);
//dbviewtable;//查看被打开的表
int row=item.Type;
int col=ipopno(current,1);
double protime=dbgettablenum(row,col);
dbclose;
return protime;[/code]
[/size][/color][/font]
[font=Helvetica][color=#000000][size=14.6667px]
[/size][/color][/font]
[font=Helvetica][color=#000000][size=14.6667px]模型是用flexsim 17.1.2完成的,低版本的无法打开。[/size][/color][/font]
[font=Helvetica][color=#000000][size=14.6667px]
[/size][/color][/font]
──── 0人觉得很赞 ────
2017-5-24 14:23:27
感谢加老师分享,补充一点雷区。
1、FlexSim目前使用odbc只能对应系统版本,也就是说,64位系统装32位软件无法使用odbc;
2、如果使用的是access数据库,那么不止是系统版本要对应,office的版本也需要对应,也就是说如果要在64位系统用64位FlexSim还要再安装64位office(access),这样才能在odbc中正确的创建FlexSim可以调用的数据源(查看自己电脑office是否64位的可以看下图,在账户|关于XX中可以看到)

3、创建数据源的执行程序名字叫做:odbcad32.exe(32位还是64位都是以32结尾),而他们所在的文件夹分别:
64位系统:C:\Windows\System32
32位系统:C:\Windows\SysWOW64

是的。。。我没有写错,64位在32结尾;32位在64结尾(这个锅要微软背)。
大家可以用加老师推荐的方法来找,保证正确。
2017-5-25 00:37:47
前排支持~
2017-5-25 01:44:24
:victory:
2017-6-8 13:57:00
谢加老师
2017-7-7 14:38:09
鑰佸笀闂?笅odbc娌℃湁64浣嶇殑鎬庝箞鍔
2017-7-7 11:21:49
[b] [url=http://www.flexsimasia.com/redirect.php?goto=findpost&pid=23025&ptid=6876]6#[/url] [i]吴庆祺[/i] [/b]


回复好像乱码了哟。
2018-1-18 14:29:39
学习了
2020-5-8 11:26:10
666正想了解这一块
2020-7-3 23:14:35
谢谢
您需要登录后才可以回帖 立即登录
高级模式
返回
历史版块_9
热门问答
查看更多
1
流水作业线的仿真
流水作业线的仿真
32
83
2
厂区生产线布局优化案例!新做的!
厂区生产线布局优化案例!新做的!
27
224
3
flexsim中文教程,pdf文档已整理-重新整理
flexsim中文教程,pdf文档已整理-重新整理
25
114
4
图形用户界面(GUI)教学视频
图形用户界面(GUI)教学视频
24
75
5
Flexsim初级建模工程师水平标准
Flexsim初级建模工程师水平标准
24
234
博主榜
+ 5