说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在DELPHI程序中自动设置ODBC数据源

HTML文档下载 WORD文档下载 PDF文档下载
在DELPHI程序中自动设置ODBC数据源

在DELPHI数据库应用程序中,我们访问数据库通常有两种方法.一种是通过BDE数据库搜索引擎,即利用DELPHI自带的数据库驱动程序,这种方法的优点是速度快,但应用范围有限,当数据库版本更新时,有可能不能用于操作新的数据库;另一种方法是通过ODBC,这种方法的优点是可以随操作系统(如WINDOWS)提供,作为标准接口能适应多种数据库,缺点是速度慢.在编程时,我们可以根据需要选择其中的一种方法.

在利用ODBC访问数据库时,通常的方法时是在ODBC管理面板中设置一个ODBC系统数据源(系统DSN),然后在DBD中或在程序中设置一个数据库别名(Alias)对应该DSN,这样就可以如愿以偿地操作数据库了.相信用DELPHI做过数据库应用的程序员对这方面已经很熟悉了,笔者就不多说了.在实际应用中,笔者曾遇到过这样的情况,我们的数据库应用程序是依靠ODBC系统数据源访问和操作数据库的,应用程序运行一直良好,直到某一天,一个对WINDOWS系统较为熟悉但又不太精通的用户不慎修改或删除了我们预先设置的系统DSN......

于是,笔者就开始研究怎么在程序中动态地设置ODBC系统DSN的内容,这样就可以增加自己程序的坚固性了.经过整整一天对WINDOWS注册表的研究,终于找到了ODBC管理程序设置DSN的秘密("天地自有公道,付出总会回报!",不是做广告!),现写出来与大家共享,也请高手指教.

ODBC管理程序设置DSN的秘密在注册表中,不信可以到HKEY_LOCAL_MACHINE\Software\ODBC去看看,肯定让你感觉已经成功了一半.

首先来看看系统中已安装的ODBC数据库驱动程序.在HKEY_LOCAL_MACHINE\Software\ODBC\ ODBCInst.INI中,存放着已经安装了的ODBC数据库驱动程序的信息,从这里可以查到已安装的ODBC数据库驱动程序对应的DLL文件等信息.在ODBCInst.INI\ODBC Drivers的各个键值中,键名是驱动程序名称(如Microsoft Access Driver(*.mdb)),键值为“Installed”,表示驱动程序已安装.在 ODBCInst.INI\DriverName(DriverName为一个驱动程序名称,如Microsoft Access Driver(*.mdb))中,有驱动程序的详细信息,我们主要从这里获得ODBC驱动程序对应的DLL文件的路径和文件名,即键名Driver的键值,一般为"C:\WINDOWS\SYSTEM\FileName.DLL".

然后来看系统DSN的注册信息,在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI中,存放着系统DSN的注册信息,我们在ODBC管理面板设置的DSN参数就在这里.

下面来看看创建一个ODBC系统DSN的步骤,即我们在ODBC管理面板中完成参数设置后,ODBC管理程序是怎么在注册表中注册DSN信息的.以创建一个名称为MyAccess的Ms Access97类型的系统DSN为例,我们指定的参数主要有数据库类型(Microsoft Access Driver(*.mdb))、数据源名称(MyAccess)、数据源描述(我的ACCESS)、数据库路径(C:\Inetpub\wwwroot\Test.mdb),其它参数如用户名称、用户密码、独占、只读、系统数据库、默认目录、缓冲区大小、扫描行数、页超时等采用系统缺省参数.这时,注册系统DSN一般应有以下几个步骤:

1.在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources中增加一个字符串键值,为MyAccess = Microsoft Access Driver(*.mdb),其中分别为数据源名称和数据库类型.这是在注册表中注册一个系统DSN名称.

2.在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI中创建一个子键(SubKey)MyAccess,即创建一个键为HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\MyAccess,然后在其下创建一些键值,详细描述一个系统DSN的配置信息,主要信息有([]中的内容为笔者注释):

DBQ=C:\Inetpub\wwwroot\Test.mdb [字符串,表示数据库路径]

Description=我的ACCESS [字符串,表示数据库描述]

Driver=C:\PWIN98\System\odbcjt32.dll [字符串,表示驱动程序,可见ODBCINST.INI]

DriverId=0x00000019(25) [数字,表示驱动程序标识,不能改变]

