计算机名称更改后,软件无法连接SQL数据库!急求!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机名称更改后,软件无法连接SQL数据库!急求!相关的知识,希望对你有一定的参考价值。

我医院有一款软件,是表报类软件,无需联网,是在本机上自行登录的一种软件,依靠SQL数据库。后来这台计算机名称被更改,导致这款软件无法登录,一登录就显示无法连接SQL Server,初步猜测应该是计算机名称更改所导致的问题,现求助各位达人,如何能更改这款软件的数据库指向,才能恢复使用?或者用其他什么方法能恢复使用?在线等,求助!高分悬赏,生效后追加!
这是这款软件的根目录下所有文件,请各位大侠过目!

救命啊!!!!!!!!!!!!!!
救命啊!!!!!!

好吧朋友们,那我再想个极端点的办法,首先这款软件我知道是一个个人制作的,我相信安全性应该不高,所以我在考虑有么有什么反向编辑或者类似的暴力的方法,去修改软件内部配置信息?

不一定是在这里改的,原先可能是通过你的计算机名字连接 数据,现在你改了计算机名原连接名字自动无法生效(也就是说你的Ms SqL是安装在本机
你这个目录只是个程序包,如果我判断没错的话,你的连接配置应该不在这里,
而是在开始---程序---BDE--BDEADMIN  管理器里设置的

,如果使用了 localhost 在3的位置,必须到数据管理器里TCP 进行启用

 

追问

介不介意QQ远程一下? 分数不是问题,可以再提高!!!

追答

120930886 不知道能不能通过,可试下Q

参考技术A

    看看软件有没有配置数据库的,如.ini后缀的,看看里面是否有以前的电脑名。

    把电脑名改回原来的试试

追问

说实话,原电脑名是安装系统时自动生成的无序字母组合,更改后就完全不记得了。

追答

那记得你原先的IP地址吗?把IP地址改回原来的试试

追问

原IP地址是自动获取,额,我刚刚更改过自动获取,但是问题依旧,好无奈。。。

追答

你试试把IP地址改回手动,设置成原来的IP地址。
另外看了你的截图,把config.fpw复制一份出来,用记事本打开试试,里面应该有配置信息的

追问

额,就这点内容噢。

追答

推荐你使用 CodeSmith ,这个软件可以用二进制打开原始文件,打开原始文件后你查找数据库连接语句,一般是databese,就可以看到和修改了,修改前记得保存

参考技术B 这个估计只能在把那个计算机名字修改回来了。

要么就要看你那个 连接数据库的软件, 是把 连接字符串, 写在 配置文件里面的, 还是写死在程序里面的。

如果那个程序没有配置的话, 那么你倒是可以 尝试修改一下本地的 hosts 文件。
把原来的 机器名称, ip 指向到现在这台修改了名字的机器上面。追问

据我目测,这款软件没有配置程序,我比较感兴趣你说的修改本地hosts文件的方法,可否指导一下?

追答

假设你那台 sql 服务器。

以前的名字叫 testserver
ip 地址是 192.168.1.99

现在可能某些原因, 服务器里面, 带个 test 不好
于是数据库服务器, 名字被修改为 DBServer 了, ip 没有变化。

但是可能是因为程序里面, 代码还是要去 连接 testserver
但是找不到机器了。

那么你编辑一下 C:\Windows\System32\drivers\etc 目录下面的 hosts 文件

增加一行

192.168.1.99 testserver

意思就是告诉 当前计算机, 如果遇到 testserver 这样的机器名字, 就直接去访问 192.168.1.99

追问

好吧,还是谢谢你的详细介绍,只是你的方法还是建立在原计算机名称存在的基础上。哎,无奈了。几万元的软件要让领导批死了。。。。。

追答

我又仔细看了一下你的问题的说明。
“无需联网,是在本机上自行登录的一种软件”
“原电脑名是安装系统时自动生成的无序字母组合,更改后就完全不记得了。”

那么看样子, 应该是 访问本机的数据库的。
从常规上面来说, 一般开发的时候, 如果是访问本机数据库的话。

就算有配置文件, 一般也是直接写 localhost , 而不是写 那个 “自动生成的无序字母组合” 的。

如果开发者偷懒的话, 数据库应该也是直接使用 “操作系统验证” 方式。
这样不用 设置 登录的用户名, 密码。

你可以尝试执行一下
select name from sys.syslogins

查询一下, 当前数据库里面, 存在的用户名。

理论上, 会有一行 操作系统用户的 用户名。

也就是
机器名\登陆用户名 的数据。

那个 机器名, 应该就是你以前的 机器名。

参考技术C 不知道你的问题解决了没,之前oracle改计算机名字后也连不上,后来把tnsname.ora中host改为host=localhost就好了,这个sql server不知道有没有host=的地方,找找,看有没有帮助 参考技术D 应该不是计算机名称的原因,因为连接数据库需要的是计算机的ip,你有图形化的连接数据库工具没有,追问

IP地址确实页更改过,我刚刚把IP设置为自动获取,因为之前就一直是自动获取,但是还是无法连接SQL Server。
至于您说的那种工具,我没有,求指导?

追答

哦,那你先看看自己的ip地址,然后连接数据库时的信息改一下就ok了

SQL Server 也有自己的页面工具,就是不详细,网上很好下载的,主要就是看连接数据库的信息,没多大用

追问

哎,那我有个想法,加入你所说的软件能看到软件连接数据库时的信息,那么能否看到这种情况,就是软件会连接原电脑名???

追答

看不到,连接数据库和电脑名没关系的,只是ip而已

看不到,连接数据库和电脑名没关系的,只是ip而已

追问

那,朋友,看你很热心,我有个有点另类的方法,计算机名称是不是保存在某个文件里?能否看到历史名称?

SQL 更改视图名称/连接

【中文标题】SQL 更改视图名称/连接【英文标题】:SQL Change View Name / Joins 【发布时间】:2015-06-09 14:06:35 【问题描述】:

我正在尝试加入我创建的两个视图,但是我正在使用它们的公共字段 (cAuditNumber) 加入它们。

问题是,一旦我完成了连接,它不会让我创建视图,因为它不能有两次字段名称 cAuditNumber。

cAuditNumber 是我应该使用的 PK 吗?

如何更正此问题并仍然加入表格?

CREATE VIEW KFF_Sales_Data_Updated AS
SELECT CustSalesUpdated.*, StkSalesUpdated.*
FROM CustSalesUpdated
INNER JOIN StkSalesUpdated
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber

我收到以下错误:

消息 4506,级别 16,状态 1,过程 KFF_Sales_Data_Updated,第 2 行 每个视图或函数中的列名必须是唯一的。视图或函数“KFF_Sales_Data_Updated”中的列名“cAuditNumber”被指定了多次。

【问题讨论】:

MySQL 和 tsql?不同的产品... 首先你不应该在生产代码中使用 select *。您应该指定每个列的名称。然后,您可以为任何重复的列名设置别名,或者如果它们是多余的,您可以不包括它们。 谢谢@MartianCodeHound!你能详细说明一下吗?我是一个初学者用户 您必须为视图列命名!创建视图 kff (col1, col2, ...) as select ... 【参考方案1】:

用您自己的列名代替 ColumnA、Column B 等,但应遵循以下格式:

CREATE VIEW KFF_Sales_Data_Updated AS
SELECT CustSalesUpdated.cAuditNumber
    ,CustSalesUpdated.ColumnA
    ,CustSalesUpdated.ColumnB
    ,CustSalesUpdated.ColumnC
    ,StkSalesUpdated.ColumnA as StkColumnA
    ,StkSalesUpdated.ColumnB as StkColumnB
    ,StkSalesUpdated.ColumnC as StkColumnC
FROM CustSalesUpdated
INNER JOIN StkSalesUpdated
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber

您只需使用“as”为重复的列添加别名,或者您可以使用它来重命名您想要的任何列。

【讨论】:

谢谢大家!非常感谢【参考方案2】:
CREATE VIEW KFF_Sales_Data_Updated AS
SELECT csu.cAuditNumber cAuditNumber1 , ssu.cAuditNumber cAuditNumber2  
FROM CustSalesUpdated csu
INNER JOIN StkSalesUpdated ssu
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber

您可以在两个表的 select 语句中添加任何其他列,但如果有两个同名的列,您应该给它们取别名

【讨论】:

【参考方案3】:

使用select * 通常是一种不好的做法。另一方面,alias 您的表名和列是一个很好的做法。特别是在您的情况下,您的表名以及相同的列名(跨两个表)可以使用别名。数据库对于cAuditNumber 来自哪里感到困惑。所以,别名就派上用场了。

CREATE VIEW KFF_Sales_Data_Updated
AS
SELECT 
     csu.cAuditNumber
    ,csu.Col1
    ,csu.Col2
    ,csu.Col3
    ,ssu.Col1 AS StkCol1
    ,ssu.Col2 AS StkCol2
    ,ssu.Col3 AS StkCol3
FROM CustSalesUpdated csu
INNER JOIN StkSalesUpdated ssu ON csu.cAuditNumber = ssu.cAuditNumber

【讨论】:

以上是关于计算机名称更改后,软件无法连接SQL数据库!急求!的主要内容,如果未能解决你的问题,请参考以下文章

远程连接sql 2000 不正确 急求解答 高分悬赏

pdf4-2009安无法连接到数据库

【200分】金碟K3 进入显示:无法建立数据连接 错误代码:16389(4005H)

ODBC不能连接部分sql2000数据库,急求解决办法(送高分)。

SQL Server Agent 安装及配置使用

SQL急求!!!!