荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Second (石开), 信区: Program
标  题: [转载] Visual Basic 的常见问题
发信站: 荔园晨风BBS站 (Sat Jul 21 08:36:22 2001), 转信

Visual Basic 的常见问题
Microsoft Corporation

问 : Visual Basic 有哪些版本?它们有什么区别?
答 : Visual Basic 有三种版本,各自满足不同的开发需要。
1. Visual Basic 学习版使编程人员轻松开发 Windows 95 和 Windows NT(R) 的应用程
序。该版本包括所有的内部控件连同 Grid、Tab 和 Data_Bound 控件。学习版提供的文
档有《程序员指南》、联机帮助及 Visual Basic《联机手册》。

2. 专业版为专业编程人员提供了一整套进行开发的功能完备的工具。该版本包括学习版
的全部功能连同 ActiveX 控件,还包括 Internet 控件和 CrystalReport Writer。专
业版提供的文档有《程序员指南》、联机帮助、《部件工具指南》。

3. 企业版使得专业编程人员能够开发功能强大的组内分布式应用程序。该版本包括专业
版的全部功能连同自动化管理器、部件管理器、数据库管理工具、Microsoft Visual S
ourceSafe(TM) 面向工程版的控制系统等等。企业版提供的文档包括专业版的所有文档
,还有《客户/服务器应用程序开发指南》和 SourceSafe User's Guide。


问 : 安装 Visual basic 需要哪些硬件和软件?
答 : 分别需要,

1. Microsoft Windows NT 3.51 或更新的版本,或 Microsoft Windows 95; 80486 或
更高的微处理器。

2. 如果是全安装,则至少需要 50 MB 的硬盘空间。

3. 一个 CD-ROM 驱动器。

4. Microsoft Windows 支持的 VGA 或更高分辨率的屏幕。

5. 16MB RAM。

6. 鼠标或其它定点设备。


问 : 如何得到关于 Crystal Reports 的技术支持?
答 : 如果您在安装Crystal Reports 时发生问题, 请与微软公司联系。
如果您需要得到其他方面的技术支持, 请直接和 Seagate 公司联系。
Seagate公司的网页是 http://www.crystalinc.com/
或 http://www.img.seagatesoftware.com/。
Seagate公司的技术支持电话是: 01-604-669-8379 或 01-800-877-2340。


问 : 在 Visual Basic 中可以和哪些数据库通讯?
答 : 在 Visual Basic 中可以和三类数据库通讯, 它们分别是:

1. Visual Basic 数据库 - 也被称为本地数据库,这类数据库文件使用与 Microsoft
Access 相同的格式。Jet 引擎直接创建和操作这些数据库并且提供了最大程度的灵活性
和速度。

2. 外部数据库 - 它们是使用几种流行格式的"索引顺序访问方法 (ISAM)"数据库,这些
流行格式包括 Btrieve、dBASE III、dBASE IV、Microsoft FoxPro versions 2.0 和
2.5 以及 Paradox versions 3.x 和 4.0。在 Visual Basic 中能够创建和操作所有以
上格式的数据库。也可以访问文本文件数据库和 Microsoft Excel 或 Lotus 1-2-3 电
子表格。

3. ODBC 数据库 - 包括符合 ODBC 标准的客户/服务器数据库,如 Microsoft SQL Ser
ver。要在 Visual Basic 中创建真正的客户/服务器应用程序,可以使用 ODBCDirect
直接把命令传递给服务器处理。


问 : 在Visual Basic中,如何与串行口通讯?
答 : Visual Basic 提供了一个 MSCOMM控件, 它负责从串行口接受和发送数据。您可
以在Visual Basic开发环境下选择"工程",在工程菜单下选择"部件", 从部件中选择"
Microsoft Comm Control", 将 MSCOMM控件加入到您的工具箱中。然后通过设置MSCOMM
控件的属性来修改串行口通讯参数如通讯口、波特率等。


