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

在VB中兼容非ACCESS数据库的技巧

HTML文档下载 WORD文档下载 PDF文档下载
在VB中兼容非ACCESS数据库的技巧


西安第四军医大学生物医学工程系电子学教研室 焦纯 杨国胜 王健琪

摘要:本文从VB数据库体系结构的角度出发,结合一个具体实例,阐述了在VB中兼容非ACCESS格式数据库的具体方法和技巧。
关键词:VB、非ACCESS数据库、数据存取对象

  一个完整的数据库管理系统(DBMS)应是能兼容市面上各种较流行数据格式的系统,它充分考虑了不同用户的实际要求。鉴于目前市面上有多种数据库格式(如Foxpro、DBase、Paradox等)流行,因而在VB数据库应用程序中兼容非Access数据库就显得尤为重要了。
  作为一种流行的开发平台,VB提供了强大的数据库功能。主要有以下三种:数据控件法:使用数据存取对象(Data Access Object )法;直接调用ODBC 2.0 API接口函数法。其中调用数据存取对象的方法相对其它两种方法具有方便灵活、功能强大的突出优点。本文即从调用数据库存取对象的方法出发,实现了非Access格式数据库(以FoxPro数据库为例)的建新库、拷贝数据库结构、动态调入等操作,阐述了从编程技巧上弥补VB对这些外来数据库支持不足的可行性。

一、VB数据库的体系结构
  VB数据库的核心结构是所谓的MicroSoft JET数据库引擎,它为VB与数据库的接口提供了基本的方法和手段。JET引擎被Visual Basic、Microsoft Access和其它Microsoft产品所共享。因而在VB中Access数据库格式是一种标准的内置格式,所有的非Access数据库都被称为外来数据库。
  JET引擎的作用就像是一块“面板”,在其上可以插入多种索引顺序存取方法(即ISAM)数据驱动程序。这就是VB对非Access数据库具有丰富支持的真正原因。VB专业版中提供了FoxPro、dBASE(或Xbase)、Paradox、Btrieve等数据库的ISAM驱动程序,这就使得VB能支持这些数据库格式。另外,其他的许多兼容ISAM的驱动程序也可以通过从厂商的售后服务得到。因而从理论上说,VB能支持所有兼容ISAM的数据库格式(前提是只需获得这些数据库的ISAM驱动接口程序)。

二、使用非Access数据库时的参数设置及配置文件的参数读取
  值得注意的是,大多数的程序员都不注重数据库配置文件的使用,殊不知这是极为重要的。
  如果在VB的程序中使用了数据库的操作,将应用程序生成EXE文件或打包生成安装程序后,则必须提供一个数据库配置(.INI)文件,在INI文件中可以对不同类型的数据库进行设置。如果找不到这个INI文件,将会导致不能访问数据库。通常情况下,INI文件的文件名和应用程序的名称相同,所以如果没有指明,VB的程序会在Windows子目录中去找和应用程序同名的INI文件。可以使用VB中的SetDataAccessOptions语句来设置INI文件。
  SetDataAccessOptions语句的用法如下:
  SetDataAccessOptions 1, IniFileName
  其中IniFileName参数指明的是INI文件的带路径的文件名。
  值得注意的是,当应用程序找不到这个INI文件时,或在调用OpenDataBase函数时对其Connect参数值没有设定为VB规定的标准值,如对FoxPro 2.5格式设定为了“FoxPro;”(应为“FoxPro 2.5;”),或者没有安装相应的ISAM驱动程序,则此时VB会显示一条错误信息“Not Found Installable ISAM”。
通常,INI文件在应用程序分发出去以前已经生成,或者在安装时动态生成,也可以在应用程序中自己生成。通常这种INI文件中有“[Options]”、“[ISAM]”、“[Installed ISAMs]”、“[FoxPro ISAM]”、“[dBASE ISAM]”、“[Paradox ISAM]”等设置段,对于一个完整的应用程序则还应有一个属于应用程序自己的设置段如“[MyDB]”。可在其中设置DataType、Server、DataBase、OpenOnStartup、DisplaySQL、QueryTimeOut等较为重要的数据库参数,并以此限定应用程序一般的运行环境。
Windows API接口函数在Win95系统提供的动态链接库中提供了一个OSWritePrivateProfileString函数,此函数能按Windows下配置文件(.INI)的书写格式写入信息。
在通常情况下,应用程序还需要在运行时读取配置文件内相关项的参数。比如PageTimeOut(页加锁超时时限)、MaxBufferSize(缓冲区大小)、LockRetry(加锁失败时重试次数)等参数,通过对这些参数的读取对应用程序运行环境的设定、潜在错误的捕获等均会有很大的改善。
设此应用程序的数据库配置文件为MyDB.INI,则具体过程如下:
Funtion GetINIString$(Byval Fname$, Byval szItem$, Byval szDeFault$ )
 '此自定义子函数实现INI文件内设置段内参数的读取
 Dim Tmp As String, x As Integer
 Tmp = String( 2048,32 )
 x = OSGetPrivateProfileString(Fname$, szItem$, szDefault$, Tmp, Len(Tmp), "MyDB.INI")
 GetINIString = Mid$( Tmp,1,x )
