博文
提高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......
VB多类图片数据库存取技巧 (2005-10-05 21:42:00)
摘要:VB多类图片数据库存取技巧
作者: COMMERCE·TANG
出处: yesky
责任编辑: 方舟
[ 2002-11-15 10:58 ]
众所周知,MDB数据库的通用类型和二进制类型字段都可以存取图片,但这样做会使数据库的体积庞大,降低数据库的存取效率。
笔者思考出数据库中存取图片的另一种方法,希望与爱好者们分享。
一、实现思路:
用户添加或修改图片时控制使用COMMONDIALOG的SHOWOPEN对话框,然后记录通用对话框的FILENAME到变量A,再使用APP.PATH找到到特定目录下的该图片文件,改变窗体上放置图片控件的属性即可显示。数据库中只使用一文本型字段记录下变量A,图片文件保存在程序目录下,此法可同时使用GIF、JPG和BMP等等图像文件。
二、实现方法:
1、在窗体上建立IMAGE控件,名为IMAGE1。
2、用DATA控件得到数据源表。
3、建立“更改图片”按钮COMMAND1,其代码为:
Private Sub Command1_Click()
CommonDialog1.FileName = ""
CommonDialog1.Filter = "文件bmp|*.bmp|文件JPG|*.JPG|文件GIF|*.GIF"
CommonDialog1.ShowOpen
Dim a As String
a = CommonDialog1.FileTitle '得到不含路径文件名
If a <> "" Then
Image11.Picture = LoadPicture(App.Path & "\bmp\" & a)
'\bmp\是我用于存取图片的本系统文件夹下的一个子文件夹。
Data1.Recordset.Edit
Data1.Recordset.Fields("tp") = a 'TP是存取图片名称的字段。
Data1.Recordset.Update
End If
End Sub
......
在VB中存取数据库中的图片(详细解释)(2005-10-05 21:40:00)
摘要:在VB中存取数据库中的图片
作者: 史美康
出处: vbeden.com
责任编辑: 方舟
[ 2001-07-05 09:20 ]
一、 数据库的设计
数据库可以采用微软的Access97或者SQL Server来进行,首先新建一张表,取名为Table,添加三个字段,分别是:姓名 Char型(SQL Server中)文本型(Access中);编号Char型(SQL Server中)文本型(Access中);照片image型(SQL Server中)OLE对象(Access中),设计好后存盘。为了可以进行远程调用,我们采用ODBC的方法进行,双击打开控制面板里的ODBC数据源,点“系统DSN”选项卡,按“添加”按钮选择对应的数据源驱动程序Access的*.mdb或者SQL Server,依照添加向导加添加数据源,下面就可以开始程序的编写了。
二、 程序的编写
运行VB,新建一个工程。本程序采用ADO控件和动态链接库访问数据库,需要加入ADO的运行库,单击“工程\引用”菜单,出现引用对话框,选择Microsoft ActiveX Data Objects2.0 Library并确定。
添加一个Form,四个Label控件,两个TextBox控件,一个PictureBox控件,一个ADODC控件,三个CommandButton控件,一个CommandDialog控件,如果ADODC和CommandDialog控件没有出现在工具框上,请单击菜单“工程\部件”。点“控件”选项卡,在其中选中Microsoft ADO Data Control 6.0(OLEDB)和Microsoft Common Dialog Control 6.0两项按“确定”按钮。
下面是以上各个控件的一些属性:
Form1.MaxButton=False
Label1.Caption=姓名:
Label2.Caption=编号:
Label3.Name= ResName
Label3.BackColor= &H80000009&
Label3.BorderStyle......
VB实现图像在数据库的存储与显示(chunk方法)(2005-10-05 21:38:00)
摘要:VB实现图像在数据库的存储与显示
作者: 李树海 陆体虎
出处: 计算机与信息技术
责任编辑: 方舟
[ 2004-12-31 11:40 ]
摘 要 本文以VB6与Access97作为开发工具,介绍了图像在数据库中的存储与显示技术。
关键词 数据库,数据控件,二进制,图像存储,图像显示,ADODB,Recordset
数据库是数据管理的最新技术,是计算机科学的重要分支,是现代计算机信息系统和计算机应用的基础和核心。在科学技术高速发展的今天,在信息资源无处不在、无处不用,已成为各部门的重要财富的时候,对于从事程序开发的人员来说显得尤为重要。
如今,对数据库的操作不仅仅满足于对字符和数字的单一操作,图像的存储与显示已显得尤为重要。下面作者将以VB6.0与Access97作为开发工具,分别介绍两种图像显示与存储的方法。
利用数据控件和数据绑定控件
利用这种方法,不写或写少量代码就可以构造简单的数据库应用程序,这种方法易于被初学者接受。在举例之前,先把数据绑定功能简要的说明一下,凡是具有DataSource属性的控件都是对数据敏感的,它们都能通过数据控件直接使用数据库里的数据。比如CheckBox Control , ComboBox Comtrol , TextBox Comtrol , PictureBox Control ,Image Comtrol … 因为这种方式涉及到的知识点比较少,也比较容易理解,不多作说明,现直接介绍编程步骤。
1、从数据库中显示所需要的图片
首先,添加一个Data数据控件,设置它的DatabaseName和RecordSource属性,
strPath = App.Path
If Right(strPath, 1) <> "\" Then
strPath = strPath & "\"
MyData.DatabaseName = strPath & "ExampleDB.mdb" '数据库存地址
MyData.RecordSource = "Info" '表名
第二步......
VB开发应用软件之动手前(2005-10-05 21:36:00)
摘要:一. 写在动手之前
也许你已经迫不及待要动手写程序了,在这里,可以先不要着急,我们先来看看一下在Windows下编程都有哪些方法要注意的,这对我们的编程学习是很有帮助的。
1 窗口程序
我们可以找到一些编程中的共性和特点,在日后的学习中可以举一反三,从而在整体上把握Windows下的窗口程序开发。
可以想一下:
对于普通的应用程序,是不是都是以“窗口”为基本界面的(而在Visual Basic 6中,窗口也称作“窗体”)?
在一般窗口上,我们是不是可以看到可能有标题、菜单、按钮、工具栏(上面是“按钮”)……?
在窗口中,我们可以看到标题中说明了这个程序的功能或相关特性,我们称这个“标题”是所在窗口(窗体)的一个“属性”。而窗口还有很多属性,如窗口状态(WindowsState,可能会是最小化、最大化和正常)、是否可以看见(Visible,可能的值是True或False)等等。
对于在窗口上的其它组成部分,如菜单、按钮、文本框、标签等等,我们称其为“控件(Control)”,在这里我们可以理解为控件的含义就是:在窗口之上,有着不同特征和作用的功能组件。如菜单可以通过选择要做相应的操作,而按钮则是通过单击来实现特定操作,文本框用于输入或显示文本(或称字符串),标签只是用于显示文本等。
2 关于控件
在窗口程序开发中,我们会用到很多控件,这些控件有的是Visual Basic 6开发环境提供的,有些是第三方开发的,而且我们还可以自己制作一些控件来使用,但有一个共同点,就是我们使用这些控件,实际是在使用它们的“属性”、“方法”和“事件”,下面分别来介绍。
(1) 属性
在窗口中,我们已经看到了一些关于属性的概念,而实际上,我们完全可以将窗口也做为一种特殊的控件来使用。
属性,可以用来表示某个控件的特征和特性,如汽车的颜色是什么。对于它的操作一般有两个,一是设置,即将属性值赋给控件;再就是读取属性值,就是给出控件的特征值。
如在按钮控件中,有一个“Caption”属性,它指明了在按钮上显示的文本(字符串),如“退出”、“确定”等等。它可以用来标明按钮的作用。
又如文本框的“Locked”属性,用于指明是否锁定这个文本框,当为T......
利用VB控件操作目录和文件夹-2(2005-10-05 21:27:00)
摘要:2、文件夹
对文件夹的操作,我们可以使用folder对象,它提供了对文件夹所有属性和方法的访问.下表市对其主要属性的解释:
DateCreated
返回指定文件或文件夹的创建日期和时间
DateLastAccessed
返回最后一次访问指定文件或文件夹的日期和时间
Drive
返回指定文件或文件夹所在的驱动器符号
Files
返回由File对象组成的所有Files集合,这些Files集合包含在指定的文件夹中,包括设置了隐藏和系统文件属性的那些文件夹
IsRootFolder
如果指定的文件夹是根文件夹,则返回True,否则返回False
Name
设置或返回指定文件或文件夹的名称
ParentFolder
返回指定文件或文件夹的父文件夹的Folder对象
Path
返回指定文件、文件夹或驱动器的路径
ShortName
返回较早的需要8.3文件命名约定的程序所使用的短文件名
ShortPath
返回较早的需要8.3文件命名约定的程序所使用的短路径
Size
对文件来说,本属性返回以字节为单位的文件大小;对文件夹来说,返回以字节为单位包括其中所有文件或子文件夹的大小
SubFolders
返回包含所有文件夹的一个Folders集合,这些文件夹包含在某个特定文件夹中, 包括设置了隐藏和系统文件属性的那些文件夹
Type
返回指定文件或文件夹的类型信息.
使用Folder对象的第一部就是先用FileSystemObjectd的GetFolder方法得到Folder对象, 该方法的作用是返回指定路径上的与某个文件夹相关的Folder对象.要保证指定的文件夹是实际存在的,否则会出错.
让我们来看一看其中的各种属性及其用法吧.
(1)Attributes属性可以返回文件或文件夹的属性,或者设置他们的新属性.所设属性可以是以下值中任意一个或多个的逻辑组合.
常数
值
说明
Normal
0
为一般文件,不设置属性
ReadOnly
1
为只读文件,属性为读/写
Hidden
2
为隐藏文件,属性为读/写
System
......
利用VB控件操作目录和文件夹-1(2005-10-05 21:26:00)
摘要:一) 察看和显示目录下的文件和文件夹
对于这个实现,其实很简单。首先想到的就是VB中给我们提供的现成的控件。主要有这么两类:
一类是驱动器列表框(DriveListBox)、目录列表框(DirListBox)和文件列表框(FileListBox)三个控件组合而成的自定义对话框;
另一类是windows提供的标准对话框。
他们在工具箱中的位置和图标如下所示:
1、驱动器列表框是一个下拉式的列表框,他和一般下拉式的列表框的不同仅在于功能上的不同,它提供了一个驱动器的列表。当单击右边的箭头时,则弹出计算机中的所有驱动器的下拉列表。默认状态下,在驱动器列表中显示的是当前驱动器,我们可以输入或从下拉列表中选择有效的驱动器标示符。
下面是它的主要属性,事件和方法.
属性
Drive
本属性用于返回或设置运行时选择的驱动器.默认值为当前驱动器
改变Drive属性会触发Change事件.
示例: Drive1.Drive = “c:\”
设置C盘为当前驱动器.
事件
Change
当选择一个新驱动器或通过代码改变了Drive属性时触发该事件
下面是示例代码:
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
‘当选择一个新驱动器时,将驱动器列表中选中的当前驱动器,赋给目录列表的路径.
End Sub
2、目录列表框
目录列表框用于显示当前驱动器的目录结构,目录列表框从最高层目录开始,显示当前驱动器的目录结构,并按层次关系缩进跟目录下的所有子目录。下面是它的主要属性,方法和事件:
属性
Path
本属性用于返回或设置运行时选择的路径,默认路径为当前路径.改变Dri属性会触发Change事件.
示例: Dri1.Path = Drive1.Drive
设置在驱动器列表框中选中的驱动器盘符为目录列表的当前路径.
ListIndex
本属性用来返回或设置控件中当前被选择......
VB中操作目录的Winodws API小结(2005-10-05 21:24:00)
摘要:下面是windows中提供的对于目录进行操作的API函数及其功能:
CreateDirectory,
CreateDirectoryEx
创建一个新目录
GetCurrentDirectory
在一个缓冲区中装载当前目录
GetDiskFreeSpace,GetDiskFreeSpaceEx
获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
GetDriveType
判断一个磁盘驱动器的类型
GetFullPathName
获取指定文件的完整路径名
GetLogicalDrives
判断系统中存在哪些逻辑驱动器字母
GetLogicalDriveStrings
获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
GetSystemDirectory
这个函数能取得Windows系统目录(System目录)的完整路径名。在这个目录中,包含了所有必要的系统文件。根据微软的标准,其他定制控件和一些共享组件也可放到这个目录。通常应避免在这个目录里创建文件。在网络环境中,往往需要管理员权限才可对这个目录进行写操作
GetTempPath
获取为临时文件指定的路径
GetVolumeInformation
获取与一个磁盘卷有关的信息
GetWindowsDirectory
这个函数能获取Windows目录的完整路径名。在这个目录里,保存了大多数windows应用程序文件及初始化文件
RemoveDirectory
删除指定目录
SetCurrentDirectory
设置当前目录
SetVolumeLabel
设置一个磁盘的卷标(Label)
让我们通过几个例子来详细的了解一下其中主要的几个函数及其用法:
1、GetLogicalDrives
作用:判断系统中存在哪些逻辑驱动器字母
声明形式:Declare Function GetLogicalDrives Lib "kernel32" Alias "GetLogicalDrives" () As Long
说明:此函数的返回值类型为Long,这个结构中的二进制位标志着存在哪些驱动器。其中,位......
VB中利用Windows API实现文件操作(2005-10-05 21:23:00)
摘要:下面是windows中提供的对于文件进行操作的API函数及其功能:
Windows API函数
功能
CloseHandle
关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的
CompareFileTime
根据FILETIME结构的信息,对比两个文件的时间
CopyFile
复制文件。与vb的filecopy命令相似
CreateFile
这是一个全功能的函数,可打开和创建文件、管道、邮槽、通信服务、设备以及控制台
DeleteFile
删除指定文件
FindClose
关闭由FindFirstFile函数创建的一个搜索句柄
FindFirstFile
根据文件名查找文件
FindNextFile
根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
FlushFileBuffers
针对指定的文件句柄,刷新内部文件缓冲区
GetBinaryType
判断文件是否可以执行
GetFileAttributes
判断指定文件的属性
GetFileInformationByHandle
这个函数提供了获取文件信息的一种机制——在一个BY_HANDLE_FILE_INFORMATION结构中装载与文件有关的信息
GetFileSize
判断文件长度
GetFileTime
取得指定文件的时间信息
GetFileType
在给出文件句柄的前提下,判断文件类型
GetFileVersionInfo
从支持版本标记的一个模块里获取文件版本信息
GetFileVersionInfoSize
针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
GetShortPathName
获取指定文件的短路径名
GetTempFileName
这个函数包含了一个临时文件的名字,它可由应用程序使用
lclose
关闭指定的文件,请参考CloseHandle函数,了解进一步的情况......
用Viusal Basic命令操作目录解析(2005-10-05 21:20:00)
摘要:1、创建一个新目录或文件夹
实现这一步我们可以使用vb中的MkDir语句。
格式:MkDir path
作用:创建一个新的目录和文件
说明:path 指定所要创建的目录或文件夹的字符串表达式。Path可以包含驱动器。如果没有指定驱动器,则MkDir会在当前驱动器上创建新的目录或文件夹。如果指定的目录或文件夹已经存在,那么就会产生一个错误。
例如: MkDir “c:\windows\100”
2、修改目录名
vb中提供了一个Name语句可以实现这些功能。
格式: Name oldpathname As newpathname
作用: 从命名一个文件、目录或文件夹。
说明: oldpathname字符串表达式,指定已存在的文件名和位置,可以包含目录或文件夹以及驱动器名。newpathname字符串表达式,指定新的文件名和位置,可以包含目录或文件夹以及驱动器名。并且oldpathname和newpathname必须位于同一个驱动器上。如果newpathname指定的路径存在但不同于oldpathname指定的路径,则Name语句会将文件移动到新的目录或文件夹,并在必要时从新命名文件.如果newpathname和oldpathname路径不同而文件名相同,那么Name只会移动文件到新的位置,并保持文件名不变.
Name语句可以将文件从一个目录或文件夹移动到另一处,但无法移动目录或文件夹.而且不能在一个已经打开的文件上使用Name,否则会产生错误.因此在改变名称之前,一定要关闭文件.Name参数中不能包括多字符(*)和单字符(?)的通配符.
例如:Name “c:\windows\100” As “c:\windows\200”
3、删除目录
对于删除目录,我们可以使用RmDir语句
格式:RmDir path
作用:删除一个目录或文件夹。
说明:path 指定所要删除的目录或文件夹的字符串表达式。Path可以包含驱动器。如果没有指定驱动器,则RmDir会在当前驱动器上删除......