问 : 如何在 VB 中调用 Win32 函数?
答 : 在 Visual Basic 的 WINAPI 子目录下, 您可以找到 WIN32API.TXT,它包含 Wi
n32所有的函数说明、类型说明和全局常量值。您可以使用Visual Basic 的外挂程序 V
B API Viewer来选择您所需的 Win32 函数,然后通过简单的复制、粘贴技术将该函数的
说明放入的Visual Basic 工程中,这样您就可以象调用Visual Basic一般函数那样调用
它了。


问 : Visual Basic 5.0 不能正常启动了,怎么办?
答 : 这可能是两方面原因造成的:

1. 外挂程序出错。您可以用记事本打开系统目录下的 VBAddin.ini 文件,将每一项的
值都改为0,即不启动外挂程序。

2. 保存的有关Office 命令栏的数据出错。在这种情况下您可以从注册表删除"HKEY_CU
RRENT_USER\SOFTWARE\MICROSOFT\Visual Basic\5.0" 这一项。修改了以上内容后,您
只需重新启动 Visual Basic即可。


问 : 在Visual Basic 中, 某些控件被破坏了怎么办?
答 : 您可以从 VB 安装盘中找到响应文件,将它拷贝到系统目录下。然后用 regsvr32
 手工注册那些控件。方法为 : regsvr32 xxxx.ocx
问 : 在多用户环境下,Microsoft Jet 如何防止其他用户修改您的数据?
答 : Microsoft Jet 提供了三种不同级别上锁定数据的方法。它可以防止多个用户同时
修改数据。

1. 独占模式 阻止其他所有用户访问数据库, 这是限制最大的模式。

2. 记录集锁定 锁定 Recordset 对象的基本表,用读表锁定、写表锁定或两者都用。

3. 页面锁定 锁定包含正在编辑的数据的页面,其长度为 2048 个字节 (2K)。这是限制
最小的模式


问 : 保守式锁定与开放式锁定有什么区别?
答 : 使用保守式锁定时,一旦调用 Edit 方法,引擎就会锁定包含当前编辑记录的页面
,直到显式地提交或取消这个记录的变更后,它才释放这个锁定。但它的缺点锁定记录
的时间很长,而且不仅锁定了用户正在编辑的记录,而且还会锁定驻留在该锁定页面内
的其它记录。
使用开放式锁定时,引擎仅在试图用 Update 方法提交记录变更时锁定页面。因为锁定
仅在应用程序试图提交变更时发生,所以能使锁定的时间最短。但开放式锁定的缺点是
:当用户开始编辑记录时,不能确定更新是否会成功。如果另一个用户改变了第一个用
户正在编辑的记录,那么依赖于开放式锁定的更新将会失败。


问 : 在VB5中,将一个应用程序编译成"Native Code", 在发布该应用程序时,还需要M
SVBVM50.DLL 吗?
答 : 需要。所有用VB5生成的应用程序都需要MSVBVM50.DLL,不管是"Native Code" 还
是"P-Code"。因为需要MSVBVM50.DLL 实现Form、类模块、语言等许多功能。"Native C
ode"是指不需要运行时解释,直接就能在CPU上运行的代码,但并不意味着静态连接, V
B5生成的应用程序需要到动态连接库(DLL)中调用库函数。
问 : VB 中如何访问 Visual FoxPro 数据库?
答 : 建议在VfoxPro数据库表中设置 Primary Key, 通过最新版本的 VfoxPro ODBC 驱
动程序存取Visual FoxPro 数据库,这样可获得较好的性能,以及避免 Update 时产生
问题。


问 : VB5 的PictureBox 和 Image 控件支持哪几种图形文件格式?
答 : PictureBox 和Image控件用来显示图形。它可显示下面几种格式的图形:位图、图
标、图元文件、增强型图元文件、JPEG 或 GIF 文件。新支持的JPEG 或 GIF 文件对 W
eb 页很有用。


问 : VB 中提供了哪些方法用于访问注册表(Registry)?
答 :GetSetting 函数, 从 Windows 注册表中的应用程序项目返回注册表项设置值。Sa
veSetting 语句, 在 Windows 注册表中保存或建立应用程序项目。
DeleteSetting 语句, 在 Windows 注册表中,从应用程序项目里删除区域或注册表项设
置。
GetAllSettings 函数, 从 Windows 注册表中返回应用程序项目的所有注册表项设置及
其相应值(开始是由 SaveSetting 产生)。


