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

在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




千万级并发实现的秘密:内核不是解决方案,而是问题所在! Apache RewriteRule重写规则语法入门 IDC:2013 Q1 Android和iOS出货量占92% WP首超黑莓 传雅虎欲10亿美元收购轻博客网站Tumblr A Beautiful Mess:如何赚男人女人的钱 CSS、JavaScript开发者必备的10款最佳工具 IBM推出API管理平台 抢占API经济市场份额 2013中国云计算榜单之一:15云平台,谁主沉浮? 移动周报:百万壁纸、85后程序媛,我为梦想代言! 电信天翼开放平台:为App开发者免费提供云存储和云主机服务 Google新的Web UI库:Ploymer 研发周报:让开发者高效编程的10个新框架 拯救行将就木的PHP:谷歌为GAE添加PHP支持 PPT集萃(一):10位业内高管分享云计算技术理念与行业趋势 得益于苹果谷歌,未来可穿戴技术市场规模可达500亿美元 雅虎11亿美元押注Tumblr三大因素:用户、社交、内容 Perceptual:英特尔感知计算挑战赛 正式启动 吴义坚:创业去!我用深度神经网络,处理语音识别 浅谈用户体验的“反面模式 可穿戴设备又一站:增强现实眼镜CastAR 数字医疗投资将破纪录 投资人看好这些细分领域 Mayer又下一城:雅虎收购Tumblr推进移动化? 前端开发利器:代码预处理工具Prepros 一个轻量级的JavaScript库:Reactor.js [探讨] 用户体验设计师现在面临怎样的机遇和挑战? PPT集萃(二):淘宝、CloudStack等分享的架构经验与最佳实践 2013中国云计算榜单之二:64家云主机+云存储,错综复杂! 看Java技术基础的eBay如何评价他们的Node.js首次尝鲜 Jolla发布首款Sailfish系统手机 无缝兼容Android应用 NPD:全球智能手机出货量2013年将首次超过功能手机 聚合数据左磊:不走寻常路 做国内最好的数据聚合平台 我看SARS危机 求助 我该怎么办??? 管理登陆问题解决?? 一个简单的问题,如何对字符串进行减操作? 谁用过struts,进来交流一下! 请大侠看看俺的小程序,哪里错了(关于不规则图形填充) delphi查询问题(急需) 急求:从硬盘安装windowsxp时电脑出显不能安装,找不到eula!如何解决? 系统分析员VS博士 C#连接Oracle? 关于<BASE> 那里有WebDB下载啊. 在ListCtrl里加类似Combo Box的东西,能实现吗? windows2000下vb的一个小问题~~ 如何把当前路径加入查找路径中?立即给分! 对选用不同的纸张大小,在预览中能看出效果吗? 请问怎么在PB6.0中实现Foxpro(*.dbf)的数据导入,到ASA库中 j2me里怎么才能实现图象的滤镜效果?waiting... CDbSet m_dbSet(NULL)在哪一步才能得到一个CDatabase对象的错针? 新手提问:“镜象”是什么意思 求教,如何配置使性能达到最佳,详情见文 怎样在广域网中提高传屏响应速度?帮帮忙!急啊. 在文件钩子当中如何判断是打开文件操作,还是创建文件操作 怎样在applet程序中显示一幅jpeg图片?该图片存在于c:\image\下。 去年12月是谁发的帖子“做项目经理难么” 关于图层拖拽的问题 我有一块硬盘,迈托4.3G,开格式化分时说错误设备或0磁道损坏,后来fdisk分区,启动无效 这是个什么错误啊~ 第一次做控件不明白 给点指点啊 急求:从硬盘安装windowsxp时电脑出显不能安装,找不到eula!如何解决? 不用的控件怎样从工程中删除? 怎样将一个表中的全部数据追加到别一个表的后面????在线 我做软件这些年 求scjd的模拟题 为什么我连续给一个socket send三次,socket一次就接收完了? 关于HTML代码不区分大小写? 大家看一下这个CListCtrl是啥回事?? Turbo c++3.0怎么使用? 《水园MSN俱乐部宗旨》 ODBC连接数据库的一个问题求教 如何让网页一打开就是全屏模式? 关于打印的问题 怎么彻底卸载linux啊!放分100 如何移动无模式窗体? 一个网络版软件的共享使用问题 在线等待!!! 一个网络版软件的共享使用问题 98怎么与xp不能连网玩游戏?高分送!! 有个问题请大虾帮帮忙! 我该怎么办呀??? ★怎样让窗口的resize在某一指定的范围内? 为什么说常温常压下,8克氧气含有4NA个电子?8克氧气在标况下才是0.25摩尔啊,怎么在常温常压下也是0.25摩尔?常温常压和标况不是不同的吗, 化学怎样学容易一点 单独的一个数字到底有没有系数啊?为什么? 为什么存在万有引力呢? 紫外线的应用 单独一个数字比如7有没有系数?如果有,是什么?单独一个字母比如a的系数是1吗? 万有引力存在?假设在一绝对真空中,有两静止物体,根据万有引力定律,两物体会受到相互作用力,从而产生加速度,最后碰撞,能量是不会凭空产生,但为什么凭空产生加速度,产生能量? 食用棉籽油的好处?听说棉籽油适合于高血压患者(不太肯定)不好意思 我想问的是吃棉籽油的好处或益处 1—丁炔最简式是什么? 从21千克棉籽中能榨出5.1千克油.照这样计算,7千克棉籽能榨出多少千克油?如果要榨出12.75千克油需要棉籽多少千克?判断下面的量成什么比例?(1)电费的单价一定,用电量和电费总价.( )(2 芦苇造纸残余苇屑能否做机制炭我这附近有用芦苇造纸厂,切苇后剩余的苇屑苇渣等能否做机制炭?做炭的质量怎么样?有没有明白人详细说下 这个数的系数 一种棉籽,每千克出油20分之7千克,200千克棉籽可出油多少千克? 建议书格式(带范文哟!还是给校长的啊!)一定是五百字的呀! 丙炔和H2组成的混合气体5L,在催化剂的作用下充分反映后得到的气体体积及为V升,均在标况下测定.问若H2在混合气体中的体积比值为X,计算X在不同值时反应后气体的总体积V(用X的代数式表示 司南为什么要做成勺子形? 植物烟碱酸是什么? 15岁的女学生经常流白色液体对身体好吗 谁了解干气密封和机械密封,我对此一点不懂,希望能得到详细的解说. 哪些食物含有尼古丁? 总是产生幻觉不知道什么原因? HOCH2CH2NHCOCH2CH3的水解反应方程 万有引力为何存在? 丁达尔效应既然是物理变化而不是化学变化的话为何不在物理学而在化学里出现? 长期在高温条件下工作的钢材,会产生哪些组织劣化? 为什么存在万有引力? 烟草中本身就含尼古丁,还是燃烧后产生尼古丁 中国木材产量是世界最多的吗? 请问风能电动车的风能发电机功率是多大,给蓄电池的充电需要经过那些程序原理是什么请问风能电动车的发电机功率是多少,充电的原理是什么需要经过那些程序 榨油机压榨棉籽水分含量多少最好 电磁炉保险丝处接假负载(灯泡)开机,加热盘怎么弄 运输衣服400箱每箱运费30元,若损失一箱不但不给运费还陪100元,运完后总运费是8800元,问损失几箱 氨水、氯水、醋酸的水解方程怎么写? 在三角形中,已知sinA+sinC=psinB,p属于R且ac=1/4b方 若角B为锐角,p的范围 发电机组是以柴油为动能好还是以汽油为动能好? 有一个正方形的池子,边长为1丈,池中心有一株芦苇,露出水面1尺.将芦苇拽至池边,它的末端刚好与池面一 为什么光学显微镜的目镜通常都是15×? 电站内部可安装柴油发电机组,严禁使用汽油发电机组,这是为何? 正方形池中长芦苇 水池的边长是10尺 芦苇露出水面1尺 将芦苇拉到水池一条边的中点 与池边平 水池深几尺? 地球对光是否存在万有引力? 新买回来的棉质被单、被罩,味道特别重,是什么缘故?对人体有什么危害吗?如何去除?看了你回答蚊帐的题目,是用同样的方法吗? 600kw重庆康明斯发电机组的价格 电磁炉为什么是在保险串联灯泡在线盘并联灯泡还可以理解,但大家说在保险串联灯泡就不懂了,是代替保险还是串在电路里?我还是个学徒, 急.尼古丁能与什么气体产生化学反应? 九九文章网怎么打不开 电磁炉保险处串联1个灯泡,通电后 灯泡暗红 开机 灯泡稍微亮点 但不闪烁 油脂和尼古丁能反应吗 我怎么打开我保存到草稿箱里的文章啊?我从《世界之窗》进入“新浪”,写了一篇文章但没写完,就保存到草稿箱里了.过后又来写,完事后就怎么也不能把后来的文章保存到草稿箱里去了.用鼠 电磁炉一加热烧保险丝怎么修灯泡怎么带 新买了一套被套,有很重的化学印染味道,不知道是不是二氧化硫和硫化氢,洗了几次还是有,新买了一套被套,上面有很重的化学味道,可能是印染的残留,不知道是不是二氧化硫和硫化氢,洗了几 在新浪博客如何把文章保存在草稿箱里? 对于十字相乘法练习题系数不为一的题,如何一眼就看出分解成那两个数如6x²-x-1=(2x-1)(3x+1) 就知道分解成2和3,简略点, 尼古丁和乙醇会发生什么化学反应 植物细胞壁是否含有淀粉 8g氧气所含电子数为多少摩尔错了,是多少个..lb牛人的答案很好,修改一下就能采用了 尼古丁有什么反应 不是说女人高潮流出来的是透明液体吗?怎么我女朋友流出来的前面有点透明,后面是乳白色的呢? 常温常压下,3.5gCl2所含电子数?常温常压下,3.5gCl2所含电子数如何计算? 怎么学化学更容易 炔类燃烧通式?单单是炔类! 第二届世界浙商大会 杰出浙商获得者热国际财经一周大事预报美被曝曾就监听亚太寻日本协助尼日利亚多地暴发霍乱疫情 已造成百余杭州绕道上海直飞高雄迎“低票价时代”男子辞公务员被认“异类”:压力大不如伊拉克首都系列爆炸致29死88伤美国记者出书曝卡斯特罗曾否认涉肯尼迪伊拉克首都发生多起汽车炸弹爆炸 至少近年典型捂堵拖事件盘点:山西2起事故第九届两岸经贸文化论坛提出19条共同河南连霍高速大桥炸塌事件至今未公布处纽约华裔社区发生命案5人被杀 死者包伊拉克首都发生多起汽车炸弹爆炸 至少纽约华裔社区发生命案5人被杀 死者包世界主要城市10月28日天气预报最高层着手“顶层设计” 中国周边外交“舞动浙江”华丽登场 我省万人排舞大杭州今晨创“入秋”后最低气温 下周全中共代表团访问澳大利亚解放军少将:中国军事力量发展绝不针对今秋重庆平均气温不超20℃ 注意预防中车工厂开到美国,议员质疑被州长的自“独派”逼林全下台,还要蔡英文“换脑明起20项奇葩证明将取消 公积金提取加拿大正式申请加入亚投行 年底成员将日媒:日本报告称吸烟与脑中风等疾病确肖全谈马克·吕布:他只能让人敬仰,却中央警卫局原副局长王少军晋升中将“你瞅啥”引血案!烟台幸福四村一男子【继王健林之后】月入多钱最幸福?听听黄晓武接替肖超英任淮北市委书记 戴启全国作物受旱面积6871万亩 98万重磅 | 乐视大屏包揽4项行业大奖 先定一个小目标!苏泊尔卫浴:世界健康刘牧领衔主演西咸创业记之《裸奔》 首不满孩子摇号上学 济南绿城百合花园上小伙嘴里插进1.5米钢筋 滨医附院手初入“囹圄”实拍山东省女子监狱Mike隋直播畅聊mix文化,结尾神莆田1岁女童在家独自睡觉 醒后疑爬上国际一流创业加速器SBC中国燎原行成
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