MFC+SqlServer 程序打包求助

mx_air 2012-10-16 06:06:33
数据库用的是ODBC连接

我用VS2010 installer 打包


按照网上的别人写的方法,我把注册表里的:ODBC路径项和数据源导出,然后导入到目标机器
内容如下:
[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]
"myODBCname"="SQL Server"

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\CarManager]
"Driver"="C:\\Windows\\system32\\SQLSRV32.dll"
"Server"="计算机名\\SQLEXPRESS"
"LastUser"="Administrator"
"Trusted_Connection"="Yes"
"Database"="myDBname"

解决方案->属性->系统必备里选择了:sql server2008 express edition

在虚拟机(XP)运行安装程序成功,运行却找不到数据库。

打开ODBC寻找问题有两个:
1:数据源myDBname的 服务器(s):里"计算机名\\SQLEXPRESS"这个是明显的错误,改成目标机器计算机名OK,我写安装程序时候应该如何获得目标机器计算机名?

2:DSN设置第三步 更改默认的数据库为(D):myDBname 。这也是明显错误,目标机器上找不到我的数据库myDBname.mdf,我应该如何在这里添加上我的数据库?因为目标机器没有sql server manager我也无法添加。我应该如何设置我的安装程序使得在这里可以有我自己的数据库?以便使得连接成功。

综上所述两个问题:
1、ODBC的DSN配置如何写服务器名
1、ODBC的DSN配置如何使目标机器上数据库表里有我的数据库


第一次用MFC+SQL SERVER,查一夜资料没找到答案,麻烦下大家了。恳请得到帮助,全部分送上。





...全文
163 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mx_air 2012-10-16
  • 打赏
  • 举报
回复
真的谢谢你。

我感觉又绕了,按照你的思路,我在 CREATE之前,首先要建一个DSN以用来连接,而且不能选择默认数据库。否则连接失败。

然后在MFC代码里CREATE DATABASE mydb1

然后通过写注册表修改这个DSN的默认数据库为mydb1

这样是不是绕了??还是我糊涂了..

或者说 m_database.open("my_dsn")之后用 use mydb1 ?
傻X 2012-10-16
  • 打赏
  • 举报
回复
目标机器上,不就是你自己的机器么?有区别么?难道你要远程连接建立数据库?

不就是SQL语句

CREATE DATABASE

详解:
http://topic.csdn.net/u/20100705/10/C6B2822B-9088-4A30-9F4F-9D374967F221.html
mx_air 2012-10-16
  • 打赏
  • 举报
回复
用代码写注册表没有问题,我做一个首次运行判断就OK了。ODBC连接我用写注册表的形式可以。

但是如何在目标机器上建立数据库呢?

可能我没表达清楚,我就是想实现在目标机器上运行我自己写好的数据库。

即目标机器 在ODBC->DSN 配置里 更改默认数据库为:里面有我写的数据库。用back恢复也好,用.sql脚本创建也行。我没弄过,不知道从哪里下手。应该把恢复、或者创建的代码写在哪里?
傻X 2012-10-16
  • 打赏
  • 举报
回复
金蝶的话,他们数据库,客户端服务器软件从头到尾都是他们安装和配置的。自然他们控制起来就很方便了。

他们肯定用代码写注册表,参数可以根据当前的函数来得出的。你是用reg文件写的,reg文件是死的。要手动修改。自然不能直接获取了
mx_air 2012-10-16
  • 打赏
  • 举报
回复
还有就是,我目标机器上只安装了SqlExpress2008,没有sql server manager如何进行备份恢复或者重新创建数据库?
mx_air 2012-10-16
  • 打赏
  • 举报
回复
re: tiger9991

多谢您的回答,但是我知道的像 金蝶 管家婆这类软件他们是怎么实现安装和部署的?我记得好像都是自动完成
傻X 2012-10-16
  • 打赏
  • 举报
回复
你整全自动化部署? 人工干预地方太多了,风险太大。不然也不会有实施工程师这个职位了。很多都要技术人员到场的。

1.GetComputerName可以得到DNS对应的计算机名。

2.我们以前配置都是准备一个database的bak文件直接导入形成新的数据库结构的。但是最初的数据库还是要自己建的。
(现在看来,目标机器的数据库不是你安装和部署的,那你得到的信息太少了。不可能做到直连的。你自己玩数据库也清楚ConnectionString这些都要自己填写配置的)
mx_air 2012-10-16
  • 打赏
  • 举报
回复
具体怎么做?
LuciferStar 2012-10-16
  • 打赏
  • 举报
回复
数据库也是需要配置的。
装完数据库,连接数据库,执行数据库的创建和初始化操作。这些都要程序来完成。
LuciferStar 2012-10-16
  • 打赏
  • 举报
回复
所有你在第三方软件里的操作,都有相应代码的。
你要做的,就是将鼠标的操作转成SQL的相应语句。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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