TO bloom121(ad秋): 那怎么实现安装的时候运行呢? ------------------------------------------------------------------------------------- 如果你使用的是非VB自带的安装制作软件,其中都有相关的数据库配置项,参见对应的说明后再编绎发行包即可。各种安装程序制作软件,对数据库的配置不尽相同。
通常的办法是在程序启动后,连接数据,检查错误,判断数据库是否存在和正确,若否,就地创建它。 当然,你也可以在SETUP中创建。给你一个例子。 Create a bat file 或Script 脚本,这里以创建BAT文件为例。REM CreateDatabase.bat c:\mysql\bin\mysql --user=root --password=password --database=workorder < c:\mysql\bin\backup_data.sqlecho --------- DONE WITH DB POPULATION -------------- pause
-- MySQL dump 10.7 -- -- Host: localhost Database: workorder -- ------------------------------------------------------ -- Server version 4.1.3b-beta-nt-max/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */;-- -- Table structure for table `assignment` --DROP TABLE IF EXISTS `assignment`; CREATE TABLE `assignment` ( `WO_NUMBER` varchar(8) NOT NULL default '', `ACTION` varchar(20) NOT NULL default '', `STAFF_NAME` varchar(20) NOT NULL default '', PRIMARY KEY (`WO_NUMBER`,`ACTION`,`STAFF_NAME`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;-- -- Dumping data for table `assignment` -- /*!40000 ALTER TABLE `assignment` DISABLE KEYS */; LOCK TABLES `assignment` WRITE; UNLOCK TABLES; /*!40000 ALTER TABLE `assignment` ENABLE KEYS */;-- -- Table structure for table `assignse` --DROP TABLE IF EXISTS `assignse`; CREATE TABLE `assignse` ( `WO_NUMBER` varchar(8) NOT NULL default '', `ACTION` varchar(20) NOT NULL default '', `STAFF_NAME` varchar(30) NOT NULL default '', PRIMARY KEY (`WO_NUMBER`,`ACTION`,`STAFF_NAME`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;-- -- Dumping data for table `assignse` -- /*!40000 ALTER TABLE `assignse` DISABLE KEYS */; LOCK TABLES `assignse` WRITE; INSERT INTO `assignse` VALUES ('DDS0001','Requestor','Yew'); UNLOCK TABLES; /*!40000 ALTER TABLE `assignse` ENABLE KEYS */;-- -- Table structure for table `contractor` --DROP TABLE IF EXISTS `contractor`; CREATE TABLE `contractor` ( `WO_NUMBER` varchar(8) NOT NULL default '', `CONTRACTOR` varchar(40) NOT NULL default '', PRIMARY KEY (`WO_NUMBER`,`CONTRACTOR`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;-- -- Dumping data for table `contractor` -- /*!40000 ALTER TABLE `contractor` DISABLE KEYS */; LOCK TABLES `contractor` WRITE; UNLOCK TABLES; /*!40000 ALTER TABLE `contractor` ENABLE KEYS */;-- -- Table structure for table `downtime` --DROP TABLE IF EXISTS `downtime`; CREATE TABLE `downtime` ( `DT_ID` varchar(10) NOT NULL default '', `DT_NOUN` varchar(30) NOT NULL default '', `DT_VERB` varchar(30) NOT NULL default '', PRIMARY KEY (`DT_NOUN`,`DT_VERB`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;-- -- Dumping data for table `downtime` -- /*!40000 ALTER TABLE `downtime` DISABLE KEYS */; LOCK TABLES `downtime` WRITE; INSERT INTO `downtime` VALUES ('1000000001','Actuator','Broken'),('1000000002','Actuator','Damage'),('1000000003','Actuator','Fall Down'),('1000000004','Actuator','Jammed'),('1000000006','Actuator','Out of Position'),('1000000009','Air Hose','Jammed'),('1000000007','Air Hose','Leak'),('1000000008','Air Hose','Out of Position'),('1000000010','Air Piping','Jammed'),('1000000011','Air Piping','Leak'),('1000000012','Air Piping','Modified'),('1000000013','Air Receiver Tank','Crack'),('1000000014','Air Receiver Tank','Leak'),('1000000015','Air Receiver Tank','Lower Pressure'),('1000000016','Battery','Damage'),('1000000018','Battery','Less Water'),('1000000017','Battery','Weak'),('1000000019','Bearing','Abnormal Sound'),('1000000020','Bearing','Burnt'),('1000000021','Bearing','Damage'),('1000000022','Bearing','High Temperature'),('1000000023','Bearing','Jammed'),('1000000024','Bearing','Less Lubrication'),('1000000026','Bearing','Loose'),('1000000027','Bearing','Out of Position'),('1000000028','Belt Joint / Lacing','Damage'),('1000000029','Belt Joint / Lacing','Tear Off'),('1000000030','Bolt','Broken'),('1000000033','Bolt','Fall Down'),('1000000032','Bolt','Loose'),('1000000031','Bolt','Lose'),('1000000035','Brake','Malfunction'),('1000000034','Brake','Wear Off'),('1000000037','Bunker','Broken'),('1000000036','Bunker','Crack'),('1000000038','Bush','Damage'),('1000000041','Bush','Loose'),('1000000040','Bush','Out of Position'),('1000000039','Bush','Wear Off'),('1000000062','Cable','Burnt'),('1000000064','Cable','Damage'),('1000000042','Clutch','Abnormal Sound'),('1000000044','Clutch','Engageless'),('1000000043','Clutch','Jammed'),('1000000045','Coil','Burnt'),('1000000046','Coil','Short'),('1000000048','Control Valve','Jammed'),('1000000049','Control Valve','Leak'),('1000000047','Control Valve','Malfunction'),('1000000054','Conunter Knife','Loose'),('1000000053','Conunter Knife','Sharpless'),('1000000052','Conveyor Belt','Stuck'),('1000000051','Conveyor Belt','Tear Off'),('1000000050','Conveyor Belt','Tracking'),('1000000056','Coupling','Loose'),('1000000055','Coupling','Misalign'),('1000000057','Coupling','Out of Position'),('1000000058','Crane','Malfunction'),('1000000059','Cyclone','Leak'),('1000000060','Cyclone','Plug Up'),('1000000061','Damper','Jammed'); UNLOCK TABLES; /*!40000 ALTER TABLE `downtime` ENABLE KEYS */;-- -- Table structure for table `downtime_all_summary` --DROP TABLE IF EXISTS `downtime_all_summary`; CREATE TABLE `downtime_all_summary` ( `DEPARTMENT` varchar(15) NOT NULL default '', `DURATION` int(11) NOT NULL default '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
如果是建数据库,只要在程序里连到服务器去,然后用create语句就可以建库,建表了。
另外还可以先把现有的数据库备份,然后等程序安装好以后就在新的服务器里恢复
但如果想用vb把sql server也安装了那恐怕只能shell sql server安装盘的setup.exe了。。
要在程序里把VB当前工程所用到的SQL数据库自动加到SQL管理器里。我都是手动的。应该是可以自动的。好像金蝶财务就有这个系统服务功能。
=================
用"restore database ......"
数据库做成SQL脚本简单那怎么实现安装的时候运行呢?
-----------------------------------------------------------------------------------------------实现:
1.写好生成创建数据库、数据库对象(表、视图、关系、触发器等)的SQL语句
2.将其保存至文本文件或者保存为.sql文件(在查询分析器中先测试其正确性)
3.在你的程序启动时,写代码使其运行
那怎么实现安装的时候运行呢?
-------------------------------------------------------------------------------------
如果你使用的是非VB自带的安装制作软件,其中都有相关的数据库配置项,参见对应的说明后再编绎发行包即可。各种安装程序制作软件,对数据库的配置不尽相同。
前提是必须已存在有一个数据库的备份,优点是创建使用的代码比较简单。
*.sql方式是事先编写创建数据库的SQL语句(DDL语言),在实际环境与预设值不同的时候,可以人为手动修改.sql文件中的DDL语句,灵活只针对于熟悉DDL语言的开发者。
---------------------------------------------------------------------------------
两种方式凭自己的喜好。
当然,你也可以在SETUP中创建。给你一个例子。
Create a bat file 或Script 脚本,这里以创建BAT文件为例。REM CreateDatabase.bat
c:\mysql\bin\mysql --user=root --password=password --database=workorder < c:\mysql\bin\backup_data.sqlecho --------- DONE WITH DB POPULATION --------------
pause
--
-- Host: localhost Database: workorder
-- ------------------------------------------------------
-- Server version 4.1.3b-beta-nt-max/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */;--
-- Table structure for table `assignment`
--DROP TABLE IF EXISTS `assignment`;
CREATE TABLE `assignment` (
`WO_NUMBER` varchar(8) NOT NULL default '',
`ACTION` varchar(20) NOT NULL default '',
`STAFF_NAME` varchar(20) NOT NULL default '',
PRIMARY KEY (`WO_NUMBER`,`ACTION`,`STAFF_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;--
-- Dumping data for table `assignment`
--
/*!40000 ALTER TABLE `assignment` DISABLE KEYS */;
LOCK TABLES `assignment` WRITE;
UNLOCK TABLES;
/*!40000 ALTER TABLE `assignment` ENABLE KEYS */;--
-- Table structure for table `assignse`
--DROP TABLE IF EXISTS `assignse`;
CREATE TABLE `assignse` (
`WO_NUMBER` varchar(8) NOT NULL default '',
`ACTION` varchar(20) NOT NULL default '',
`STAFF_NAME` varchar(30) NOT NULL default '',
PRIMARY KEY (`WO_NUMBER`,`ACTION`,`STAFF_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;--
-- Dumping data for table `assignse`
--
/*!40000 ALTER TABLE `assignse` DISABLE KEYS */;
LOCK TABLES `assignse` WRITE;
INSERT INTO `assignse` VALUES ('DDS0001','Requestor','Yew');
UNLOCK TABLES;
/*!40000 ALTER TABLE `assignse` ENABLE KEYS */;--
-- Table structure for table `contractor`
--DROP TABLE IF EXISTS `contractor`;
CREATE TABLE `contractor` (
`WO_NUMBER` varchar(8) NOT NULL default '',
`CONTRACTOR` varchar(40) NOT NULL default '',
PRIMARY KEY (`WO_NUMBER`,`CONTRACTOR`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;--
-- Dumping data for table `contractor`
--
/*!40000 ALTER TABLE `contractor` DISABLE KEYS */;
LOCK TABLES `contractor` WRITE;
UNLOCK TABLES;
/*!40000 ALTER TABLE `contractor` ENABLE KEYS */;--
-- Table structure for table `downtime`
--DROP TABLE IF EXISTS `downtime`;
CREATE TABLE `downtime` (
`DT_ID` varchar(10) NOT NULL default '',
`DT_NOUN` varchar(30) NOT NULL default '',
`DT_VERB` varchar(30) NOT NULL default '',
PRIMARY KEY (`DT_NOUN`,`DT_VERB`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;--
-- Dumping data for table `downtime`
--
/*!40000 ALTER TABLE `downtime` DISABLE KEYS */;
LOCK TABLES `downtime` WRITE;
INSERT INTO `downtime` VALUES ('1000000001','Actuator','Broken'),('1000000002','Actuator','Damage'),('1000000003','Actuator','Fall Down'),('1000000004','Actuator','Jammed'),('1000000006','Actuator','Out of Position'),('1000000009','Air Hose','Jammed'),('1000000007','Air Hose','Leak'),('1000000008','Air Hose','Out of Position'),('1000000010','Air Piping','Jammed'),('1000000011','Air Piping','Leak'),('1000000012','Air Piping','Modified'),('1000000013','Air Receiver Tank','Crack'),('1000000014','Air Receiver Tank','Leak'),('1000000015','Air Receiver Tank','Lower Pressure'),('1000000016','Battery','Damage'),('1000000018','Battery','Less Water'),('1000000017','Battery','Weak'),('1000000019','Bearing','Abnormal Sound'),('1000000020','Bearing','Burnt'),('1000000021','Bearing','Damage'),('1000000022','Bearing','High Temperature'),('1000000023','Bearing','Jammed'),('1000000024','Bearing','Less Lubrication'),('1000000026','Bearing','Loose'),('1000000027','Bearing','Out of Position'),('1000000028','Belt Joint / Lacing','Damage'),('1000000029','Belt Joint / Lacing','Tear Off'),('1000000030','Bolt','Broken'),('1000000033','Bolt','Fall Down'),('1000000032','Bolt','Loose'),('1000000031','Bolt','Lose'),('1000000035','Brake','Malfunction'),('1000000034','Brake','Wear Off'),('1000000037','Bunker','Broken'),('1000000036','Bunker','Crack'),('1000000038','Bush','Damage'),('1000000041','Bush','Loose'),('1000000040','Bush','Out of Position'),('1000000039','Bush','Wear Off'),('1000000062','Cable','Burnt'),('1000000064','Cable','Damage'),('1000000042','Clutch','Abnormal Sound'),('1000000044','Clutch','Engageless'),('1000000043','Clutch','Jammed'),('1000000045','Coil','Burnt'),('1000000046','Coil','Short'),('1000000048','Control Valve','Jammed'),('1000000049','Control Valve','Leak'),('1000000047','Control Valve','Malfunction'),('1000000054','Conunter Knife','Loose'),('1000000053','Conunter Knife','Sharpless'),('1000000052','Conveyor Belt','Stuck'),('1000000051','Conveyor Belt','Tear Off'),('1000000050','Conveyor Belt','Tracking'),('1000000056','Coupling','Loose'),('1000000055','Coupling','Misalign'),('1000000057','Coupling','Out of Position'),('1000000058','Crane','Malfunction'),('1000000059','Cyclone','Leak'),('1000000060','Cyclone','Plug Up'),('1000000061','Damper','Jammed');
UNLOCK TABLES;
/*!40000 ALTER TABLE `downtime` ENABLE KEYS */;--
-- Table structure for table `downtime_all_summary`
--DROP TABLE IF EXISTS `downtime_all_summary`;
CREATE TABLE `downtime_all_summary` (
`DEPARTMENT` varchar(15) NOT NULL default '',
`DURATION` int(11) NOT NULL default '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;