静态变量慢于动态变量 在过程中引用静态局部变量要比引用常规局部动态变量慢2-3倍。要想真正地加速过程的执行速度,最彻底的方法就是将所有的静态变量转换为模块级别变量。 这种方法的唯一不足是:过程很少是自包含的,如果要在其他工程中重用,就必须同时拷贝并粘贴这些模块级别变量。 另外的一种处理方法是:在时间要求高的循环前,将静态变量数值装入动态变量中。 善用"assume no aliasing"编译选项 据说,如果过程能够2次或多次引用同样的内存地址,那么过程就会包含别名数值。一个典型的例子如下: dim g_globalvariable as long ... sub procwithaliases(x as long) x = x + 1 g_globalvariable = g_globalvariable + 1 end sub 如果传递给这个过程g_globalvariable变量,则...
妙用replace函数替代字符串连接操作符& 你大概不知道replace函数还能这么用吧?比如下面的语句: msgbox "disk not ready." & vbcr & vbcr & _ "please check that the diskette is in the drive" & vbcr & _ "and that the drive’s door is closed." 可以看出,为了显示完整的字符串含义,要将可打印字符与非打印字符(比如:回车符vbcr)用&符号连接在一起。结果是:长长的字符连接串变得难于阅读。但是,使用replace函数,可以巧妙地解决这个问题。方法就是:将非打印字符以字符串中不出现的一个可打印字符表示,这样完整地写出整个字符串,然后使用replace函数替换那个特别的打印字符为非打印字符(比如:回车符vbcr)。代码如下: msgbox replac...
另辟蹊径处理字符串中的字符:字节数组法 当要处理字符串中的每一个字符时,可以将字符串赋值到一个byte数组中进行操作。要记住:每一个unicode字符对应双字节。这种方法通常要快许多,因为节省了大量的mid$函数操作以及大量的临时字符串空间。 下面的代码是统计字符串中空格数目的最快方法 dim b() as byte, count as integer b() = source$ for i = 0 to ubound(b) step lenb("a") if b(i) = 32 then count = count + 1 next 请注意上面代码中lenb()函数的特殊用法:在vb4(32位)、vb5和vb6中它返回数值2, 在vb4(16位)中返回数值1。因此,我们就可以使用同一代码段,而无需#if编译指令。 快速清除数组部分内容 清除动态数组的最快方法是使用redi...
无闪烁地快速附加字符串到textbox控件 附加文本到textbox或者richtextbox控件的通常方法是在当前内容上连接上新的字符串: text1.text = text1.text & newstring 但还有一个更快的方法,并且会减少连接操作的闪烁感,代码如下: text1.selstart = len(text1.text) text1.seltext = newstring 快速找到选中的optionbutton optionbutton控件经常是作为控件数组存在的,要快速找到其中的哪一个被选中,可以使用下面的代码: ’假设控件数组包含3个optionbutton控件 intselected = option(0).value * 0 - option(1).value * 1 - option(2).value * 2 注意,因为第一个操作数总是0,所以上述代码可以精简如...
friend过程快于public过程 你可能会非常惊奇:friend类型过程的执行速度要明显快于public类型。这可以通过创建一个带有private类和public类 (设定instancing = multiuse)的activex exe工程看到,在2个类模块中添加下面的代码: public sub publicsub(byval value as long) ’ end sub public function publicfunction(byval value as long) as long ’ end function friend sub friendsub(byval value as long) ’ end sub friend function friendfunction(byval value as long) as long ’ end function 然后,...
在vb中,用microsoft jet数据库引擎和数据访问对象dao(data access object)可以创建功能强大的客户/服务器应用程序。对远程数据库的访问是开发这类应用程序的关键环节,本文将介绍在vb中用dao通过miscrosoft jet数据库引擎访问远程数据库的方法。 用dao访问远程数据库大体上可以通过三步来实现,即数据连接、数据处理和断开连接。下面主要介绍数据连接和数据处理的具体操作。 一、数据连接 dao一般通过链接远程表的方式来进行数据连接。这样,数据虽然驻留在远程数据源上,但在本地的microsoftjet数据库中可以存储与远程数据的永久性连接,同时缓存链接的表结构信息,从而在下一次访问该表时,不用再次从服务器中检索这些结构信息,加快了连接速度。一旦链接了一个表,该链接便会保留在各会话期间,直到连接断开。 二、数据处理 数据连接建立后,可以用openreco...
在vb中,用microsoft jet数据库引擎和数据访问对象dao(data access object)可以创建功能强大的客户/服务器应用程序。对远程数据库的访问是开发这类应用程序的关键环节,本文将介绍在vb中用dao通过miscrosoft jet数据库引擎访问远程数据库的方法。 用dao访问远程数据库大体上可以通过三步来实现,即数据连接、数据处理和断开连接。下面主要介绍数据连接和数据处理的具体操作。 一、数据连接 dao一般通过链接远程表的方式来进行数据连接。这样,数据虽然驻留在远程数据源上,但在本地的microsoftjet数据库中可以存储与远程数据的永久性连接,同时缓存链接的表结构信息,从而在下一次访问该表时,不用再次从服务器中检索这些结构信息,加快了连接速度。一旦链接了一个表,该链接便会保留在各会话期间,直到连接断开。链接远程表的具体操作是: 用opendatabase方...
二、数据处理 数据连接建立后,可以用openrecordset方法打开一个记录集,并可用dbgrid控件和data控件方便地浏览整个记录集。 如果使用表类型(table-type)记录对象,则对应的是一个实际存在的数据库表,在多用户环境下,其它用户对数据的修改会立即反映到表中;如果使用动态集类型(dynaset-type)记录对象,则对应的既可以是一个表中全部记录,又可以是一个查询的结果,并且可以更新记录集中的记录;如果使用快照类型(snapshot-type)记录对象,则对应的可以是表中的全部记录,也可以是一个查询结果,但不能进行记录的增加、删除和修改操作。此外,还可以建立其它类型的记录对象,如仅向前型(forward only-type)记录对象和动态型(dynamic-type)记录对象。 下面是打开动态集记录对象并显示记录的过程: public sub rst_display(st...
三、应用举例 以上介绍了用dao访问远程数据库的具体操作,下面通过一个例子说明链接远程表和建立记录集对象的方法。 首先建立一个新工程,在窗体上画5个命令按钮,1个数据控件和1个数据网格控件(dbgrid)。各对象的属性设置见表1。 表1 窗体1对象属性设置 对 象 标 题(caption) 名 称(name) 窗体 远程数据访问 form1 命令按钮1 链接远程表 cmd 链接 命令按钮2 添加 cmdadd 命令按钮3 删除 cmddel 命令按钮4 修改 cmdmodify 命令按钮5 结束 cmdend 数据控件 data1 data1 数据网格 dbgrid1 其中dbgrid1中的datasource属性设为data1,命令按钮2,3,4的visible属性设为false。...
[引言] microsoft visual basic(简称vb)作为一种面向对象的可视化编程工具,具有简单易学的,灵活方便和易于扩充的特点。而且microsoft为其提供了与sql server通信的api函数集及工具集。因此它越来越多地用作大型公司数据和客户机—服务器应用程序的前端。 与后端的microsoft sql server相结合,vb能够提供一个鲁棒的、高性能的客户机—服务器方案。 使用visual basic作为前端开发语言,与sql server接口有三种常用的方法,即: *数据访问对象/jet *为odbc api编程 *使用sql server的visual basic库(vbsql)为db库api编程 本文将讨论这三种vb应用程序管理sql server数据的方法,并比较每种方法的性能和优缺点。 方法1. 数据访问对象/jetvisual basic支持data ...
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器