WEB开发网
开发学院WEB开发综合 VisualBasic的常见问题 阅读

VisualBasic的常见问题

 2006-02-27 11:40:04 来源:WEB开发网   
核心提示:问:VisualBasic有哪些版本?它们有什么区别?答:VisualBasic有三种版本,各自满足不同的开发需要,VisualBasic的常见问题,1.VisualBasic学习版使编程人员轻松开发Windows95和WindowsNT(R)的应用程序,该版本包括所有的内部控件连同Grid、Tab和Data_Boun
问:VisualBasic有哪些版本?它们有什么区别?

答:VisualBasic有三种版本,各自满足不同的开发需要。

1.VisualBasic学习版使编程人员轻松开发Windows95和WindowsNT(R)的应用程序。该版本包括所有的内部控件连同Grid、Tab和Data_Bound控件。学习版提供的文档有《程序员指南》、联机帮助及VisualBasic《联机手册》。

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

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

问:安装Visualbasic需要哪些硬件和软件?

答:分别需要,

1.MicrosoftWindowsNT3.51或更新的版本,或MicrosoftWindows95;80486或更高的微处理器。

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

3.一个CD-ROM驱动器。

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

5.16MBRAM。

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

问:如何得到关于CrystalReports的技术支持?

答:如果您在安装CrystalReports时发生问题,请与微软公司联系。

如果您需要得到其他方面的技术支持,请直接和Seagate公司联系。

Seagate公司的网页是http://www.crystalinc.com

或http://www.img.seagatesoftware.com。

Seagate公司的技术支持电话是:01-604-669-8379或01-800-877-2340。

问:在VisualBasic中可以和哪些数据库通讯?

答:在VisualBasic中可以和三类数据库通讯,它们分别是:

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

2.外部数据库-它们是使用几种流行格式的"索引顺序访问方法(ISAM)"数据库,这些流行格式包括Btrieve、dBASEIII、dBASEIV、MicrosoftFoxPRoversions2.0和2.5以及Paradoxversions3.x和4.0。在VisualBasic中能够创建和操作所有以上格式的数据库。也可以访问文本文件数据库和MicrosoftExcel或Lotus1-2-3电子表格。

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

问:在VisualBasic中,如何与串行口通讯?

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

问:如何在VB中调用Win32函数?

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

问:VisualBasic5.0不能正常启动了,怎么办?

答:这可能是两方面原因造成的:

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

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

问:在VisualBasic中,某些控件被破坏了怎么办?

答:您可以从VB安装盘中找到响应文件,将它拷贝到系统目录下。然后用regsvr32手工注册那些控件。方法为:regsvr32xxxx.ocx

问:在多用户环境下,MicrosoftJet如何防止其他用户修改您的数据?

答:MicrosoftJet提供了三种不同级别上锁定数据的方法。它可以防止多个用户同时修改数据。

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

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

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

问:保守式锁定与开放式锁定有什么区别?

答:使用保守式锁定时,一旦调用Edit方法,引擎就会锁定包含当前编辑记录的页面,直到显式地提交或取消这个记录的变更后,它才释放这个锁定。但它的缺点锁定记录的时间很长,而且不仅锁定了用户正在编辑的记录,而且还会锁定驻留在该锁定页面内的其它记录。

使用开放式锁定时,引擎仅在试图用Update方法提交记录变更时锁定页面。因为锁定仅在应用程序试图提交变更时发生,所以能使锁定的时间最短。但开放式锁定的缺点是:当用户开始编辑记录时,不能确定更新是否会成功。如果另一个用户改变了第一个用户正在编辑的记录,那么依赖于开放式锁定的更新将会失败。

问:在VB5中,将一个应用程序编译成"NativeCode",在发布该应用程序时,还需要MSVBVM50.DLL吗?

答:需要。所有用VB5生成的应用程序都需要MSVBVM50.DLL,不管是"NativeCode"还是"P-Code"。因为需要MSVBVM50.DLL实现Form、类模块、语言等许多功能。"NativeCode"是指不需要运行时解释,直接就能在CPU上运行的代码,但并不意味着静态连接,VB5生成的应用程序需要到动态连接库(DLL)中调用库函数。

问:VB中如何访问VisualFoxPro数据库?

答:建议在VfoxPro数据库表中设置PrimaryKey,通过最新版本的VfoxProODBC驱动程序存取VisualFoxPro数据库,这样可获得较好的性能,以及避免Update时产生问题。

问:VB5的PictureBox和Image控件支持哪几种图形文件格式?

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

问:VB中提供了哪些方法用于访问注册表(Registry)?

答:GetSetting函数,从Windows注册表中的应用程序项目返回注册表项设置值。SaveSetting语句,在Windows注册表中保存或建立应用程序项目。

DeleteSetting语句,在Windows注册表中,从应用程序项目里删除区域或注册表项设置。

GetAllSettings函数,从Windows注册表中返回应用程序项目的所有注册表项设置及其相应值(开始是由SaveSetting产生)。

问:在VB5应用程序中,如何把某个事件记入日志?

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

问:如何检测文件是否存在?如何删除文件?

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

用Kill语句可删除文件。

问:如何优化VB应用程序的显示速度?

答:由于MicrosoftWindows的图形特性,图形和其它操作的显示速度在很大程度上决定了应用程序的感觉速度。窗体出现及画图的速度越快,应用程序就会显得越快。以下的几种技术可用来提高应用程序的显示速度:

·将容器的ClipControls属性设置为False。