FIL=Ms Access; [字符串,可能与过滤Filter有关]

SafeTransaction=0x00000000 [数字,可能表示支持事务性操作的个数]

UID="" [字符串,表示用户名称,此处为空字符串]

3.在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\MyAccess中创建一个子键(SubKey)Engines,再在其下创建子键(SubKey)Jet,即创建一个键为

HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\MyAccess\Engines\Jet,然后在其下创建一些键值,详细描述一个系统DSN的数据库引擎配置信息,主要信息有([]中的内容为笔者注释):

ImplicitCommitSync=Yes [字符串,可能表示是否立即反映数据修改]

MaxBufferSize=0x00000200(512) [数字,表示缓冲区大小]

PageTimeout=0x00000005(5) [数字,表示页超时]

Threads=0x00000003(3) [数字,可能表示支持的最大线程数目]

UserCommitSync=Yes [字符串,可能表示是否立即将数据修改反映到用户]

以上是建立一个系统DSN的基本信息(其它信息如选项或高级选项等信息也在这里设置,只不过因采用默认信息,注册表里没有列出),我们在程序中按上述步骤操作注册表,同样也能增加一个系统DSN或修改其配置.

在下面的例子程序中,将按以上步骤建立一个系统DSN,请注意程序中的注释.

{*******************************************************

在本程序中,将创建一个ODBC系统数据源(DSN),

数据源名称:MyAccess 数据源描述:我的新数据源

数据库类型:ACCESS97

对应数据库:C:\Inetpub\wwwroot\test.mdb

*******************************************************}

{ 注意应在USES语句中包含Registry }

procedure TForm1.Button1Click(Sender: TObject);

var

registerTemp : TRegistry;

bData : array[ 0..0 ] of byte;

begin

registerTemp := TRegistry.Create; //建立一个Registry实例

with registerTemp do

begin

RootKey:=HKEY_LOCAL_MACHINE;//设置根键值为HKEY_LOCAL_MACHINE

//找到Software\ODBC\ODBC.INI\ODBC Data Sources

if OpenKey(’Software\ODBC\ODBC.INI\ODBC Data Sources’

True) then

begin //注册一个DSN名称

WriteString( ’MyAccess’

’Microsoft Access Driver (*.mdb)’ );

end

else

begin//创建键值失败

memo1.lines.add(’增加ODBC数据源失败’);

exit;

end;

CloseKey;

//找到或创建Software\ODBC\ODBC.INI\MyAccess

写入DSN配置信息

if OpenKey(’Software\ODBC\ODBC.INI\MyAccess’

True) then

begin

WriteString( ’DBQ’

’C:\inetpub\wwwroot\test.mdb’ );//数据库目录

WriteString( ’Description’

’我的新数据源’ );//数据源描述

WriteString( ’Driver’

’C:\PWIN98\SYSTEM\odbcjt32.dll’ );//驱动程序DLL文件

WriteInteger( ’DriverId’

25 );//驱动程序标识

WriteString( ’FIL’

’Ms Access;’ );//Filter依据

WriteInteger( ’SafeTransaction’

0 );//支持的事务操作数目

WriteString( ’UID’

’’ );//用户名称

bData[0] := 0;

WriteBinaryData( ’Exclusive’

bData

1 );//非独占方式

WriteBinaryData( ’ReadOnly’

bData

1 );//非只读方式

end

else//创建键值失败

begin

memo1.lines.add(’增加ODBC数据源失败’);

exit;

end;

CloseKey;

//找到或创建Software\ODBC\ODBC.INI\MyAccess\Engines\Jet

//写入DSN数据库引擎配置信息

if OpenKey(’Software\ODBC\ODBC.INI\MyAccess\Engines\Jet’

True) then

begin

WriteString( ’ImplicitCommitSync’

’Yes’ );

WriteInteger( ’MaxBufferSize’

512 );//缓冲区大小

WriteInteger( ’PageTimeout’

10 );//页超时

WriteInteger( ’Threads’

3 );//支持的线程数目

WriteString( ’UserCommitSync’

’Yes’ );

end

else//创建键值失败

begin

memo1.lines.add(’增加ODBC数据源失败’);

exit;

end;

CloseKey;

memo1.lines.add(’增加新ODBC数据源成功’);

Free;

end;

end;