问: 在VB5应用程序中,如何把某个事件记入日志?
答: LogEvent 方法,在应用程序的日志目标中,把某个事件记入日志。在 Windows NT
 平台上,该方法会把内容写到 NT 的 Event 日志中。在 Windows 95 平台上,该方法
会把内容写到 LogPath 属性指定的文件中。按照缺省规定,如果不指定文件,事件被写
入 vbevents 文件。


问: 如何检测文件是否存在?如何删除文件?
答: 用 Dir 函数可检测文件是否存在。如果已没有合乎条件的文件,则 Dir 会返回一
个零长度字符串 ("")。
用Kill 语句可删除文件。


问: 如何优化VB 应用程序的显示速度?
答:由于 Microsoft Windows 的图形特性,图形和其它操作的显示速度在很大程度上决
定了应用程序的感觉速度。窗体出现及画图的速度越快,应用程序就会显得越快。以下
的几种技术可用来提高应用程序的显示速度:
将容器的 ClipControls 属性设置为 False。
恰当地使用 AutoRedraw。
使用 Image 控件替代 PictureBox 控件。
设置属性时隐藏控件以避免多次重画。
使用 Line 替代 PSet。
通常,应用程序的感觉速度和代码的实际执行速度并无多大关系。对用户来说,启动快
、绘画快并提供不间断的反馈信息的应用程序显得速度快;而在完成任务时似乎"悬挂"
起来的应用程序则显得速度慢。许多技术都可以使应用程序显得速度快:
隐藏窗体而不加载。
预加载数据。
在后台使用定时器工作。
使用进度指示器。
加快应用程序的启动速度。


问:VB5 在支持 Internet / Intranet 开发方面有哪些新内容?
答:创建 ActiveX 文档
专业版和企业版 就象设计 Visual Basic 窗体那样既简单又直观。ActiveX 文档将 Vi
sual Basic 应用程序推进到 Internet 浏览器窗口中。
创建自己的 ActiveX 控件
专业版和企业版 组合现有的控件,或由其它控件创建自己的控件。用 Visual Basic 创
建的 ActiveX 控件有几项 Internet 特征,包括数据的异步下载和超链接。
多线程的 DLL
专业版和企业版 标记为无用户界面执行(即没有用户交互)的 DLL 部件可以有效地用
于象 Internet 浏览器那样的多线程应用程序中。
Internet 传输控件
专业版和企业版 提供 HTTP 和 FTP 支持的新控件。
WinSock 控件
专业版和企业版 允许连接到远程计算机上,并与使用用户数据记录协议 (UDP) 或传输
控制协议 (TCP) 的其它计算机进行数据交换。
超链接定位
专业版和企业版 Hyperlink 对象可以控制对 ActiveX 超连接功能的访问。使用 Hyper
link 对象的属性和方法,控件可以请求识别超链接的容器,如:Microsoft Internet
Explorer,跳转到给定的 URL 或通过历史列表定位。
异步下载
专业版和企业版 通过用 Visual Basic 创建的 ActiveX 控件和 ActiveX 文档,异步下
载文件、字节数组或图像。
ActiveX 文档中的菜单协商
专业版和企业版 当显示文档时,加入到 ActiveX 文档中的菜单可以与 Internet Expl
orer(或其它支持菜单协商的浏览器)的菜单天衣无缝地合并在一起。
ActiveX 控件接口向导
专业版和企业版 一旦加入构成的控件到 UserControl 设计器中以后,向导可以帮助将
新的 ActiveX 控件(即它的接口)的属性、方法和事件映射成构成的控件和 UserCont
rol 对象所提供的功能。
Internet 部件下载
专业版和企业版 可以使用"安装向导"特别为 Web 上部署的部件打包。 JPEG 和 GIF 支

所有版本 PictureBox 和 Image 控件,以及 Picture 对象,现在都支持 .gif 和 .jp
g 文件,这对 Web 页很有用。
从开发环境中访问 Web
所有版本直接跳转到关于 Visual Basic 和其它开发产品的最新信息上。


