请问如何将SQL数据库与程序一同制作成安装程序(即安装时就配好数据库)?(100分)

  • 主题发起人 主题发起人 BUG-feng
  • 开始时间 开始时间
to tkggai:
给你写信被退回。
我想请教一些问题:
1。什么叫第一次安装?你怎么知道是第一次安装?
2。“把databasename设为Master,再用Sql中的restore语句进行数据库恢复“是自己手动,还是单编一个小程序,或是写在自己分发的程序中,或者让安装程序调用?
3。另外同不通过ODBC并不重要,应位很有可能你分发的程序还是使用了ODBC,而且ODBC每台windows计算机都有。
希望经过讨论得到一种方便简单又实用的数据库安装方法。
谢谢!
 
tkggai:
您好!
您说的是否就使用master数据库(不另外建立数据库),然后把表建立在master库里?
这样就不用把您在设计时建立的数据库打包进安装程序??能否给个例子??
 
其实我觉得很简单嘛,做个构建数据环境的程序,运行时连接数据库,不存在,则调用
该程序:
create database
……
create table
……
可以将该程序做成dll,数据环境改变了,更新这个dll就行了。
 
这些很简单,你不知道SQL Server将数据库信息保存在哪里的吗?看来你要好好学学SQL Server
通过SQL-DMO就可以搞定一切
 
不好意思,菜鸟.有例子吗??您有网站吗??
 
很简单哟
一、安装时将你的数据库文件(如:hosdata_Data.MDF和hosdata_Log.LDF)
也拷贝到硬盘某录下(如:C:/MsSql7/Data)
二、保证MSSQLSERVER中没有同名的数据库,然后手工或编程执行如下代码来装载你的数据库,
EXEC sp_attach_db @dbname = N'hostdata',
@filename1 = N'c:/mssql7/data/hosdata_Data.MDF',
@filename2 = N'c:/mssql7/data/hosdata_Log.LDF'
 
为什么不生成SQL脚本(生成数据库的〕然后放到安装程序中运行,或者
自己写程序运行。
 
把数据库文件安装时考过去不就行了吗!
 
此问题看来在大富翁中是不会有一个完美的解决方案了!
 
拷贝的SQL Server 7,2000数据库的恢复方法
在SQL Server 7中由于MS重新设计了数据库文件的存储方式,
取消了新建设备再建数据库这一繁琐的过程。新的存储格式,
一个数据库包括两个文件,mdf数据库文件和ldf日志文件。
所以我们在重装机器备份时可以把你要备份的数据库的这两个文件拷贝出来,
重新安装之后再恢复。
  在SQL Server中提供了这种恢复方式的存储过程。
1.sp_attach_db [@dbname =] 'dbname',[@filename1 =] 'filename_n'
给系统添加一个数据库,在dbname指定数据库名称,
filename_n指定数据库的文件和日志文件。比如我有一个voogiya的库,
停止SQL Server服务备份voogiya_data.mdf,voogiya_log.ldf,启动SQL server,
删除掉这个库,然后再把这两上文件拷到sql server DATA目录中,
在Query Analyzer中执行如下语句:
EXEC sp_attach_db @dbname = N'hotel',
@filename1 = N'c:/mssql7/data/hotel_data.mdf',
@filename2 = N'c:/mssql7/data/hotel_log.ldf'
就会把这个库加入到SQL Server Group中.
2.sp_attach_single_file_db [@dbname =] 'dbname',
[@physname =] 'physical_name'
这个命令和上面的功能一样,在physical_name中只要写上据库的物理文件名就可以了,日志文件SQL server会重新建立。这个存储过程的运行要先执行下面的存储过程:
sp_detach_db @dbname = 'dbname'
同样以上面的为例:
EXEC sp_detach_db @dbname = 'voogiya'
EXEC sp_attach_single_file_db @dbname = 'voogiya',
@physname = 'd:/mssql7/data/voogiya_data.mdf'

要注意执行以上存储过程的用户要在sysadmin中.
以上方法在windows Nt 4.0,service pack5,sql server 7.0上,WIN2000,SQL2000 运行通过。
利用此原理写到程序中就行了,
当然要把数据库文件COPY 到服务器的硬盘而不是客户端的HDD。
 
先用sqlserver生成数据库的脚本文件(例如aa.sql),打包在安装文件中,
在安装后期由安装程序执行“osql -U sa -i aa.SQL”,会自动生成数据库
结构。但是期间会出来一个黑色的命令行窗口不太好看,另外还有一个问题
就是sa的口令需要输入,如果可以确定sa的口令(例如XXXX)就可以
“osql -U sa -P XXXX -i aa.SQL”,一切都是自动的了。
 
请问这些MDF,LDF是怎么来的?
 
如何能保密,客户在服务器有ADMINISTRATOR的权限,要看你的脚本随时可导出来看。
主要还是考虑安装的简便吧
 
怎样才能较好的对数据库表进行加密?有详细的介绍吗?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部