End Function
通过此函数就能实现对各种数据库格式的读取。

三、调用数据存取对象对非Access数据库编程的方法及其实例
  VB专业版中使用数据库存取对象变量(DAO)的方法最具有功能强大、编程灵活的特点。它能够在程序中存取ODBC 2.0的管理函数;可以控制多种记录集类型:Dynaset,Snapshot及Table记录集合对象;可以存储过程和查询动作;可以存取数据库集合对象,例如TableDefs,Fields,Indexes及QueryDefs;具有真正的事物处理能力。这种方法对数据库处理的大多数情况都非常适用。
从VB的程序代码的角度来看,提供给VB程序员的记录集对象(RecordSet)同所使用的数据库格式及类型是相互独立的。即对FoxPro等数据库仍然可以使用众多的数据库存取对象变量,这就为非Access数据库的访问提供了最重要的前提和方法。
在VB中从一种数据库类型转化为另一种数据库类型几乎不需要或只需要很少的代码修改。而且,尽管dBASE、Paradox本身的DDL(Data Definition Language,即数据定义语言)和DML(Data Manipulation Language,即数据操纵语言)是非结构化查询的,但它们仍然可以使用VB的SQL语句和JET引擎来操纵。
因而对FoxPro等非Access数据库而言,调用数据库存取对象的方法同样也是一种最佳的选择。

(一)非Access数据库的新建及库结构的修改
  VB专业版中的数据库存取对象变量可以分为两类,一类用于数据库结构的维护和管理,另一类用于数据的存取。其中表示数据库结构时可以使用下面的对象:DataBase、TableDef、Field、Index,以及三个集合(Collection):TableDefs、Fields和Indexes。每一个集合都是由若干个对象组成的,这些数据对象的集合可以完全看作是一个数组,并按数组的方法来调用。
一旦数据库对象建立后,就可以用它对数据库的结构进行修改和数据处理。
对于非Access数据库,大部分都是对应于一个目录,所以可以使用VB的MkDir语句先生成一个目录,亦即新建一个数据库。而每一个非Access数据库文件可看作是此目录下的一个数据表(Table),但实际上它们是互相独立的。
下面是新建一个FoxPro 2.5格式数据库的程序实例。
Sub CreateNew()
 Dim Db1 As database, Td As TableDefs
 Dim T1 As New Tabledef, F1 As New Field, F2 As New Field, F3 As New Field
 Dim Ix1 As New Index
 Dim Path As String
 Const DB_TEXT = 10, DB_INTEGER = 3
 ChDir "\"
 Path$ = InputBox( "请输入新路径名:", "输入对话框" )
 MkDir Path$ '新建一个子目录
 Set Db1 = OpenDatabase(Path$, True, False, "FoxPro 2.5;")
 Set Td = Db1.TableDefs
 T1.Name = "MyDB" ’新建一个数据表,数据表名为MyDB
 F1.Name = "Name": F1.Type = DB_TEXT: F1.Size = 20
 F2.Name = "Class": F2.Type = DB_TEXT: F2.Size = 20
 F3.Name = "Grade": F3.Type = DB_INTEGER
 T1.Fields.Append F1 '向数据表中添加这些字段
 T1.Fields.Append F2
 T1.Fields.Append F3
 Ix1.Name = "Name": Ix1.Fields = "Name": Ix1.Primary = True '新建索引
 T1.Indexes.Append Ix1 '向数据库的Indexes集合中添加新的索引
 Td.Append T1 '向TableDefs集合中添加新表
 Db1.Close '必须先关闭数据库对象再退出
End Sub
  在此段程序中值得注意的是,对非Access数据库的新建不用CreateDatabase函数,而是用OpenDatabase函数,这点与Access数据库大不一样,但也仅仅是针对非Access数据库而言才能用OpenDatabase函数来新建一个数据库对象。