以上程序在PWIN98+DELPHI3.0下调试通过.

下面是创建常见数据库类型的DSN需要设置的信息([]为注释内容,除特殊注释外,各参数可见前面说明):

1.Access(Microsoft Access Driver(*.mdb))

DBQ、Description、Driver[odbcjt32.dll]、DriverID[25]、FIL[Ms Access;]、

SafeTransaction[默认为0]、UID[默认为空]、

Engines\Jet\ImplicitCommitSync[默认为Yes]、Engines\Jet\MaxBufferSize[默认512]、

Engines\Jet\PageTimeout[默认为512]、Engines\Jet\Threads[默认为3]、

Engines\Jet\UserCommitSync[默认为Yes]

可选设置:SystemDb[字符串,系统数据库的路径]、

ReadOnly[二进制,是否以只读方式打开,1为是,默认为0]、

Exclusive[二进制,是否以独占方式打开,1为是,默认为0]、

PWD[字符串,用户密码]

2.EXCEL(Microsoft Excel Driver(*.xls))

DBQ[Excel97(=path\xxx.xls)、5.0/7.0(=path\xxx.xls)、4.0(=path)、3.0(=path)]、

Description、Driver[odbcjt32.dll]、

DefaultDir[Excel97(<>DBQ)、5.0/7.0(<>DBQ)、4.0(=DBQ)、3.0(=DBQ)]、

DriverID[790(Excel97)、22(5.0/7.0)、278(4.0)、534(3.0)]、

FIL[Excel5.0;]、ReadOnly、SafeTransaction、UID、

Engines\Excel\ImplicitCommitSync、Engines\Excel\MaxScanRows[数字,扫描行数,默认为8]、

Engines\Excel\Threads、Engines\Excel\UserCommitSync、

Engines\Excel\FirstRowHasName[二进制,第一行是否是域名,1表示是,默认为1]

注: Excel97和Excel7.0/5.0的DBQ对应一个XLS文件,而Excel4.0和Excel3.0则对应一个目录;

DefaultDir对应一个目录,在Excel97和Excel7.0/5.0中是DBQ所对应的路径,而在

Excel4.0和Excel3.0下则与DBQ相同;各个版本的DriverID不同.

3.dBase(Microsoft dBase Driver(*.dbf))

DefaultDir[字符串,数据库文件所在目录]、Description、Driver[odbcjt32.dll]、

DriverID[277(IV)、533(5.0)]、FIL[dbase III;]、SafeTransaction、UID、

Engines\Xbase\ImplicitCommitSync、

Engines\Xbase\Collating[字符串,排序依据,可为ASCII、International、Norwegian-Danish、

Swedish-Finnish]、

Engines\Xbase\Deleted[二进制,是否不显示被软删除的记录,0表示显示,默认为1]、

Engines\Xbase\PageTimeout[默认为600]、Engines\Xbase\UserCommitSync、

Engines\Xbase\Threads、Engines\Xbase\Statistics[二进制,是否用大约的行数,1为是,默认0]

注:(dBaseIV和dBase5.0两个版本的DriverId有不同)

4.Foxpro(Microsoft Foxpro Driver(*.dbf))

DefaultDir[数据库文件所在目录]、Description、Driver[odbcjt32.dll]、

DriverID[536(2.6)、280(2.5)]、FIL[Foxpro 2.0;]、SafeTransaction、UID、

Engines\Xbase\Collating[字符串,排序依据,可为ASCII、International]、

Engines\Xbase\Deleted[二进制,是否不显示被软删除的记录,0表示显示,默认为1]、

Engines\Xbase\PageTimeout[默认为600]、Engines\Xbase\UserCommitSync、

Engines\Xbase\Threads、Engines\Xbase\Statistics[二进制,是否用大约的行数,1为是,默认0]

注:(Foxpro2.5和Foxpro2.6两个版本的DriverId有不同)

把上面程序做成一个COM或ActiveX控件吧,在很多高级程序设计语言如DELPHI、C++Buider、VB、VC、PB中都能用到的.

