请问,如何把sql的数据打包到程序中?或者说在目标机上安装了sqlserver2000,如何让程序直接能够把从sql备份的数据自动导入到需要的位置?另外目标机的电脑名是否会对数据的访问造成影响?已经用installshild成功打包vc程序。谢谢。
解决方案 »
- 急急急!!!能够在子框架类中使用工具条???
- [Help]如何获取QQ2008聊天文本框的句柄?
- 开发过发卡程序的大哥帮忙
- 如何从调用.dll中的文件?
- 请问如何 不覆盖已有注册表项目 而导入 注册表文件(X.reg)
- 当我点击鼠标时(不在本窗口,屏幕任一位置)将窗口关闭!
- 在view中显示字符串
- 在安装Xtreme Toolkit后启动Launch Deployment Wizard,到最后一步时出现一个致命错误--找不到mfc42ud.lib,该怎么办?
- DISCARDABLE是什么意思?谢谢
- C语言读取BMP文件的代码,高手帮忙看看哪里错了?
- VC++ 毕设问题,小弟跪求到了
- SetEvent没用
把MDF和LDF文件复制到目标计算机,然后执行附加数据库操作。----这是最好的办法。
--- 绝对会造成影响,所以解决的方法有二个:
1.告知客户,我的程序一定要使用192.168.0.1这个IP的(或DBSERVER这个机器名的),但这样太不好了,人家的网络可能不是这个网段的.还有人家的电脑可能已经有一个机器名,还安装了其它的数据库,你要求人家一定要取这个名,就给人第一感觉:不专业.所以第一种方法PASS.2.在程序的开始部分对程序目录中的一个DBSERVER.INI文件进行读取,发现还没有设置数据库连接信息的,就弹出一个窗口,这个窗口记用户设置以下内容:
服务器IP
数据库实例名:如果有的话,有的不是(LOCAL)的,就要加这个实例名.
数据库用户名:对于MSSQL可以默认使用SA
数据库密码:这个一定要加密(对方输入的时候是明文,你要加密后保存,下次从INI文件里读取并解密后就是明文密码了)这样就很灵活了.根本不用考虑对方的IP和机器名.对于数据库的恢复,我们一般建议直接帮客户安装(通过DW,QQ之类的远程控制),或者写入文档,要求对方的技术人员安装,如果你的是面向大众的,那就比较麻烦了.你必须全部用代码完成,不过也不难,主要有以下二种:
1.全部用代码生成,主要是将SQL语句整合到VC中,就是先CREATE DATABASE ...,然后CREATE TABLE...,这样有个不好的地方,就是基础表无法一一导入,很麻烦.2.直接用语句恢复数据库.这个文件比较简单.
(1)写一个安装小程序,一开始弹出一个小窗口,要求用户输入已安装的MSSQL服务器的IP,帐号及密码,然后程序连接到MASTER数据库.就可以开始进行下一步操作了.
(2)在窗口中加一个浏览数据库文件按钮,让用户选择你的那二个数据库文件,也可以将数据库文件放在本地目录,你自己直接读取,这样可以免除用户选择的麻烦,不过用户要输入本数据库恢复到哪个目录,这个一定要用户来指定比较好.以免自动恢复到C盘不安全.
(3)使用RESTORE命令恢复,当然,这个要在VC里使用ADO的Command为完成:
--恢复数据库(DB.BAK是你对数据库一个完全备份.)
restore database dbname from disk='c:\db.bak' with recovery
当然,你也可以使用附加数据库的方法:
EXEC sp_attach_single_file_db @dbname = '你的数据库名',@physname = 'c:\你的数据库文件所在目录\xxx.mdf'这些都在ADO中完成即可.难道不大,就是比较烦一点.