数据库,是经过优化的存储格式,一定比文本文件效率好,因为结构化处理的关系,可以很好地应对如搜索、匹配等 *** 作;
而文本,表面看起来简单,但是,随着量的增加,一旦达到某个量级,几乎就不可用了。
至于CPU,数据库比文本文件的方案更加可控,更安全。
就是VB连接数库呀,其实,这也得具体情况具体分析,有针对性解决,数据库不同,其连接方式也不同,主要是连接字符串不同。看看一边的资料吧:希望对你有用。准备工作
========
Dim conn As New ADODBConnection \'创建一个 Connection 实例,在这里使用New等于将Dim和Set合并为一段代码执行
Dim rs As ADODBRecordset \'创建一个 Recordset 实例,不使用New 是因为,经常需要重复使用Set,因此没必要在这里使用
Dim CnStr As String, Sql As String \'创建两个字符串变量分别存放两个集合的SQL语句代码段
1、装载数据库(不属于Recordset集合)
=============
Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$
\'以上5个字符串变量分别表示文件路径和文件名、数据库地址、数据库名、数据 *** 作员用户名、 *** 作员密码FileName = AppPath & \"\\\'数据库名\'\"
DbIp = \"数据库地址\"
DbName = \"数据库名\"
DbUser = \"数据 *** 作员用户名\"
DbPw = \" *** 作员密码\"
\'以上变量根据数据库类型的不同而不同,有可能只需要1至两个变量\'1)连接Access数据库:
\'-------------------
CnStr = \"PROVIDER=microsoftjetoledb351;persist security info =false;data source=\" & FileName & \";Jet OLEDB:Database Password=\" & DbPw\'2)连接Oracle数据库:
\'-------------------
CnStr = \"PROVIDER=MSDAORA1;Password=\" & DbPw & \";User ID=\" & DbUser & \";Data Source=\" & FileName & \";Persist Security Info=True\"\'其中:
\'PASSWORD: 密码
\'User ID: 用户号
\'Data Source: 数据库名
\'Persist Security Info:
\'Provider:\'3)连接VF的DBF库:
\'----------------
CnStr = \"PROVIDER=MSDASQL1;Persist Security Info=False;Driver={Microsoft Visual FoxPro Driver};UID=\" & DbUser & \";SourceDB=\" & FileName &\";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;\"\'4)连接SQL的数据库
\'------------------
CnStr = \"PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid=\" & DbUser & \";pwd=\" & DbPw & \";DRIVER=SQL Server;DATABASE=\" & DbName & \";WSID=GQSOFT;SERVER=\" &DbIP\'也可以使用这段简易代码 CnStr = \"Provider=SQLOLEDB;Data Source=\" & DbIp & \";DATABASE=\" & DbName & \";UID=\" & DbUser & \";pwd=\" & DbPwConnOpen cnstr \'使用 Connection 集合的 Open 方法 与数据库建立连接2、Recordset集合的常用方法
==========================\'1)打开一个表
\'------------Sql = \"select from 表名\" \'SQL查询语句
Set rs = New ADODBRecordset \'新建一个实例
rsOpen Sql, conn \'使用 Open 方法打开数据库中的一个表\'注意,这种打开方式只能使用 rsMoveNext (即,向后移动行坐标)而不能像其他方向,并且不能修改数据内容
\'
\'rsOpen Sql, conn,1 \'虽然只加了个“1”,但这种方法可以向任何方向移动行坐标。
\'
\'以下参数代表了这个可选值的含义
\'0 = adOpenForwardOnly (默认值)打开仅向前类型游标。
\'1 = adOpenKeyset 打开键集类型游标。
\'2 = adOpenDynamic 打开动态类型游标。
\'3 = adOpenStatic 打开静态类型游标。
\'
\'虽然使用以上方法可以可以实现行坐标(游标)的任意移动,但是仍然无法写入数据。因此需要进一步的对Open 方法进行完善\'rsOpen Sql, conn, 1, 3 \'后面的3是确定读写权限的\'以下参数代表了这个可选值的含义
\'1 = adLockReadOnly (默认值)只读 — 不能改变数据。
\'2 = adLockPessimistic 保守式锁定(逐个) — 在编辑时立即锁定数据源的记录。
\'3 = adLockOptimistic 开放式锁定(逐个) — 只在调用 Update 方法时才锁定记录。
\'4 = adLockBatchOptimistic 开放式批更新 — 用于批更新模式(与立即更新模式相对)。
\'
\'2)读写数据
\'----------
\'增加一行记录并对新记录的内容进行修改并保存可以如下写法
rsAddNew \'增加一行记录
rs(\"\")=\"\" \'数据读写 *** 作
rsUpDate \'保存写入资料,如果使用只读权限,则不能使用这个方法[Page]
rsClose \'这个方法用来关闭你所代开的表,如果不使用这个方法也可以,但是数据库仍然认为你在对标进行锁定,可造成数据库负担过重2、对数据进行筛选和排序
=======================
Sql = \"select from 表名\" \'SQL查询语句
\'以上为打开一个表的所有内容Sql = \"select top 50 from 表名\" \'SQL查询语句
\'以上为只打开前50行的记录Sql = \"select top 50 列名1,列名2,列名5 from 表名\" \'SQL查询语句
\'以上为只打开前50行的记录,并且只打开第1、2、5列数据Sql = \"select from 表名 where 列名1=\'\" & 字段 & \"\'\" \'SQL查询语句
\'以上为一个简单的筛选,表示打开的内容必须符合[列名1=\'\" & 字段 & \"\'\"]的内容
\'需要注意的是,数据库列的类型必须匹配,比如字符串类型需要以单引号括起
\'而数字类型则不能用单引号括起
\'另外SQL语句还支持通配符,例如 列名1 like \'%\" & 字段 & \"%\'\" 表示包含[字段]
\'在表达式中的匹配
\' _(下划线) 任何单一字符
\' or % 零个或多个字符
\'# 任何单一数字(0 — 9)
\'[charlist] 任何在字符表中的单一字符
\'[!charlist] 任何不在字符表中的单一字符
\'注:根据数据库的不同、_和、%的应用有所差别,比如SQL只使用% 和 _ 分别代表多个字符和单一字符Sql = \"select from 表名 where 列名1=\'\" & 字段 & \"\' ORDER BY 字段1 ASC\" \'对查询结果进行升序排列
Sql = \"select from 表名 where 列名1=\'\" & 字段 & \"\' ORDER BY 字段1 DESC\" \'对查询结果进行降序排列
Sql = \"select from 表名 where 列名1=\'\" & 字段 & \"\' ORDER BY 字段1 DESC, ORDER BY 字段2 DESC\" \'对查询结果进行多维降序排列(速度奇慢,不推荐使用)3、Recordset集合的常用属性方法
==============================
rsBOF \'是否游标在最上边
rsEOF \'是否游标在最下边
rsRecordCount \'记录集的行数(如果使用像前类型的游标,可能返回不准确)
rsAddNew \'新建一行记录
rsUpdate \'保存当前行被修改的记录
rsDelete \'删除当前行
rsClose \'关闭记录集4、Fields集合的一些属性的解释
=============================
\'以下为简写,正常情况需要rsFileds。。。但是Fields属于Recordset的一个默认集合,因此可以省略rs() \'括号内可以是列名也可以是列的序号例如:rs(\"姓名\")、rs(3) 都是是可以的rs(3)Name \'返回列名
rs(3)Type \'返回列的类型
rs(3)Value \'返回当前行的值
rsFieldsCount \'返回列数
表数据库概念,文件是 *** 作系统的概念,不能类比
有的数据库,例如foxbase,一个表,存成一个文件,很多高级的数据库,表是存在自己管理的数据结构里的,很多数据库还可以把库直接存在raw分区里面,表只是其中一段数据
如果数据库表里面的字段是支付类型,很容易就转换成文本文件了,最简单的是打开管理工具,copy需要的行,再粘贴到记事本保存就行了。
比较简单的方法:
1在窗体上添加一个TextBox控件(Text1),一个Data控件(Data1);
2设置Data1的DatabaseName为数据库文件,设置RecordSource为需要关联的表;
3设置Text1的DataSource为Data1,设置DataField为需要关联的列名
注:以上方法仅使用与Access,Excel等,但不能用于连接SQL
Server
以上就是关于什么是文本数据库与关系数据库之间有什么联系和区别全部的内容,包括:什么是文本数据库与关系数据库之间有什么联系和区别、用VB语言设计程序,如何实现文本框与数据库连接、在数据库里,表是什么类型的文件,它与文本文件有什么不同,是否可以互相转换等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)