在VB中,外来数据库的不同格式只在OpenDatabase函数的最后一个参数Connect中有所体现,不同格式的外来数据库其Connect参数值也不同,除此以外,在VB专业版中其编程的方法和步骤及技巧是基本相同的。
新建子目录后,不能用ChDir语句进入它,否则会出现“‘MyDB’ is not a valid path”的错误。同时,对F1、F2、F3等新建字段对象的定义也必须分别定义,否则会出现“Element not defined”(变量未定义)的错误。
通过一定的编程技巧还可以实现非Access数据库的库结构的拷贝,下面是一段相应的程序。
Function GetPos( TFname$ ) ’此自定义函数完成对带路径文件名中最后一个“\”符号的定位
 Dim I As Integer, Tmp As String
 Tmp$ = TFname$
 For I = 0 To 255
  Pos% = Pos% + InStr( 1, Tmp$, "\" )
  E1% = InStr( 1, Tmp$, "\" )
  Tmp$ = Right$( Tmp$, Len(TFname$) - Pos% )
  If E1% = 0 Then '找到最后一个“\”符号的位置,并记下来
   GetPos = Pos%
   Exit For
  End If
 Next I
End Function
Sub CopyStruc( )
 Dim Db1 As database, Ds1 As Dynaset, Td As TableDefs, Fld As Fields
 Dim Fname, SourceF, DestF, Path As String, Pos1 As Integer
 CMD1.Filter = "FoxPro数据库文件(*.DBF)|*.DBF|所有文件|*.*" 'CMD1为一个对话框的控制名
 CMD1.DialogTitle = "调入Ms FoxPro数据库文件"
 CMD1.FilterIndex = 1
 CMD1.Action = 1
 DestF$ = InputBox$( "请输入目标文件名:", "输入对话框" )
 If CMD1.FileName = ""Or DestF$ = "" Then
  MsgBox "源文件或目标文件名为空"
  Exit Sub
 Else
  SourceF$ = CMD1.Filename
 End If
 FileCopy SourceF$, DestF$
 Pos1% = GetPos( SourceF$ )
 Path$ = Left$( SourceF$, Pos1% ) '获得源文件所在的路径名
 Fn$ = Left$( DestF$, InStr(1, DestF$, ".") - 1 ) '获得新文件的数据库名
 'Fn$为实际的Foxpro数据库名,也即CreateDynaset函数内的source属性值
 Set Db1 = OpenDatabase( Path$, True, False, "FoxPro 2.5;" )
 Set Ds1 = Db1.CreateDynaset( Fn$ )
 If Ds1.EOF And Ds1.BOF Then '数据库内的无记录则退出
  TotalNum% = 0
  MsgBox "此数据表为空表!"
  Exit Sub
 End If
 '删除记录,保留库结构
 Ds1.MoveFirst
 Do
  Ds1.Delete
  Ds1.MoveNext
 Loop Until Ds1.EOF
End Sub
  可见,拷贝库结构的方法在于把一个已存在的数据库拷贝到一个新文件中,然后再删除新文件内的所有记录,保留其库结构,得到的就是一个新建的库结构完整的空库。

(二)非Access数据库的动态调入
  在实际应用的很多情况下,经常需要在对一些事先并不知道其具体库结构的数据库进行调入、显示及打印其记录。因而实现未知格式数据库的动态调入也是评价VB数据库应用程序兼容性的一个重要标志。
在VB中,网格控件非常适合用于浏览数据库中的数据,只需把数据放入网格即可。
在使用网格时动态调入的关键在于记录(Colume)内容和字段(Row)内容(包括字段的名称、类型、值等)的读取,因而生成一个可以对应于一个或多个数据表中的全部或部分记录的Dynaset对象是非常必要的。Dynaset对象还可以是一个动态查询的结果,能进行记录的增加、删除和修改等操作。
下面是一段用网格显示FoxPro数据库的程序。
Sub DBLoad( )
 Dim Db1 As database, Ds1 As Dynaset, Td As TableDefs, Fld As Fields
 Dim Fname, Tmp, Path ToTalNum As String, I, J, Pos1 As Integer
 Dim MyNum '定义一个变体型数据
 CMD1.Filter = "FoxPro数据库文件(*.DBF)|*.DBF|所有文件|*.*"
 CMD1.DialogTitle = "调入Ms FoxPro数据库文件"
 CMD1.FilterIndex = 1
 CMD1.Action = 1
 Fname$ = CMD1.Filename
 Pos1% = GetPos( Fname$ )
 Path$ = Left$( Fname$, Pos1% )
 Tmp$ = Right$( Fname$, Len(Fname$)-Pos1)
 Fn$ = Left$( Tmp$, Instr( 1, Tmp$, ".") - 1 )
 Set Db1 = OpenDatabase( Path$, True, False, "FoxPro 2.5;" )
 Set Ds1 = Db1.CreateDynaset( Fn$ )
 If Ds1.EOF And Ds1.BOF Then '数据库表内无记录则退出
  TotalNum = 0
  MsgBox "此数据表为空表!"
  Exit Sub
 Else '显示数据库表内的实际记录数
  Ds1.MoveLast
  TotalNum = Ds1.RecordCount
  Grid1.Rows = TotalNum + 1 '置网格的实际行数
  Total.Caption = Str$(TotalNum)
 End If
 '置网格的实际列数并置每列的宽度
 Set Td = Db1.TableDefs
 Set Fld = Td( Fn$ ).Fields
 Grid1.Cols = Fld.Count + 1
 Grid1.ColWidth(0) = 600
 For I = 1 To Fld.Count
  Grid1.ColWidth(I) = 1500
 Next I
 '在网格的第一行内填入字段名
 Grid1.Row = 0: Grid1.Col = 0
 Grid1.Text = "序号"
 For I = 1 To Fld.Count
  Grid1.Col = I
  Grid1.Text = Fld(I - 1).Name
 Next I
 '在网格中填入相应的数据
 Ds1.MoveFirst
 I = 1
 Do While Not Ds1.EOF
  Grid1.RowHeight(I) = 300
  Grid1.Row = I
  Grid1.Col = 0
  Grid1.Text = I
  For J = 1 To Fld.Count
   Grid1.Col = J
   MyNum = Ds1.Fields(J - 1).Value
   '对记录的数据类型进行判断后做相应的处理
   If IsNumeric( MyNum ) Or IsDate( MyNum ) Then
    Grid1.Text = Str$( Ds1.Fields(J - 1).Value )
   ElseIf VarType( MyNum ) = 8 Then
    Grid1.Text = Ds1.Fields(J - 1).Value
   ElseIf VarType( MyNum ) = 0 Or VarType( MyNum ) = 1 Then
    Grid1.Text = ""
   End If
   On Error Resume Next
  Next J
  Ds1.MoveNext
  I = I + 1
 Loop
 Ds1.Close
 Db1.Close
Exit Sub
  最后应记住,在VB的数据库应用程序运行之前,一定要在AUTOEXEC.BAT文件中加入一句SHARE.EXE /L:500。
以上所有程序均在Pentium/166机、中文Windows95下用VB4调试通过。

四、结束语
  对非Access数据库的兼容是VB数据库编程中不可分割的重要部分。因而熟练掌握使用DAO方法对非Access数据库的编程是极为重要的。并且,一定编程技巧的应用也有助于弥补VB对外来数据库支持的不足。

参考文献
1 【美】Que CorPoration 《开放数据库互连—ODBC 2.0使用大全》清华大学出版社 1995;18:255~276
2 美 Darwin Boyle等 《 Visual Basic 4 Developer's Guide 》北京:机械工业出版社 1997.1
3 美 Stefano Maruzzi 《The Microsoft Windows 95 Developer's Guide》北京:机械工业出版社 1997.1




PayPal首席安全官:靠密码验证身份即将寿终正寝 DRM你又赢了:其API纳入HTML5标准 豌豆荚王俊煜:洗白白其实是一个计划外的产物 抢Google等巨头生意,纽约大学小伙挖掘并出售自己数据 noBackend:前端优先的开发模式 C、CPP const 详解 三星5G技术获得突破性进展 未来传输速度可达10Gbps 5月14日:1984年美国社交网站Facebook创办人Mark Zuckerberg出生 Chartkick:一行代码即可绘制出漂亮的图表 用友UAP将打造开放平台 建应用商店销售企业级应用 共享软件营销:如何将你的产品推向海外 谷歌使用Debian Linux作为GCE的默认操作系统 大数据?别唬人了!我们真的需要盲目烧钱追求大数据吗? 日本社交手游公司GREE巨星陨落 中国区全员被裁 战歌:85后手游开发团队背后的故事 分秒钟做款App:细数国内外在线DIY应用网站 指点传媒CEO专访:紧握二三线市场用户命脉 专访Waygo创始人:白切鸡怎么翻译? 探究共享软件海外营销新策略(西安站) 讲师秀8:车音网沈康麒和他的智能驾车服务 数据可视化独领风骚:看这6家初创公司如何玩转大数据? 最新研究显示:IE10防恶意软件能力比Chrome等浏览器都要强 Windows Blue正式定名Windows 8.1 对Windows 8及RT用户免费 Testin云测试破1000万次 自动化测试成趋势 接手Android后首次接受媒体采访 Sundar Pichai谈Android未来 C语言实现二分法查找 让开发者高效编程的10个新框架 Google Analytics中显示访客停留时间为“0”的秘密 大数据之惑 麻省理工三位物理学家自建数据库服务Cloudant 融资1200万美元 网页浏览器进入再造新时代 如果主键和其他表的外键相连是不是没有办法删掉其中某些表的数据吗? 求助:xls用odbc不能编辑,出错:Syntax error or access violation PE格式的资料你有吗? VB 中的类模块与模块之间的联系是什么? 怎样从windows访问linux的ext3分区? 关于CFM-Resources免费空间(asp+cf+access+30M)的问题!100分 消息接收后拆分,毕设急!!60分已经是倾我所有了 热心的VC大虾,请多帮忙 请问如何用JAVASCRIPT获取服务器时间,并以字符串形式输入,如:200206021943,谢谢! ADO访问access数据库,怎样删除一条记录???? 关于字符串转日期型的值的问题 Tadoquery中参数返回的问题 请问各位高手门,现在公司的数据库编程普遍用哪种模式ADO或ODBC? 如何在CFormView中添加位图背景?? 谁来帮我看看这几行程序!我实在无法解决,谢谢! 请问如何自己编程使用Logitech QuickCam 人工智能的问题(乜人都要睇) 400分题目问题要解决了就立刻、马上、立即、给分! 菜鸟问题c++中清屏函数在哪? 请问哪里有c#语法的速查手册,最好有与vb的对照版? ISA声卡,CD与ME! 帮帮忙,一个很简单的sql语句 机器的电源关不了?(重谢!) 对话框算窗口吗? Delphiz中的Excel报表问题(十万火急!!!) help 请各位帮忙介绍一本linux的入门教材,多谢!! 菜鸟送分了!(报表打印问题) 学编程N个月了,我今天要学会HOOK到底是什么函数怎么用的,想吐血的先近来~~~~ 报告D6的一个BUG 要编写象boot.ini这样的 文件 我 应该学习什么 project工程文件????? 杭州的Delphi程序员,我在华星。留下QQ和Email吧。 求救一个语句 如何实现数据库的事务操作,对记录进行编辑?高分相送。 通信 ISP拨入电话,北京地区还有八位的吗? 毕业设计的朋友进来签到?(我做个统计) 如何引用上一级对话框 怎样获得主板BIOS版本\厂商号,版权? 中科院软件学院的项目经理硕士怎么样?听说师资力量很好 小问题:如何获得字段protect的值? 有可能在游戏中,例如星际,弹出对话框吗? oracle监听配置 如何实现 透明贴图--屏蔽图片背景颜色,显示图片主体 和 底图背景? 我想看世界杯,但电视偏偏坏了,还正好从开赛的时候开始坏,真是受不了啊,天哪 世界杯开始了。。没地方看球。。惨啊。。 请大家讨论中专生与 VC++(UP 者有分!) 一个极菜极菜的代码问题。。。。---此恨绵绵无绝期 New transaction cannot enlist in the specified transaction coordinator 我很遵守纪律的.为什么我的信誉分数少了几分不公平啊! 大气污染主要包括些什么 已知光从一种透明物质进入另一种透明物质的界面时,既发生反射又发生折射.图是光从空气斜射入玻璃中的光路图,已知∠1=∠4,FG⊥DE,则界面为,法线为,入射光线为,反射光线为,折射光线为 ,入 矩形ABCD内接于直径为4的半圆,试求矩形面积S的最大值. 标准气缸工作温度如题,标准气缸可在多少温度范围内工作. 光在透明物体中会反射吗 液体不能压缩吗? 蓖麻油酸和甲醇反应产生蓖麻油酸甲酯需要什么条件?如题 大棚种的西瓜甜吗? 钟乳石每一厘米形成需要多久 在一段双轨铁道上两辆火车同时驶过,一车速度是20米每秒一车速度24米每秒,车长分别是180米160米,求两...在一段双轨铁道上两辆火车同时驶过,一车速度是20米每秒一车速度24米每秒,车长分别是 三点水加火和月拼一字还有拼好了怎么读、谢谢. 钟乳石怎样形成的 在一段双轨铁道上,两列火车迎头驶过,A车的速度为20m/s,B车的车速为25m/s,若A车车长200,B车长160, 提手旁和三点水旁是什么意思 现在的西瓜是大棚的吗? 氢气和重氢是同一物质吗 光纤 玻璃和塑料哪个传输速度快,还有谁能举出来下传输速率最快到最低的介质.谢谢 怎样建设西瓜大棚 汽车的油浮子在哪拿出来看 透明玻璃与透明塑料的区别? 问圆的面积和它的半径;正方形的面积与边长;长方形的面积一定,它的长和宽.以上那个属于正比例函数关系 对于每个人,特别是青少年来说,在现实生活中如何做到勤俭节约? 用红绿两块玻璃或两张塑料透明纸分别放在你的左右两眼前,如果你只睁开一只眼,眼前看到的白纸会是什么颜色?当你睁开双眼是,眼前又会是什么颜色? 正方形和三角形,正方形的边长和三角形底的比是3比4,边长与高的比是3比4,正方形和三角形的面积的比是多少? 现在人们的生活已达到了良好的水平,为什么还要提倡勤俭节约?只要你知道,就请你踊跃回答. 石钟乳如何形成的 光可不可以压缩成液体的?恩恩恩、谁会,赶快说. 被污染的河流可能含有哪些化学物质 如果地球被破坏,我们的生存方法? 摩尔质量 等于质量数? 透过绿玻璃的光是什么颜色 现在的人生活好了.但是环境就给破坏了.人到底还能在这个地球上生存多长时间? 摩尔质量等于什么, 在无任何光源情况下,绿色光照射在蓝色透明玻璃上,看到玻璃颜色变为什么急 充电时把铅蓄电池的负极接在外电源的正极这句话错在哪?充电时,不是阴极接外电路的正极吗? 蒸馏水中含氧分子么 有一块光屏,有一块绿色的透明玻璃,一束红光照射在绿玻璃上,绿玻璃成什么颜色?为什么?透过绿玻璃,在光屏上能看到光吗?什么颜色的?又为什么?把光屏换成红纸,看到的纸是什么颜色? 在铅蓄电池充电过程中,为啥正极负极质量减少 蒸馏水中不含氧…? 三点水做偏旁一共十三笔画的字有哪些 铅酸蓄电池为什么低温下正极的充电接受能力比负极好? 电池充电过程中电流由负极流向正极的吗? 如何除去水中的氧气和二氧化碳 铅酸蓄电池以什么为负极,什么为正极还有什么为电解质 我用不稳定电压给电池充电要防倒流,那么是把二极管安在电池正极还是负极,还是两端都要分别接? 显除了加三点水还能加什么偏旁为一个字在组成五个新字 若矩形ABCD的两个顶点A.B在x轴上,C.D 在函数y=-2x^2+4x+2(0maobashi求导得:S'=-12K^2+8 化学电池充电时阴极阳极和放电时正负极的判断 一个煤矿,9月份产煤1.56万吨,__________10月份产煤多少万吨?(用方程解答)就是补充条件在列式计算 某瓜农采用大棚栽培技术种植了一块地的良种西瓜,这块地产西瓜约600个,在西瓜上市前该瓜农随机摘了10个成熟的西瓜,称得西瓜的质量如下:估计西瓜产量.我,早就,看懂了……………… 哪些科学技术发明,它们为人类社会带来了什么样的变化好的变化 某煤矿计划全年采煤120万吨,第一季度只完成了计划的20%,以后每月平均采多少万吨煤,才能超额10%完成任务. 请问煤化工中的甲醇和合成氨生产流程有什么区别啊?都是先煤气化》?然后合成氨或者甲醇?气化装置有不同吗?合成装置不一样? 把长为a的铁丝折成矩形,设矩形的一边长为x,面积为s,求s与x的函数关系式,并求出s的最大值 谁有合成氨工艺的探讨的论文 合成甲醇与合成氨的共同点与不同点? 求在y=-x^2+4x 函数图像中 设矩形ABCD的周长为L求L最大值 空气污染主要有哪些 光射到透明物体的表面上会发生反射吗 在一个等腰直角三角形内部做一个矩形ABCD其中等腰三角形腰长为10厘米,则矩形ABCD面积最大值为要详细 我给10分我会了 不用了
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