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

在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中都能用到的.

2015网页摄影图的六大流行趋势 原生体验挡不住!JavaScript开源跨平台框架NativeScript 自行车,恰到好处的“智能” 联通WO+开放平台:保护消费者权益就是保护移动互联网生态 2015年Google Code Jam编程挑战赛开始报名 Impression Pi:VR头盔的进阶形态 King.com和Halfbrick Studios成功背后的21款工具 五大实用技巧 帮设计师实现高效会议沟通 机遇与挑战并存 Testin进军众测 新增多SIM卡API,Android 5.1 SDK正式发布! 谷歌代码托管平台Google Code将正式关闭 提升Sketch使用效率的6个实用技巧 界面设计原则之一篇:权衡优先级 突出焦点 划分好内容层级 开源的ResearchKit:苹果将如何颠覆未来医疗? CocoaPods 0.36正式发布,实现Swift和iOS 8动态框架支持 C++入门学习书籍推荐 GitHub是如何征服Google、微软和其它公司的 约见越狱大神!2015 MSS移动安全峰会议程披露 Spark 1.3更新概述:176个贡献者,1000+ patches 从游戏设计到星际探险,微软HoloLens全息技术将改变什么? 触摸屏技术未来?详解Apple新手段Force Touch 专访云适配CEO陈本峰:紧跟HTML5热潮,Web组件化知多少? QQ音乐5.0全新设计过程要点解析 GDC 2015感悟:从0到1,VR投入手游开发路漫漫 TestBird发布手游真人众测平台——附中国手游兼容性测试白皮书 与用户的再一次连接,微软的免费升级计划背后 颠覆App!LayaBox用Flash开发重度HTML5游戏 WinHEC:微软小娜与小冰正式登陆Windows 10平台 Coursera工程师董飞:典型硅谷公司大数据实战分析 微软开源Visual Studio构建工具MSBuild 死而复生!下架6月,Launcher重回App Store OICQ问题! 如何可获得Table 内字段的类型及长度? windows2000 server 的internet 共享怎样设置权限 软件开发的请进来讨论,关于报酬的问题。大家多提建议。 1.为什么有些地方可以用MessageBox函数,有些地方不可以2.mfc的CView::OnFilePrint提供了打印的方法,要是一个程序没有视图要打印一般用什么方法? 请问在DEVELOP2000里面可以使用进度条控件吗?怎么编程实现? ???oracle监听器问题? WebBrowser控件获得网页中文本框的名称该如何写? CFtpConnection 怎样在FastReport中控制或判断所连接的数据库表到了eof? CTypedPtrList模板对象中,如何删除指定位置的元素??十分着急! ms sql server 的技术问题 怎样清除事务日志????????? 在那里改个人在cdsn.net注册信息(如名字,地秩)? 关闭窗口的事件如何触发?( 高手们请问deiphi如何实玩宏代换???????????十分火急!!!!!!! 请帮忙!!SOS!!! 请问如何实现宏代换????????????? 关于打印的一个不错的设想 我是新手,初次接触网络管理,请问要管理局域网需要具备哪些方面的知识,需要安装那些应用软件?有什么好书可以介绍吗?谢谢各位! 在VB中设计控件,其上放有uText1、Text2,当uText1失去焦点时,并不触发Validate事件 如何在程序中判断是否做了超级连接? 怎样使listview中的大图标左右居中,上下居中。 怎么样处理聊天室的退出问题? 比较大的问题,请做过JAVA系统集成方案的朋友指点!!! applet,这个霸道的家伙!怎么解决阿? c++类的一个小问题 一个大家都很棘手的问题 关天构造函数的问题 学习《windows程序设计》中的问题? pb8里的autoscript怎么弹出那么慢 消息:c++与Visaul c是不是有一定的区别呢? 怎样通过程序获得当前可用的拨号网络列表?? 高手在哪里?-------> 如何在第一时间里获得屏幕的变化呢?及获得屏幕变化的那部分?各位大师,帮帮我。谢了。 请问想具备基本的网络和数据库管理方面的知识,看什么书好啊?请大家帮忙推荐一下,谢谢! 请教W2k下使用Access的问题 大家帮帮忙,sql菜鸟问题, 各位兄弟帮忙看一下 谁知道高程分数线?拜托告知一声! 如何判断是否做了超级连接? vc中怎样调用dos下的代参数的可执行文件???请教! 如何让TreeView控件的每一个子节点前有一个多选框! jbuilder4中的JGL的问题 如何构建一个数据仓库(高分求救) 怎么样在NT里看到我的电脑装了哪些硬件? 查找数据不连系变化 招聘WINDOWS界面程序员(可兼职) 哪里有介绍cricheditview的中文文章,最好是详细一点的,谢谢! 怎么样将NT里的Temp这个文件移到别的分区? 刚买的机器回来却出了问题(请教高手) 小问题70分,谁解决了就送给谁 Server对象中,由两个方法跳转到其它网页,一个是 Execut() 另一个是什么?? 高一关于化学计量这类的题有没有什么总结的经验 化学差量计算天平左右分别加入等质量等浓度的H2SO4,左边加入氧化钠5.2g,欲使天平平衡要向右边加入氢氧化钠、碳酸钠、碳酸氢钠、金属钠、氯化钠各多少克?这题主要是题意的理解,是这些物 生活常识 盐的妙用盐在生活中的一些用法不要抄袭网上的哦,要自己答得才行 高一关于物质量的计算的化学题现有200mL H2SO4和NA2SO4 的混合溶液,其中硫酸的物质的量浓度为1mol/L,硫酸钠的物质的量浓度为0.5mol/L,若要配制硫酸和硫酸钠的物质的量浓度分别为2mol/L和0.2mol/L的 关于化学中的差量计算 下列常见盐在生产、生活中的用途不合理的是A用亚硝酸钠腌制食品B硫酸铜精炼铜C用纯碱小号面粉发酵生成的酸D用食醋去除水垢 食盐的成分 高一关于化学计量这类的题有没有什么总结的经验,我化学不好, 将一定质量的小苏打和铜混合物在空气中加热到质量不再变化时,发现加热前后质量不变,则原混合物铜的 质量分数.差量法我应该怎么找它们量的 关系呢?我每次拿到题 都不知道如何动笔.特 食盐的成分是氯化钠这句话是描述食盐的什么性质?是物理性质还是化学性质 下图是医院病人输液使用的一瓶质量分数为5%的葡萄糖(C6H12O6)注射液标签,请你认真观察标签上所列内容然后填写.①该溶液中含水多少克?②该溶液的密度约为多少?③该溶液的物质的量浓度为 化学问题(关于差量计算)加热碳酸镁和氧化镁的混合物m克,使之完全反应,得剩余物n克,则原混合物中氧化镁的质量分数是什么? 高一化学必修一物质的量习题8.4g氮气和9.6g某单质Rx所含的原子个数相同,且分子个数之比为3:2,则R的相对原子质量是——,x的值是——.小学生绕道,知道的来 海水中含多少盐 将CO和CO2的混合气体2.4g,通过足量的炽热的CuO后,得到CO2质量为3.2g,求原混合气体中CO和CO2的质量各为多少g? 练习题一、填空题 1.5molCO2的质量是______;在标准状况下所占的体积约为______;所含的分子数目约为______;所含氧原子的数目约为______.2.在400mL2mol/LH2SO4溶液中,溶质的质量是______.此溶液中 3 乙烷在空气中燃烧与在氧气中燃烧的现象,原因,,及危害 硫磺燃烧的化学方程式是什么急! 这里有个高一化学方程式,请配平,Na2SX+NaClO+NaOH=Na2SO4+NaCl+H2O注意:其中x为未知数!还有一个比较简单:K2Cr2O7+Fe3O4+H2SO4=Cr2(SO4)3+Fe2(SO4)3+K2SO4+H2O 在一密闭容器中盛有H2,O2,CL2组成的混合气体,通过电火花引爆后,三种气体恰好完全反应,经充分冷却后所得溶液的质量分数为33.4%.求原混合气体中H2,O2,CL2体积的简单整数比.(用小于10的整数表 硫黄在纯氧中燃烧的化学方程式 高一化学方程式配平的方法 高一简单化学计算求过程在4L容器中加入18g水蒸汽,28g一氧化碳,在t度c(>100)发生如下反应:CO+H2O(g)=CO2+H2,在最初5S内,一氧化碳的平均反应速率是0.02mol/(L.s)求5s未时,容器内二氧化碳的质量? 硫磺在空气中燃烧的文字表达式 什么植物里有盐的成分 铁粉和氧化铁粉末一共48.8g,加入700ML的稀硫酸中,恰好完全反应,得到氢气2.24L(标准状况),想反映后的溶液加入NH4SCN溶液不变红.1.求铁和氧化铁的质量2.原稀硫酸的物质的量的浓度 高一上化学计算题一块表面以部分氧化(氧化层为Na2O)的金属钠样品质量为5.22克,放入94.98克水中后得到气体的质量为0.2克求①该样品含氧化钠多少克?②所得浓液浓质的质量分数为多少? 高一化学方程式怎么配平 8.8g FeS固体置于200ml 2.0mol/L 的盐酸中,以制备H2S气体.完全反应后,若溶液中H2S的浓度为0.1mol/L,假定溶液体积不变,求:1.收集到的H2S气体的体积(S.T.P)2.溶液中Fe2+和H+的物质的量浓度我想问的只是 把密度为1.32/ml的硫酸溶液逐滴加入氯化钡溶液中,直到恰好完全沉淀为止.已知生成的溶液质量等于原氯化钡的质量,则硫酸的质量百分比浓度为--------,物质的量浓度为--------- HNCO+NO2→N2+CO2+H2O 高一简单化学计算,帅哥美女帮忙~现有某盐酸36.5克,其中HCl的质量分数为10%,盐酸密度为1.05g·cm-3.试计算:(2) 求Cl-的物质的量浓度是多少?(保留两位小数) 把70ml H2S和90ml O2(STP)混合在一定条件下点燃,使之反应.当反应完全后恢复到原来状况,可得SO2多少?(不考虑SO2在水中的溶解) 第一题:AgF+Cl2+H2O---3AgCl+AgClO3+4HF+O22:KMnO4+FeSO4+H2O---Fe(OH)3+MnO2+Fe2(SO4)+K2SO4纠正 是Fe2(SO4)3第一题没系数存在 打多了 大海的含盐率一定,海水和盐成什么比例?如果成比例,成什么比例 需求· · · 物质的量入门题!大师请过目纠错!顺便把空着的写下过程! 海水的准确含盐率希望能够得到正确答案 在海水晒盐的过程中发生了什么反应 高一入门化学 物质的量的问题1.a mol 硫酸中含有b个氧原子,则阿伏伽德罗常数可表示为 A 4b分之a 摩 B 4a分之b 摩 C b分之a 摩 D a分之b 摩2.配置50摩的HCL 6摩的KCL 和24摩的K2SO4的营养液 ,若用KCL HCL 海水的含盐比例是多少? 直接把海水晒成盐,要不要再加工工处理? 物质的量 题若以μ表示水的摩尔体积,V表示在标准状态下水蒸气的摩尔体积,ρ为在标准状态下水蒸气的密度,NA为阿福加德罗常数,m、△分别表示每个水分子的质量和体积,下面四个关系式,其中 150吨海水中含盐4.5吨,求海水的含盐率. 与氢气有关,第13条,为什么氢气后面不加向上的箭头, 海水含盐比例是多少?急~~~~~~~ C2H6燃烧方程式 氢气的化学方程式怎么写 海水的含盐量是多少? 化学计算2道 两种饱和一元醇的混合物11.5g,与足量的金属钠反应,可生成0.25g氢气,这两种醇分子组成上相差2个CH2原子团.(1)推导并写出两种醇的结构简式;(2)计算混合物中相对分子质量较小的醇 关于粗盐配置质量分数一定的氯化钠溶液.现欲将粗盐提纯,并用制得的粗盐配置质量分数一定的氯化钠溶液,下列说法正确的是A.粗盐溶解时,可边加粗盐边用玻璃棒搅拌加快溶解B.蒸发溶液时, 为什么海水里含有大量的盐?人们都听说过海水里含有大量盐吧,可为什么含有那么多盐呢? 乙烷不完全燃烧方程式如题,告诉我啊,各位化学天才~~ 海水的出盐率一定,晒出盐的质量和海水的质量成比例吗?成什么比例? 海水中为什么含大量的盐? 25.用19.2克铜与足量的浓硫酸共热,充分反应后:(1)反应中被还原的硫酸的物质的量的多少?(2)在标准状况下能产生多少升气体?26.在160 mL未知浓度的稀硫酸中,加入100 mL浓度为0.4 mol/L的 在海水“晒盐”过程中,当什么什么现象出现时.就说明Nacl溶液已经饱和.什么.什么.等自然条件有利晒盐 已知,乙烷的化学式是C2H6,90克乙烷含碳元素多少克?多少克乙烷中含氢12克?乙烷和二氧化碳混合物中含氢元素的质量分数是11.2%,则该混合物中领导氧元素的质量分数? 海水中为什么含大量的盐? 6.下列常见盐在生产、生活中的用途不合理的是6.下列常见盐在生产、生活中的用途不合理的是( B )A.用亚硝酸钠腌制食品 B.用硫酸铜精炼铜C.用纯碱消耗面粉发酵生成的酸 D.用食盐生
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn