博文

几种从数据库读取数据生成excel文件的比较(2005-10-11 21:27:00)

摘要:试环境: 赛扬600+128M+Win2k Prof.(English.)+SQL Server 2000+Excel 2000+VB6(sp4)+ADO2.5 测试表记录数:10322,字段数:9 返回表中所有的纪录(select * from table1),每种方法连续测试5次,在VB中使用MsgBox (DateDiff("s", t1, Now()))计时(秒)
方法1。使用CopyFromRecordset(适用于Access,SQL) 第一次:49
第二次:45
第三次:43
第四次:43
第五次:42 方法2:使用QueryTable(适用于Access,SQL) 第一次:10
第二次:6
第三次:3
第四次:4
第五次:4 方法2:使用bcp(适用于SQL) 从命令行直接运行时间为701毫秒,从VB中返回时间为0
测试代码如下: 方法1: Option Explicit Private Sub Command1_Click()
    Dim t1 As Date
    t1 = Now()
   
   
    Dim strConn As String
    strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=mlog;Data Source=SZ09"
   
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
   
   
    Set cn = CreateObject("ADODB.......

阅读全文(2419) | 评论:0

VB使用ADO操作数据库的常用方法(2005-10-11 14:11:00)

摘要:ADO常用方法

下面是我所掌握的使用ADO对数据库操作的一些常用方法,主要是提供给初学者作为参考,有不对的地方请指正。如有补充不胜荣幸

准备工作
========


Dim conn As New  ADODB.Connection  '创建一个 Connection 实例,在这里使用New等于将Dim和Set合并为一段代码执行
Dim rs As ADODB.Recordset    '创建一个 Recordset 实例,不使用New 是因为,经常需要重复使用Set,因此没必要在这里使用
Dim CnStr As String, Sql As String  '创建两个字符串变量分别存放两个集合的SQL语句代码段


1、装载数据库(不属于Recordset集合)
=============
Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$
'以上5个字符串变量分别表示文件路径和文件名、数据库地址、数据库名、数据操作员用户名、操作员密码

FileName = App.Path & "\'数据库名'"
DbIp = "数据库地址"
DbName = "数据库名"
DbUser = "数据操作员用户名"
DbPw = "操作员密码"
'以上变量根据数据库类型的不同而不同,有可能只需要1至两个变量

'1)连接Access数据库:
'-------------------
CnStr = "PROVIDER=microsoft.jet.oledb.3.51;persist security info =false;data source=" & FileName & ";Jet OLEDB:Database Password=" & DbPw

'2)连接Oracle数据库:
'-------------------
CnStr = "PROVIDER=MSDAORA.1;Password=" & D......

阅读全文(4486) | 评论:0

在VB程序中用ADO对象动态创建数据库和表(2005-10-10 20:46:00)

摘要:          在VB程序中用ADO对象动态创建数据库和表                               蒋铁海              (广东外语外贸大学英文学院信息管理系  510420)      摘要: 本文阐述了在VB程序中利用ADO对象动态创建数据库和数据表的方法,这些方法在开发VB数据库应用程序中很有实用价值,它可以提高数据库程序灵活性。 关键词:数据库、数据表、ADO、ADOX   1: 问题的提出    在Visual Basic中,常用的数据访问接口有下列三种:数据库访问对象(DAO,Data Access Object)、远程数据库对象(RDO,Remote Data Object)和ActiveX数据对象(ADO,ActiveX Data Object )。数据库访问技术一直在不断进步,而这三种接口的每一种都分别代表了该技术的不同发展阶段。最新的是ADO,它是比RDO和DAO更加简单,然而更加灵活的对象模型。正因如此,越来越多的人在用VB开发数据库软件时使用ADO作为数据访问接口。在开发过程中,我们通常的使用的方法是:先使用数据库管理系统(例如:Microsoft Access)或VB中的可视化数据管理器建立好数据库和数据表结构,然后在程序中通过使用ADODC数据库控件或引用ADO对象与数据库中的表建立连接,再通过数据库感知控件(例如:文本框、DataGrid等)来进行数据库的各种操作。在这种开发过程中,我们有时需要面对这样一个问题:如何让用户在程序运行过程中动态地建立自己所需的数据库和数据表以提高程序的灵活性呢?在程序运行过程中建立自己所需的......

阅读全文(2855) | 评论:0

提高Visual Basic访问数据库的效率(2005-10-05 21:44:00)

摘要:提高Visual Basic访问数据库的效率 作者: Mice 出处: 中国VB网 责任编辑: 方舟 [ 2005-04-12 09:51 ]
  1.尽量使用事务处理更新数据库   VB的事务处理包括以BeginTrans开始,以CommitTrans或Rollback结尾的多条数据库操作指令。事务处理除了能很好的保证数据库的完整性以外,同时能大大提高数据库批量更新的效率。这是因为如果数据库更新操作没有使用事务处理,则每次Update操作都会引起数据库写盘一次。使用事务处理后,更新只在内存缓冲区内进行,执行CommitTrans时才将所有修改一次写回到磁盘中。使用事务处理要注意一下几点:

  (1)事务处理要有很完善的错误检查机制;

  (2)因为VB在事务处理结束前对数据库使用了页面锁.所以在多用户环境中,如果事务被挂起,则其他用户将无法访问上锁的数据。   2.尽量使用代码分解Select检索操作   使用Select进行数据库操作固然简单易用,但如果将一些检索操作分解为等价的手工检索代码,则对数据库的检索速度将大大加快.分解的基本方法是对检索关键字段进行索引,利用Seek方法定位后,根据索引的数据库已经排序的特点,进行遍历查找.对于遍历范围不是很宽时,这种方法能几十倍的提高数据库的访问速度.例如:Select * from person where vol= '123' and birth= #11-02-73# 分解成下面的操作后,访问速度可大大提高:
Table.Index= "vol"Table.Seek "=","123"if not table.nomatch then
while not table.eof
 if table("vol")="123" then
  table.movelast
 else if table("Birth")= #11-02-73# then
  '找到记录
 end if
 table.movenext
wendend if   3.使用attach绑定数据库表   当使用ODBC连接MS SQL Server,Oracle和Sysb......

阅读全文(2219) | 评论:0

从零开始学vb数据库(2005-10-03 09:23:00)

摘要:几个常用的VB数据库概念:

  表(Table):即关系数据库中物理存在的二维表。

  记录集(RecordSet):表中的记录和执行一个查询而产生的记录组成了一个记录的集合。

  SQL语言:一种数据库管理中的通用结构化查询语言。

  如何建立一个完整的数据库文件:以VB6中文企业版为例

  一、创建表

  1.外接程序→可视化数据管理器→出现VisData窗口。
工具栏上的前三个按钮,:一是“表类型记录集”,二是“动态集类型记录集”,
三是“快照类型记录集”。选择“动态集类型记录集”。以这种记录集类型来访问VB数据库

  2.文件→新建→MicroSoft Access→版本7.0MDB

  3.选择数据库保存路径→数据库取名为 Myfile 保存

  4.点击“数据库窗口”的Properties右键→新建表→弹出表结构对话框,表名称取名为 Phone
表名: 显示表名称。
字段列表:显示字段列表。 名称: 键入要添加的字段名。
类型: 确定字段的操作和数据类型。 定长: 字段长度固定。
大小: 确定字段的最大尺寸,以字节为单位。 变长: 字段长度可变。
自动递增:自动更新下一列或行。
允许零长:允许零长度字符串为有效字符串。
顺序位置:确定字段的相对位置。 必要的: 指出字段是否要求非-Null值。
验证文本:如果用户输入的字段值无效,应用程序显示的消息文本。
验证规则:确定字段可以添加什么样的数据。
添加字段:显示“添加”对话框。删除字段:删除选定的字段. 缺省值:确定字段缺省值。

索引列表:列出可用的索引。 名称:键入索引名。
主要的: 表的主索引。 唯一索引:这个索引项是唯一的。 外部:这个索引是表的外部键。
忽略空值:含有Null 值的字段不包括在索引之中。
必要的:指出索引是否需要非-空defNull@veendf3.chm 值。
添加索引:显示“添加索引”对话框。 删除索引:删除选定的索引。
生成表: 附加新表到当前数据库。

  5.添加字段→显示“添加字段”对话框。
名称=序号 →......

阅读全文(12003) | 评论:0

执行SQL脚本文件(.sql)的两种方法(2005-10-03 09:18:00)

摘要:Public Sub ExecuteSQLScriptFile(cn as ADODB.Connection,sqlFile As String)
Dim strSql As String, strTmp As String

Open sqlFile For Input As #1
strSql = ""
Do While Not EOF(1)
Line Input #1, strTmp
If UCase$(strTmp) = "GO" Then
cn.Execute strSql
strSql = ""
Else
strSql = strSql & strTmp & vbCrLf
End If
Loop
If strSql <> "" Then cn.Execute strSql
Close #1
End Sub

2.
Public Sub ExecuteSQLScriptFile(cn as ADODB.Connection,sqlFile As String)
Dim sql as string

sql="master.dbo.xp_cmdshell ' osql -U username -P password -i " & sqlFile
cn.execute sql
End Sub
......

阅读全文(2898) | 评论:0

用代码创建数据库,表,字段(2005-10-03 09:15:00)

摘要:用代码创建数据库,表,字段


Option Explicit
Private db As Database
Private td As TableDef
Private f As Field

Private Sub Command1_Click()
Set db = DBEngine.CreateDatabase("d:\01.mdb", dbLangGeneral)
Set td = New TableDef

Set f = td.CreateField("NAME", dbText, 20)
td.Fields.Append f

Set f = td.CreateField("ID", dbText, 5)
td.Fields.Append f

Set f = td.CreateField("DEPARTMENTP", dbText, 60)
td.Fields.Append f


td.Name = "class"
db.TableDefs.Append td

Set db = Nothing

End Sub

在列表框中显示该字段名
你可以设一个变量,取得"该字段名",再添加到列表框中(加上循环),列表框的操作你可以看VB的帮助
......

阅读全文(2840) | 评论:1

SQL语言快速入门之一 (2005-09-25 08:13:00)

摘要: SQL语言快速入门之一 日期:2005年4月15日 作者:-=不详=- 人气: 967 人   SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create, 以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。下面,我们就来详细介绍一下SQL语言的基本知识。
数据库表格   一个典型的关系型数据库通常由一个或多个被称作表格的对象组成。数据库中的所有数据或信息都被保存在这些数据库表格中。数据库中的每一个表格都具有自己唯一的表格名称,都是由行和列组成,其中每一列包括了该列名称,数据类型,以及列的其它属性等信息,而行则具体包含某一列的记录或数据。以下,是一个名为天气的数据库表格的实例。 城市 最高气温 最低气温 北京 10 5 上海 15 8 天津 8 2 重庆 20 13
该表格中“城市”, “最高气温”和“最低气温”就是三个不同的列,而表格中的每一行则包含了具体的表格数据。
数据查询   在众多的SQL命令中,select语句应该算是使用最频繁的。Select语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。Select语句的语法格式如下: select column1 [, column2,etc] from tablename [where condition]; ([] 表示可选项)   select语句中位于select关键词之后的列名用来决定那些列将作为查询结果返回。用户可以按照自己......

阅读全文(1789) | 评论:0

SQL语言快速入门之二(2005-09-25 08:12:00)

摘要: SQL语言快速入门之二 日期:2005年4月15日 作者:-=不详=- 人气: 981 人   创建表格 SQL语言中的create table语句被用来建立新的数据库表格。Create table语句的使用格式如下: create table tablename (column1 data type, column2 data type, column3 data type); 如果用户希望在建立新表格时规定列的限制条件,可以使用可选的条件选项: create table tablename (column1 data type [constraint], column2 data type [constraint], column3 data type [constraint]); 举例如下: create table employee (firstname varchar(15), lastname varchar(20), age number(3), address varchar(30), city varchar(20)); 简单来说,创建新表格时,在关键词create table后面加入所要建立的表格的名称,然后在括号内顺次设定各列的名称,数据类型,以及可选的限制条件等。注意,所有的SQL语句在结尾处都要使用“;”符号。 使用SQL语句创建的数据库表格和表格中列的名称必须以字母开头,后面可以使用字母,数字或下划线,名称的长度不能超过30个字符。注意,用户在选择表格名称时不要使用SQL语言中的保留关键词,如select, create, insert等,作为表格或列的名称。 数据类型用来设定某一个具体列中数据的类型。例如,在姓名列中只能采用varchar或char的数据类型,而不能使用number的数据类型。 SQL语言中较为常用的数据类型为: char(size):固定长度字符串,其中括号中的size用来设定字符串的最大长度。Char类型的最大长度为255字节。 varchar(size):可变长度字符串,最大长度由size设定。 number(size):数字类型,其中数字的最大位数由size设定。 Date:日期类型。 ......

阅读全文(2257) | 评论:0

SQL语言快速入门之三 (2005-09-25 08:12:00)

摘要: SQL语言快速入门之三 日期:2005年4月15日 作者:-=不详=- 人气: 1156 人   我们日常使用SQL语言的工作过程中,使用最多的还是从已经建立好的数据库中查询信息。下面,我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作。 SELECT…FROM   为方便讲解,我们在数据库中创建名为Store_Information的如下数据表。 Store_Information Store_Name Sales Date Los Angeles $1500 Jan-10-2000 San Diego $250 Jan-11-2000 Los Angeles $300 Jan-12-2000 Boston $700 Jan-12-2000   SQL语言中用于数据库查询的最简单的命令就是SELECT…FROM,语法格式为: SELECT "column_name" FROM "table_name" 例如,如果我们希望查询Store_Information数据表中所有的商店名称时,可以使用如下命令: SELECT store_name FROM Store_Information 查询结果显示为: Store_Name Los Angeles San Diego Los Angeles Boston 如果用户希望一次查询多个字段,可以将所要查询的字段名称依次加入SELECT关键字之后,中间用“,”隔开即可。 DISTINCT   SELECT关键字支持用户查询数据表中指定字段的所有数据,但是这样有时就会不可避免的出现重复信息。如果用户希望只查询那些具有不同记录值的信息的话,可以使用SQL语言的DISTINCT关键字。语法格式如下: SELECT DISTINCT "column_name" FROM "table_name" 例如,我们可以使用以下命令查询Store_Information数据表具有不同记录值的所有记录。 SELECT DISTINCT Store_Name ......

阅读全文(2291) | 评论:0