可不可以用其他安装程序来发布VB数据库程序

cooler 2000-08-18 12:48:00
我使用VB开发了一个数据库程序,但VB6提供的打包程序太弱,
无法在桌面创建快捷方式,也无法直接修改注册表。
我想换用其他的安装程序制作软件,但VB程序一开始总要安装8个文件,然后又会
自动安装什么microsoft data access 2.0,最后才开始安装我的程序文件,
请问:
1。如果维持VB6原来打包程序不变,以上
无法在桌面创建快捷方式,也无法直接修改注册表
怎么实现?
2。如果换用其他打包程序,VB安装一开始的
那8个文件和microsoft data access 2.0
怎么移植?
请各位独孤赐教,谢谢!
...全文
181 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cooler 2000-08-22
  • 打赏
  • 举报
回复
wo de ji qi wu fa shu ru han zi le ,gua shi a !
xie xie bluntknife de zhi jiao.
ling wai qing shyguy neng fou jiang de xiang xi yi dian,
yin wei wo ye xiang yong installsheld,dan
VB安装一开始的
那8个文件和microsoft data access 2.0
怎么移植
shi bu shi an zhao dllshow de cha kan zhi jie jia zai jiu ke yi le ?

Chen_Lin 2000-08-20
  • 打赏
  • 举报
回复
用InstallShiled吧,现在有关于InstallShiled编程的书卖.
bluntknife 2000-08-19
  • 打赏
  • 举报
回复
VB6提供的打包程序确实是弱,但是在X:\Program98\Microsoft Visual Studio\VB98\Wizards\PDWizard\Setup1下有其安装程序源代码,你可以研究一下如何对其修改增强其功能。
Install Shield确实功能强大,不过用起来太麻烦,实现一个小功能都要写脚本,很繁琐。推荐使用Setup Factory 或 Installer Vise 功能强大,简单易用而且都有汉化。
Vb生成的安装里有一个“Setup.lst”文件,用记事本打开,里面是该安装包用到的所有文件以及文件的类型和安装方式,如果你掌握了上面的安装软件,就可以对照“Setup.lst”,做一个你自己的安装包。另外Mdac_typ.exe可以使用参数进行多种方式的安装,自己手工安装其内部所有的文件比较繁,也可能会导致其它问题,还是让其自动安装的好。
如果想和我讨论,我的Email是knife@wx88.net
shyguy 2000-08-19
  • 打赏
  • 举报
回复
我用InstallShiled发布一个vb的数据库程序,效果不错。程序中用了DAO。
我用dllshow查看程序运行时候加载的dll和其他文件,然后提取出来,放到安装文件列表中,没有m$自带的数据库支持安装程序。
  • 打赏
  • 举报
回复
我也是用的install shield,比较好用的,
1.在Resources标签中可以创建快捷方式,也可以修改注册表.或者可以通过写脚本实现
2.可以用Dependencies工具搜索一下,就可以得到所有程序用到的DLL,OCX等,

Good luck!
masterkey 2000-08-18
  • 打赏
  • 举报