·恰当地使用AutoRedraw。

·使用Image控件替代PictureBox控件。

·设置属性时隐藏控件以避免多次重画。

·使用Line替代PSet。

通常,应用程序的感觉速度和代码的实际执行速度并无多大关系。对用户来说,启动快、绘画快并提供不间断的反馈信息的应用程序显得速度快;而在完成任务时似乎"悬挂"起来的应用程序则显得速度慢。许多技术都可以使应用程序显得速度快:

·隐藏窗体而不加载。

·预加载数据。

·在后台使用定时器工作。

·使用进度指示器。

·加快应用程序的启动速度。

问:VB5在支持Internet/Intranet开发方面有哪些新内容?

答:创建ActiveX文档

专业版和企业版就象设计VisualBasic窗体那样既简单又直观。ActiveX文档将VisualBasic应用程序推进到Internet浏览器窗口中。

创建自己的ActiveX控件

专业版和企业版组合现有的控件,或由其它控件创建自己的控件。用VisualBasic创建的ActiveX控件有几项Internet特征,包括数据的异步下载和超链接。

多线程的DLL

专业版和企业版标记为无用户界面执行(即没有用户交互)的DLL部件可以有效地用于象Internet浏览器那样的多线程应用程序中。

Internet传输控件

专业版和企业版提供HTTP和FTP支持的新控件。

WinSock控件

专业版和企业版允许连接到远程计算机上,并与使用用户数据记录协议(UDP)或传输控制协议(TCP)的其它计算机进行数据交换。

超链接定位

专业版和企业版Hyperlink对象可以控制对ActiveX超连接功能的访问。使用Hyperlink对象的属性和方法,控件可以请求识别超链接的容器,如:MicrosoftInternetExplorer,跳转到给定的URL或通过历史列表定位。

异步下载

专业版和企业版通过用VisualBasic创建的ActiveX控件和ActiveX文档,异步下载文件、字节数组或图像。

ActiveX文档中的菜单协商

专业版和企业版当显示文档时,加入到ActiveX文档中的菜单可以与InternetExplorer(或其它支持菜单协商的浏览器)的菜单天衣无缝地合并在一起。

ActiveX控件接口向导

专业版和企业版一旦加入构成的控件到UserControl设计器中以后,向导可以帮助将新的ActiveX控件(即它的接口)的属性、方法和事件映射成构成的控件和UserControl对象所提供的功能。

Internet部件下载

专业版和企业版可以使用"安装向导"特别为Web上部署的部件打包。JPEG和GIF支持

所有版本PictureBox和Image控件,以及Picture对象,现在都支持.gif和.jpg文件,这对Web页很有用。

从开发环境中访问Web

所有版本直接跳转到关于VisualBasic和其它开发产品的最新信息上。

问:如何把传统的VB应用程序引入到浏览器中执行?

答:ActiveX文档移植向导是为了把已有窗体改变成ActiveX文档而设计的。ActiveX文档是一种特定类型的ActiveX对象,这类对象在ActiveX文档容器(如MicrosoftInternetExplorer)里面能被存放及激活。

问:DAO与RDO的比较

答:DAO一般通过MicrosoftJet引擎存取数据库(下面将提到的ODBCDirect除外),适用于存取MicrosoftAccess等数据库;

RDO直接通过ODBC存取数据库。适用于Client/Server环境,在存取大型数据库,如MicrosoftSQLServer时将获得更好的性能。

使用远程数据对象(RDO)的方式基本上与使用MicrosoftJet数据库引擎数据访问对象(DAO)的方法类似,RemoteData控件也与Data控件类似。使用RDO可以提交查询、创建结果集或游标,以及用与数据库无关的、面向对象的代码处理查询结果。

使用RemoteData控件,可以在创建的窗体中使用能够被Data控件识别的所有绑定控件;还可以用很少或几乎不用代码处理结果集。

对现有的使用DAO及Data控件的应用程序作些稍微的改动,即可将其转换成使用RDO和RemoteData控件。它们之间有一些区别,然而,由于实现和设计了的RDO用于关系数据库,因此RDO并没有它自己的查询处理程序;它依靠数据源来处理所有的查询,并创建结果集。数据对象本身是由ODBC驱动程序所返回的结果集和游标来建立的。

有时可能没有必要将已有的DAO/Jet应用程序转换为RDO,因为ODBCDirect将DAO通过RDO,而不是Jet。如果应用程序没有使用DAOISAM对象及其方法(例如表类型的Recordset对象和Seek方法)或其它的ISAM编程方法,那么,通过少许改动便可将其转换成ODBCDirect方式,所需的改动甚至比转换成RDO还少。

下表列出了RDO2.0对象及其等价的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结构以及可安装的ISAM数据库。例如,可以使用Index对象和Seek方法来管理ISAM索引,并用索引进行定位行。因为RDO和关系数据库以完全不同的方式管理索引,所以那些对象和方法都是不需要的。

通过DAO方法和属性,DAO也支持数据库模式的创建、修改、参照完整性(RI)以及安全性。RDO不支持任何形式的RI、安全性或模式修改,因为服务器系统所提供的工具和实用程序完全能够支持这些功能。

还可以运行RDO生成表查询,或执行动作查询,用原始SQL语句操作创建、修改及删除数据库或表。也可以执行复杂的存储过程,从而管理数据库模式或执行维护操作,这对于DAO来说是不可能的。

->

Tags:VisualBasic 常见问题

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接