问:如何把传统的 VB 应用程序引入到浏览器中执行?
答:ActiveX 文档移植向导是为了把已有窗体改变成 ActiveX 文档而设计的。ActiveX
 文档是一种特定类型的 ActiveX 对象,这类对象在 ActiveX 文档容器(如 Microsof
t Internet Explorer)里面能被存放及激活。


问:DAO 与 RDO 的比较
答:DAO 一般通过 Microsoft Jet 引擎存取数据库(下面将提到的ODBCDirect 除外 )
,适用于存取Microsoft Access 等数据库;
RDO 直接通过ODBC 存取数据库。适用于Client/Server 环境,在存取大型数据库, 如
 Microsoft SQL Server 时将获得更好的性能。
使用远程数据对象(RDO)的方式基本上与使用 Microsoft Jet 数据库引擎数据访问对
象 (DAO) 的方法类似,RemoteData 控件也与 Data 控件类似。使用 RDO 可以提交查询
、创建结果集或游标,以及用与数据库无关的、面向对象的代码处理查询结果。
使用 RemoteData 控件,可以在创建的窗体中使用能够被 Data 控件识别的所有绑定控
件;还可以用很少或几乎不用代码处理结果集。
对现有的使用 DAO 及 Data 控件的应用程序作些稍微的改动,即可将其转换成使用 RD
O 和 RemoteData 控件。它们之间有一些区别,然而,由于实现和设计了的 RDO 用于关
系数据库,因此 RDO 并没有它自己的查询处理程序;它依靠数据源来处理所有的查询,
并创建结果集。数据对象本身是由 ODBC 驱动程序所返回的结果集和游标来建立的。
有时可能没有必要将已有的 DAO/Jet 应用程序转换为 RDO,因为 ODBCDirect 将 DAO
通过 RDO,而不是 Jet。如果应用程序没有使用 DAO ISAM 对象及其方法(例如表类型
的 Recordset 对象和 Seek 方法)或其它的 ISAM 编程方法,那么,通过少许改动便可
将其转换成 ODBCDirect 方式,所需的改动甚至比转换成 RDO 还少。
下表列出了 RDO 2.0 对象及其等价的 DAO/Jet 对象:
远程数据对象及其等价的 DAO/Jet 对象
RDO 对象 等价的 DAO/Jet 对象
RdoEngine DBEngine
RdoError Error
rdoEnvironment Workspace
rdoConnection Database
rdoTable  TableDef
未实现 Index
rdoResultset Recordset
未实现 表类型
键集类型 动态集类型
静态类型(r/w) 快照类型 (r/o)
动态类型 (无)
仅向前类型 仅向前类型
(无游标的) (无)
rdoColumn Field
rdoQuery QueryDef
rdoParameter Parameter
未实现 Relation
未实现 Group
未实现 User
远程数据对象使用行和列的概念,而不是记录和域的概念,后者通常为关系数据库的术
语。查询以结果集的形式返回数据,结果集可以包括零个或多个数据行,每行又可包括
一个或多个列。DAO 需要使用游标访问数据,而 RDO 允许创建无游标的结果集,所需的
资源大大少于游标。
有些 DAO 对象、方法和属性被设计用来支持和实现 Jet 的 ISAM 结构以及可安装的 I
SAM 数据库。例如,可以使用 Index 对象和 Seek 方法来管理 ISAM 索引,并用索引进
行定位行。因为 RDO 和关系数据库以完全不同的方式管理索引,所以那些对象和方法都
是不需要的。
通过 DAO 方法和属性,DAO 也支持数据库模式的创建、修改、参照完整性 (RI) 以及安
全性。RDO 不支持任何形式的 RI、安全性或模式修改,因为服务器系统所提供的工具和
实用程序完全能够支持这些功能。
还可以运行 RDO 生成表查询,或执行动作查询,用原始 SQL 语句操作创建、修改及删
除数据库或表。也可以执行复杂的存储过程,从而管理数据库模式或执行维护操作,这
对于 DAO 来说是不可能的。


注:此资料由微软技术支持中心(GCRSC)提供

--
                            既然热爱生命
                            那么,
                            一切都在意料之中。

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.190]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店