回复
你不妨使用专业的安装盘制作软件:InstallShield, 虽然有点大,但好用是不用说的。呵呵,我的VB程序都是用它来做的。 我目前用的是6.1版,它有一个专为VB的,会自动加载一个VB RUN Time物件,当然你还可以加载DAO,Jet,ODBC,DCOM等物件, 还能重新编译你的VBP。
不过,如何用它来做一个VB组的打包我还不知道, 望各位用它的多多介绍!
最近微软也出了一个叫Microsoft Installer的东西,刚载下来,还不熟悉。
浅析VB程序数据库学生管理系统 摘要 随着计算机技术的飞速发展,应用范围也越来越广泛,在教学工作中,运用VB程序数据 库学生管理系统可以更方便的对教学信息进行管理,提高工作效率。此外,使用管理系 统软件还具有检索快递,容易查找、存储加大,寿命加长,成本降低等特点,有助于实 现学校的企业化管理,与世界先进教学模式顺利接轨。 关键词 VB程序数据库;学生管理系统 随着计算机技术的飞速发展,应用范围也越来越广泛,在教学工作中,运用VB程序数 据库学生管理系统可以更方便的对教学信息进行管理,提高工作效率。此外,使用管理 系统软件还具有检索快递,容易查找、存储加大,寿命加长,成本降低等特点,有助于 实现学校的企业化管理,与世界先进教学模式顺利接轨。 1用计算机管理学生与教学系统的意义 1)可以存储历届的学生对老师的测评成绩的汇总情况,安全、高效; 2)可以迅速查到所需信息:例如,我们可以通过学生基本信息表查询某学生的班级 、学号等有关基本信息,还有家庭成员的有关信息等等,当然同理可以从教师基本信息 表中查询教师的相关信息。 这对我们学校节约办公经费,提高办事效率,方便学生家长及学校合作伙伴,给主管 部门、用人单位等相关单位都提供了极大的方便,有着深刻的意义。 随着网络技术的日新月异,我国信息产业有了巨大的发展。根据2002年12月份中国电 信的调查报告显示,我国的上网人数已达到9 857万,而且主要集中在18~40岁的年龄段。互联网的大面积普及,使得学校的教育信息 网络化成为必要,它是时代发展的必然产物。本系统为我校将来的网络化作了先期工作 ,可以减少后期数据库的建立过程中的大量工作。 我们在查阅大量书籍的基础上根据具体情况,使用原型法(Rapid Prototyping)仅仅以少量的代价就构建了一个可执行的软件系统模型,使用户可以根据 系统显示迅速确定客户需求,然后运用循环进化的方式,连续的精化系统模型,将系统 需具备的性质逐渐增加上去,直到所有的性质全部满足。 2 开发学生与教学管理系统的技术实现 2.1编程环境的选择 我们目前使用的微软公司Visual Basic 6.0是Windows应用程序,是目前使用最广泛的开发工具,Visual Basic提供了大量的控件,这些控件具备设计界面和实现各种功能的能力,不仅仅减少了 编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和 可靠性。因此,实现本系统VB是一个比较好的选择方式。 2.2关系型数据库的实现 我们选择Access数据库来作为关系数据库管理系统,Access数据库软件是WORD文字处 理系统的七大组件之一,它为广大的用户提供了一个数据库管理的工具包和应用程序的 开发环境。数据库能汇集各种信息以供查询、存储和检索。 Access的优点在于它能够使用数据表示图或自定义窗体收集信息。数据表示图提供了 一种类似于Excel的电子表格,可以使数据库一目了然。和其他Office系列产品一样,A ccess的最大特点是易用,用户可以在很短的时间内掌握Access的开发,并利用它的向导 功能方便快速简便地设计出一个数据库系统。而且可以利用导入、导出和连接数据库的 功能、方便地在Access数据和Word、Excel、文本文件和其他OLE的数据文件之间互相转 换,实现数据共享,从而大大提高工作效率。另外,Access允许创建自定义报表用于打 印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数 据库文件置于网络文件服务器,与其他网络用户共享数据库。Access还可以利用宏和Vi sual Basic for Application编写出具有强大功能的数据库应用程序,创建超级链接和Web页实现网上访 问。 在现实中,我们往往碰到如何对大量数据进行分类,组织、编码、存储、检索和维护 的问题。这时候,正是Access大显身手的大好时机。简单地说,Access软件的用途是设 计、开发和管理数据库。具体来说有以下几种功能: 对于跟踪的每一类信息创建一个表存储数据,还可以将多个表中的数据组织到一起, 定义表之间的关系。 查找和检索仅满足指定条件来自一个或多个表中的数据,查询也可以一次更新或删除 多个记录,并对数据执行预定义或自定义计算。 创建窗体更方便、直接和安全地查看、输入和更改数据,还可以利用窗体设计出友好 的界面。 创建报表以一定的方式分析数据或显示数据。而且,我们还可以将报表直接输出到 Word或Excel中进一步分析,或者作为电子邮件发送出去。 若要在Internet或Intranet上实现交互方式的报表、输入数据或分析数据,可以使 用数据访问页(Web页)。 可以利用宏和Visual Basic for Application语言编写出
存取对象变量库结构作为一个功能较完备的Windows软件开发平台,Visual Basic专业版提供了对数据库应用的强大支持。尤其提供了使用数据控件和绑定控制项,使用数据库存取对象变量(Data Access Object Variable),直接调用ODBC 2.0 API接口函数等三种访问数据库的方法。对其标准内置的Ms Access数据库,它可以提供不弱于专业数据库软件的支持,可以进行完整的数据库维护、操作及其事务处理。在VB中,将非Access数据库称为外来数据库。对于FoxPro、dBASE、Paradox等外来数据库。虽然借助VB的Data Manager 能够对这些数据库进行NEW、OPEN、DESIGN、DELETE等操作,但在应用程序的运行状态中并不能从底层真正实现这些功能。本文从使用数据库存取对象变量的方法出发,实现了非Access格式数据库(以FoxPro数据库为例)的建新库、拷贝数据库结构、动态调入等操作,阐述了从编程技巧上弥补VB对这些外来数据库支持不足的可行性 。 一 、 VB数据库的体系结构具体的VB数据库结构。 VB数据库的核心结构是所谓的MicroSoft JET数据库引擎,JET引擎的作用就像是一块"面 板",在其上可以插入多种ISAM(Indexed Sequential Access Method,即索引顺序存取方 法) 数据驱动程序。JET引擎为Access格式数据库提供了直接的内部(build-in)支持,这就是VB对Access数据库具有丰富支持的真正原因。 VB专业版中提供了FoxPro、dBASE(或 Xbase)、Paradox、Btrieve等数据库的ISAM驱动程序,这就使得VB能支持这些数据库格 式。另外,其他的许多兼容ISAM的驱动程序也可以通过从厂商的售后服务得到。因而从理论上说,VB能支持所有兼容ISAM的数据库格式(前提是只需获得这些数据库的ISAM驱动接口程序)。 由上可见,Ms JET引擎实质上提供了:一个符合ANSI标准的语法分析器;为查询结果集的使用而提供的内存管理功能;同所支持的数据库的外部接口;为应用代码提供的内部接口。实际上,在VB中从一种数据库类型转化为另一种数据库类型几乎不需要或只需要很少的代码修改。而且,尽管dBASE、Paradox本身的DDL (Data Definition Language,即数据定义语言)和DML(Data Manipulation Language,即数据操纵语言)是非结构化查询的,但它们仍然可以使用VB的SQL语句和JET引擎来操纵。 从VB程序代码的角度来看,ODBC,ISAM驱动程序以及Ms Access数据库的整个外部结构够可以统一为一个一致的编程接口。也即是说,提供给VB应用程序员的记录集对象视图同所使用的数据库格式及类型是相互独立的。即对FoxPro等数据库仍然可以使用众多的数据库存取对象变量,这就为非Access数据库的访问提供了最重要的方法。   二 、使用非Access数据库时的参数设置及配置文件的参数读取如果在VB程序中使用了数据库的操作,将应用程序生成EXE文件或打包生成安装程序后,则必须提供一个配置 (.INI)文件,在INI文件中可以对不同类型的数据库进行设置。如果找不到这个INI文件, 将会导致不能访问数据库。通常情况下,INI文件的文件名和应用程序的名称相同,所以如果没有指明,VB程序会在Windows子目录中去找和应用程序同名的INI文件。可以使用VB中的SetDataAccessOptions语句来设置INI文件。 SetDataAccessOptions语句的用法如下:SetDataAccessOptions 1 ,IniFileName其中IniFileName参数指明的是INI文件的带路径的文件名。值得注意的是,当应用程序找不到这个INI文件时,或在调用 OpenDataBase函数时对其Connect参数值没有设定为VB规定的标准值,如对FoxPro 2.5格式设定为了" FoxPro;"(应为" FoxPro 2.5; "),或者没有安装相应的ISAM驱动程序,则此时VB会显示一条错误信息" Not Found Installable ISAM "。通常,INI文件在应用程序分发出去以前已经生成,或者在安装时动态生成,也可以在应用程序中自己生成。 通常这种 INI文件中有" [Options]"、"[ISAM]"、" [Installed ISAMs]"、"[FoxPro ISAM]"、"[dBASE ISAM] " 、" [Paradox ISAM] "等设置段,对于一个完整的应用程序则还应有一个属于应用 程序自己的设置段如" [MyDB]”。可在其中设置DataType、Server、DataBase、 OpenOnStartup、DisplaySQL、QueryTimeOut等较为重要的数据库参数,并以此限定应用程序一般的运行环境。 Windows API接口函数在Kernel.exe动态链接库中提供了一个OSWritePrivateProfileString函数,此函数能按Windows下配置文件(.INI)的书写格式写入信息。 在通常情况下,应用程序还需要在运行时读取配置文件内相关项的参数。比如PageTimeOut(页加锁超时时限)、MaxBufferSize(缓冲区大小)、LockRetry(加锁失败时重试次数)等参数,通过对这些参数的读取对应用程序运行环境的设定、潜在错误的捕获等均会有很大的改善。 设此应用程序的配置文件为MyDB.INI,则具体过程如下:Funtion GetINIString$( Byval Fname$ ,Byval szItem$ ,Byval szDeFault$ ) ' 此自定义子函数实现INI 文件内设置段内参数的读取Dim Tmp As String,x As Integer Tmp = String( 2048,32 ) x = OSGetPrivateProfileString(Fname$,szItem$ , szDefault$,Tmp,Len(Tmp) ," MyDB.INI " ) GetINIString = Mid$( Tmp,1,x ) EndFunction以下这些函数的声明可写在模块文件内,且每个函数的声明必须在一行内Declare Function OSGetPrivateProfileString% Lib "Kernel" Alias "GetPrivateProfileString" (ByVal AppName$, ByVal KeyName$, ByVal keydefault$, ByVal ReturnString$, ByVal NumBytes As Integer, ByVal FileName$) Declare Function OSWritePrivateProfileString% Lib "Kernel" Alias "WritePrivateProfileString" (ByVal AppName$, ByVal KeyName$, ByVal keydefault$, ByVal FileName$) Declare Function OSGetWindowsDirectory% Lib "Kernel" Alias "GetWindowsDirectory" (ByVal a$, ByVal b%) Sub Form1_Load( ) Dim st As String Dim x As Integer Dim tmp As String tmp = String$( 255, 32 ) ' INI文件内为各种数据库格式指明已安装的相应ISAM驱动程序x = OSWritePrivateProfileString(" Installable ISAMS", "Paradox 3.X", "PDX110.DLL", "MyDB.INI" ) x = OSWritePrivateProfileString( "Installable ISAMS", "dBASE III", "XBS110.DLL", "MyDB.INI" ) x = OSWritePrivateProfileString( "Installable ISAMS", "dBASE IV", "XBS110.DLL", "MyDB.INI" ) x = OSWritePrivateProfileString( "Installable ISAMS", "FoxPro 2.0", "XBS110.DLL", "MyDB.INI" ) x = OSWritePrivateProfileString( "Installable ISAMS", "FoxPro 2.5", "XBS110.DLL", "MyDB.INI" ) x = OSWritePrivateProfileString( "Installable ISAMS", "Btrieve", "BTRV110.DLL", "MyDB.INI" ) x = OSWritePrivateProfileString( "dBase ISAM", "Deleted", "On", "MyDB.INI" ) ' 指明 INI文件的位置x = OSGetWindowsDirectory( tmp, 255 ) st = Mid$( tmp, 1, x ) SetDataAccessOption 1, st + "\mydb.ini" '获得INI文件一些参数 gwMaxGridRows = Val(GetINIString( " MyDB.INI " ,"MaxRows", "250" )) glQueryTimeout = Val(GetINIString( " MyDB.INI " ,"QueryTimeout", "5" )) glLoginTimeout = Val(GetINIString( " MyDB.INI " ,"LoginTimeout", "20" )) End Sub   三 、数据存取对象变量对外来数据库编程的方法及其实例在VB专业版数据库编程的三种方法中,第二种-使用数据库存取对象变量(DAO)的方法最具有功能强大、灵活的特点。 它能够在程序中存取ODBC 2.0的管理函数;可以控制多种记录集类型:Dynaset,Snapshot 及Table记录集合对象;可以存储过程和查询动作;可以存取数据库集合对象,例如 TableDefs,Fields,Indexes及QueryDefs;具有真正的事物处理能力。因而,这种方法对数据库处理的大多数情况都非常适用。 由于VB中的记录集对象与所使用的数据库格式及类型是相互独立的,所以在非Access数据库中也可以使用数据库存取对象变量的方法。因而 对FoxPro等外来数据库而言,使用数据库存取对象变量的方法同样也是一种最佳的选择。 有一点需要注意的是,VB的标准版中仅能使用数据控件(Data Control)对数据库中的记录进行访问,主要的数据库存取对象中也仅有Database、Dynaset对象可通过数据控件的属 性提供,其它的重要对象如TableDef、Field、Index、QueryDef、Snapshot、Table等均不能在VB的标准版中生成,所以使用数据存取对象变量的方法只能用VB 3.0以上的专业版。 (一)、非Access数据库的新建及库结构的修改VB专业版中的数据库存取对象变量可以分为两类,一类用于数据库结构的维护和管理,另一类用于数据的存取。其中表示数据库结构时可以使用下面的对象: DataBase、TableDef、Field、Index,以及三个集合 (Collection): TableDefs、Fields和Indexes 。每一个集合都是由若干个对象组成的,这些数据对象的集合可以完全看作是一个数组,并按数组的方法来调用。一旦数据库对象建立后,就可以用它对数据库的结构进行修改和数据处理。对于非Access数据库,大部分都是对应于一个目 录,所以可以使用VB的MkDir语句先生成一个目录,亦即新建一个数据库。而每一个非 Access数据库文件可看作是此目录下的一个数据表(Table),但实际上它们是互相独立的。 下面是新建一个FoxPro 2.5格式数据库程序实例。 Sub CreateNew ( ) Dim Db1 As database , Td As TableDefs Dim T1 As New Tabledef , F1 As New Field , F2 As New Field , F3 As New Field Dim Ix1 As New Index Dim Path As String Const DB_TEXT = 10 , DB_INTEGER = 3 ChDir "\" Path$ = InputBox( " 请输入新路径名: ", "输入对话框" ) MkDir Path$ ' 新建一个子目录Set Db1 = OpenDatabase(Path$, True, False, "FoxPro 2.5;") Set Td = Db1.TableDefs T1.Name ="MyDB" '新建一个数据表,数据表名为MyDB F1.Name = "Name" , F1.Type = DB_TEXT , F1.Size = 20 F2.Name = "Class" , F2.Type = DB_TEXT , F2.Size = 20 F3.Name = "Grade" , F3.Type = DB_INTEGER T1.Fields.Append F1 '向数据表中添加这些字段T1.Fields.Append F2。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