Infoworld Bossie Awards:最好的开源App锦集 除了乔布斯的鼠标 值得装入时间胶囊的十大科技产品 2013中国互联网安全大会:云环境带来的安全隐患和机遇 2013中国互联网安全大会:软件安全新挑战 专访Line大中华区总裁:即使卖萌,也能深入人心 iOS开发者必备:四款后端服务工具 市场研究公司:iPhone5C/5S成本分别是173、199美元 对软件开发有利的5个敏捷编程方法 移动端性能大比拼:CSS Sprites vs. Data URI 三大峰会七大论坛,2013移动开发者大会将于11月在京举行 黑莓47亿美元收购的背后 微软或成最大受益者 搜索大战升级:360搜狗相互起诉对方不正当竞争 诺基亚将于10月22日发布6款新产品 平板Lumia 2520等 从17美元到50美元 Facebook股价上涨背后的两大关键 12个理由:为什么我会认为Android比iOS 7好! AMD推 &amp;quot;Mantle&amp;quot; API 欲释放GPU全部潜能 Salesforce架构:日事务过13亿,2.4万TPS的数据库峰值 久违的iOS,新鲜的SDK,豌豆荚发布云相册 喜大普奔:谷歌15岁了,生日快乐! 传福特CEO Alan Mulally目前最有希望执掌微软 微软计划将WP8和Win8应用商店合并?太好了! 响应开发者要求:Kinect for Windows SDK 1.8发布 OpenStack基金会BD总监:希望有更多的中国公司加入 CTO如何避免决策失控(三):从CEO角度看CTO的应对能力 IT界需求最旺的16项技能 PMC发布8系列RAID卡 找准国内互联网企业需求 早Google一步,eBay数据中心率先搭载了火星上使用的技术 目标专利2000,技术研发人员占55%,斐讯的厚积薄发 SwiftStack CEO:分布式存储的未来 触控陈昊芝:“好声音”标王对移动游戏未来的预测 Office将更强大:微软正开发Office Reader和Office Lens 浏览器里能否使用带有界面的ActiveX Dialog中Edit控件对应的变量m_edit_string(CString型)如何得到控件中显示的串 各位:哪里有PB 7.0下载? 新学jbuilder请教前辈:听说用jbuilder做出来的东西脱离jbuilder环境后运行通常要改好多东西,怎么做能避免这类情况?用jbuilder做开发要 GetWindowNext怎么老是返回NULL? 我想学java,但是,我现在只会c++? 急都急死了,快教教我如何用Resin配jsp服务器啊?? 请问哪里可以找到Delphi 6 Developer's Guide这本书? 请问VB中怎么把从ms sqlserver中查到的记录输出到其它库中?如foxpro …… http://www.ws.net.cn/cgi-bin/lb2/topic.cgi?forum=1&topic=6696&show=0快了看看,有没有你们喜欢的女生? 爽呀!!!Visual Studio.net实在是正点呀! 我想用delphi自带的Micorsoft help workshop做帮助行么,在delphi哪里呀,我没找到! 我打算按下一个按钮实现ctrl+space切换输入法的功能,可是不好使,大家帮我看看 在dreamweave ultradev下如何把ASP与本地服务器上的数据库连接起来。 请教,来者有份,200分大放送, 初学者关于Package的问题 再贴WebLogic Server 和 Weblogic Integration 有何不同,各是用来做什么的? 我在APPlication中开始处加上如下代码,在PB下运行时没问题,怎么编译后执行exe文件后老提示连不??为什么,请赐教!! 在静态切分窗口中,如何显示标题? 求教大虾:如何给软件加上licence限制 抗议CSDN帖子内容为楷体,同意者举手! 如何在画布上画一个带箭头的直线. *-->为对话框应用上妆!在线等待 [诚征交友]不诚勿扰,请条件适合男士入内 有谁用过Cute ftp上传软件,为什么一进行文件同步时,就出现404 object not find的错误 关于界面对象丢失的问题…… 请大家看看这个问题。 我真的很需要帮助。。。请问谁有360度可以许多张图片旋转的代码 360度全景特效 高分求树型结构源代码 现在出了本Jbuilder5的书。有没有谁有这本电子书啊? 高分求树型结构源代码 SDK问题 这句sql有问题吗? 关于驱动程序开发! 在SQL-SERVER中出现数据死锁的情况一般是什么,若是由多个用户同时向数据库更新数据而导致的死锁,解决此问题的办法有那些? 寻找源代码排版软件? 有没有用VC写过短信接收程序,我在接收中文时出现乱码。 请教大虾:用mideaplayer来播放一首歌,如何用progressbar来表示进度? 我想学习驱动程序的开发,请大家帮我推荐几本这方面的书? 编译出错,不解?请高手指点。 能否用Delphi 实现类似东石公司的虚拟光驱系统。 我想学习驱动程序的开发,请大家帮我推荐几本这方面的书? include头文件的问题 急!!!为什么TBlobField 下载时大小受限制,怎么解决? 关于导出动态连接库中的类的问题,不知道这里有没有高手? 一个让我痛苦了n天的问题 关于Hook的一个问题 联合查询如何修改? 获取密码时出错???? my gf photo 我想问一下,java生成的.class文件能不能通过某种工具生成.exe文件? 稀有气体的原子结构很稳定,与此相关的核外电子排布特点是_____ 包含关系{a}含与A与属于关系a∈A有什么区别?试结合实际做出解释 子集和真子集有什么区别?若A={1,2,3},B={1,2,3}那么A是B的子集,B也是A的子集?而且两集合相等?若A={1,2},B={1,2,3},那么A是B的子集?还是真子集? 判断题基础三章6 资产=负债+所有者权益是最基本的会计等式,即第一个会计等式() A对 B错判断题基础三章6 资产=负债+所有者权益是最基本的会计等式,即第一个会计等式() A对 B错 若1mol某烷烃燃烧后,测得产物中含有m molCO2和n molCO,则该烷烃分子中氢原子个数为Am+nB2[m+n】Cm-n+2D2【n+m+1】解释一下啊 双曲线的渐近线公式 68g的二氧化碳其中含氧原子多少mol 1mol某烷烃完全燃烧时消耗氧为多少mol,生成多少水? 双曲线顶点到渐近线的距离, ( )mol 水分子中所含有的氧原子数与1.5mol二氧化碳分子中含有的氧原子数相同 关于集合求A∩B和A∪B的区别设A={x|x 如果双曲线经过点(6,如果双曲线经过点(6,√3)且它的两条渐近线方程是x+-3y=0,那么双曲线方程是?方法 8g O2与___L(标准情况)的Co2气体所含氧原子数相同.与____mol SO2所含分紫数相同 集合{(a,b)}与{a,b}的区别就是集合带括号(a,b)与集合不带括号a,b 双曲线共渐近线说明什么? 多少mol的CO2中含有0.25mol的氧原子? 差集A-B与B-A有什么差别举个例子 双曲线的渐近线的问题为什么可以讲双曲线的标准式的1改成0求渐近线呢?这个又表示什么意义呢? 已知F1、F2分别是双曲线C:x^2/a^2-y^2/b^2=1的左右焦点,若F2关于渐近线的对称点恰落在以F1为圆心,丨OF1丨为半径的圆上,则双曲线C的离心率为A.根号三 B.3 C.根号二 D.2求详细解答 A交B=空集 和A U B=空集 有什么区别?A U B=空集 可以德到什么结论? 双曲线渐近线求法通法是化为标准式 再将右边的1变为0 请问是何道理 已知F1、F2分别是双曲线x^2/a^2-y^2/b^2=1(a>0,b>0)的左、右焦点,过F2与双曲线的一条渐近线平行的直线交另一条渐近线于点M,若∠F1MF2为锐角,则双曲线离心率的取值范围?求详解. {a,b}和{b,a}是不同的集合么? 为什么在解决天体运动问题中天体的匀速圆周运动所需的向心力由万有引力完全提供,不是万有引力还提供给重力,只分一点给向心力吗?我搞不懂啦! 高一物理必修二中天体运动中天体运动通过近日点或远日点所扫过的面积 高一物理必修2题目某同学使小球沿课桌面飞出,用数码相机拍摄小球做平抛运动的录像{每秒15帧照片},并将小球运动的照片打印出来.请问:他大约可以得到几帧小球正在空中运动的照片?{麻烦 已知地球半径为R,地球附近重力加速度为g,计算在距地面高为h的圆形轨道上的卫星做匀速圆周运动的线速度v和周期T. 今天学的引力…老师讲的也快,书上写的太阳对行星和行星对太阳的力我都明白了,但是跟两物体质量成正比没看懂,说它们的力是相互的.那为什么不乘二?就算跟两行星质量有关…那引力有方 填空题 所有 还有实验题 怎么算的 有两个不同轨道上的行星A和B绕着它们的中心体C运动,三点始终保持一条直线,且A和B分别在两端.AB为L,A质量为m,B质量为M.求T为什么这道题不符合公式 M=4π²R³/GT²它们的周期一样,中 会计基础.这句.任何一项经济业务的发生都会引起资产或权益的增减变化,但始终保持资产=权益这一平衡会计基础.这句.任何一项经济业务的发生都会引起资产或权益的增减变化,但始终保持资 1.两颗小行星都绕太阳做圆周运动,它们的周期分别是T和3T,则它们绕太阳运动的轨道半径之比为多少?2.已知太阳光从太阳射到地球需要500s,地球绕太阳公转的周期约为3.2X10的七次方秒,地球的质 下列( )经济业务的发生不会使得“资产=负债+所有者权益”这一会计等式左右双方的总额发生变动.分别说明原因,下列( )经济业务的发生不会使得“资产=负债+所有者权益”这一会计等 已知双曲线C与双曲线y²/2-x²=1有相同的渐近线,且C的一个顶点为(1,0),C的焦点为F1,F2,在曲线C上有一点M满足MF1·MF2=0,求点M到x轴的距离, A、B两艘快艇在湖面上做匀速圆周运动,在相同的时间内,它们通过的路程之比是4:3,运动方向改变的角度之比是3:2,它们的向心加速度之比是多少? 氧化铁中混有二氧化硅怎么除 置换反应是氧化还原反应吗?RT 已知F1、F2分别是双曲线C:x^2/a^2-y^2/b^2=1的左右焦点,若F2关于渐近线的对称点恰落在以F1为圆心,绝对值OF1为半径的圆上,则双曲线C的离心率为( B)B、3 C、根号2 高一物理必修2题目,麻烦告诉我怎么做?某只走时准确的时钟,分针与时针由转动轴到针尖的长度之比为1.2:1. (1)分针与时针的角速度之比等于多少? (2)分针针尖与时针针尖的线速度之比 关于概率论与数理统计的一个问题:概率、事件、发生与不发生的关系问题.必然事件,必然发生,概率等于1;不可能事件,不可能发生,概率等于0;我想问的是为什么不能倒过来推(也就是概率 “a真含于B”与“a属于B”的区别 两焦点在Y轴上的双曲线的渐近线是什么? 哪些分子中原子的最外层达到8电子稳定结构 包含关系{a}含于A与属于关系a属于A有什么区别 集合A是集合B的真子集与集合A是集合B的子集之间有什么区别? 氧化还原反应和置换反应有什么区别和相同啊~能易懂的说下吗?是不是还有什么化合价变不变的啊`~ {a}含于A与a属于A有什么区别 以集合U=a,b,c,d 的子集中选出2个不同的子集,需同时满足以下两个条件:(1)a、b都要选出;(2)对选出的任意两个子集A和B,必有 ,那么共有 种不同的选法必有A属于B或B属于A 有36种 的确是选 某原子的结构图是8.2.6.该核电荷数是什么?该原子在化学反应中容易得到多少个电子? 体积相同的实心铜球和铝球都浸没在水,则浮力情况?PS:是要用阿基米德原理还是F浮=G物? 完全燃烧标况下气态烷烃的混合物2.24升,生成二氧化碳6.6克,水4.05克,求我算了几次 总和答案不对 置换反应与氧化还原反应有什么区别? 包含关系{a}含于A与属于关系a∈A有什么区别?能举例子吗 子集与真子集有共同点,当A集合属于B集合时,怎么区分A集合是B集合的子集或真子集呢 在发生化学反应时原子一定会变成稳定结构吗?(就是最外层变成8) a∈A 和a包含于A有什么区别 举例说明 某气态烷烃和气态烯烃的混合物2.24L,完全燃烧后水重4.05克,二氧化碳6.6克,书混合气体平均分子量.求混合气体的成份和体积百分组成 当一氧化碳与二氧化碳质量比为2:3时,氧原子的个数比是多少 包含关系{a}含于A与属于关系a∈A有什么区别?有人说是包含关系指的是集合之间的关系,例如集合A={1,2,3}集合B={1,2},那么A就包含B而属于关系指的是元素和集合之间的关系如集合A={1,2,3},那么1就 集合a属于集合b 集合a是集合b的子集 集合a是集合b的真子集 三种说法的区别
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