郁闷中!在PB9使用ASA数据库编译发行,采用ODBC设置数据源并连接但是连接不上!

时间:2021-07-07 21:55:18
最近,想把调试完的程序进行编译后,然后到别的机器中去试时(即脱离开发环境下),根据书中的内容通过添加.dll文件及配置ODBC数据源和驱动程序后(在注册表中ODBCINST.INI和ODBC.INI设置)后,出现了下面这问题:
SQLSTATE=08001
[sybase][odbc driver][adaptive server anywhere]Unable to connect to database server, Specified database is invalid.
不知问题出在哪?
请大家指点!

14 个解决方案

#1


在ODBC里手工连接成功吗?

#2


具体请参考:
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=207837

#3


To j9dail:
所谓的ODBC手工连接是不是就是id=207837文章中所写的在注册表中设置ODBC数据源及驱动程序,还是其它意思?我不太清楚;id=207837文章中关于dblog实用程序的用法,我怎么看不太懂,其作用是什么,到底要生成什么文件,还是属于检测?我知道没有.log文件也是可以正常连接数据库(脱离开发环境下)。
期待中!

#4


数据库连接的问题还不少!

#5


請把你的連接數據庫的代碼和PB.INI的內容貼出來 看看才知道發生了什麼問題

#6


.ini的内容如下:
[DataBase]
DBMS=ODBC
Database=
UserId=
DatabasePassword = 
LogId=
LogPassword=
ServerName=
DbParm=Connectstring='DSN=hos_beta'
//连接代码
// Profile Test
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=hos_beta;UID=;PWD='"

另外日志文件.log文件如何生成,用dblog -t logname database-file方法吗(http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=207837),
我在DOS下这样写:
d:\sy>dblog -t f:\database\hos_beta.log f:\database\hos_beta.db
可惜结果是说dababase name hos_beta.db not found,但hos_beta.db确存放在该目录下,可能我还没搞清楚dblog的用法吧。
请指点!

#7


关注!

#8


可能是日志文件的问题!在sybase central里把日志文件的绝对路径改为相对路径,就可以了!

#9


通过在别人的机器上的手动连接,依然没有连接!
按照CSDN上的注册表设置和参考相关书籍,发现我在脱离PB9开发环境下(在别人的机器上,无安装PB),依然没有解决问题,出现的错误
[SQLSTATE]=08001
[..]Unable to connect to database server:Specified database is invalid!
而不解的是,然后我把注册表中的[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ppp_2] 下的
 "DatabaseFile"="%MAINDIR%\\ppp_2.db"
中的ppp_2.db换成hos_beta.db(另一个类似ppp_2.db的库,只是表不同),同时也把hos_beta.db复制到目录文件中即c:\project路径下(此路径下存放了用ppp_2.db应用程序编绎的.exe和.pbr及拷贝相关的.dll文件) 
结果是能连接上,我想在移植和复制.dll及注册表的设置应该没有什么问题,但不知道我是不是会创建ASA库的原因,还是什么?
如果数据库是无效的,那么在本机上可以正常使用,出现错误的原因是什么呢?已经6天了,唉```
相当郁闷!

#10


看来只有重新创建库再试吧

#11


发消息给你了

#12


可能是数据库驱动的问题吧,在ASA下建的库要有这个环境才能运行的吧!!!

#13


借花献佛:
http://community.csdn.net/Expert/topic/4014/4014878.xml?temp=.8839228
是数据库日志的问题!

#14


你首先要确认你的ASA数据库是否在安装的时候能注册成公,然后用PB自带的PowerBuilder Runtime Packager,制作下PB的运行环境,再测试下怎么样?

我也是用PB+ASA做安装文件,作了一天,终于成功了,同时还要记住你的数据库的设置不要在用户DSN中,要在系统的DSN中,用户中不好注册的!



对了你的ASA的数据库的.LOG文件改了吗?

#1


在ODBC里手工连接成功吗?

#2


具体请参考:
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=207837

#3


To j9dail:
所谓的ODBC手工连接是不是就是id=207837文章中所写的在注册表中设置ODBC数据源及驱动程序,还是其它意思?我不太清楚;id=207837文章中关于dblog实用程序的用法,我怎么看不太懂,其作用是什么,到底要生成什么文件,还是属于检测?我知道没有.log文件也是可以正常连接数据库(脱离开发环境下)。
期待中!

#4


数据库连接的问题还不少!

#5


請把你的連接數據庫的代碼和PB.INI的內容貼出來 看看才知道發生了什麼問題

#6


.ini的内容如下:
[DataBase]
DBMS=ODBC
Database=
UserId=
DatabasePassword = 
LogId=
LogPassword=
ServerName=
DbParm=Connectstring='DSN=hos_beta'
//连接代码
// Profile Test
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=hos_beta;UID=;PWD='"

另外日志文件.log文件如何生成,用dblog -t logname database-file方法吗(http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=207837),
我在DOS下这样写:
d:\sy>dblog -t f:\database\hos_beta.log f:\database\hos_beta.db
可惜结果是说dababase name hos_beta.db not found,但hos_beta.db确存放在该目录下,可能我还没搞清楚dblog的用法吧。
请指点!

#7


关注!

#8


可能是日志文件的问题!在sybase central里把日志文件的绝对路径改为相对路径,就可以了!

#9


通过在别人的机器上的手动连接,依然没有连接!
按照CSDN上的注册表设置和参考相关书籍,发现我在脱离PB9开发环境下(在别人的机器上,无安装PB),依然没有解决问题,出现的错误
[SQLSTATE]=08001
[..]Unable to connect to database server:Specified database is invalid!
而不解的是,然后我把注册表中的[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ppp_2] 下的
 "DatabaseFile"="%MAINDIR%\\ppp_2.db"
中的ppp_2.db换成hos_beta.db(另一个类似ppp_2.db的库,只是表不同),同时也把hos_beta.db复制到目录文件中即c:\project路径下(此路径下存放了用ppp_2.db应用程序编绎的.exe和.pbr及拷贝相关的.dll文件) 
结果是能连接上,我想在移植和复制.dll及注册表的设置应该没有什么问题,但不知道我是不是会创建ASA库的原因,还是什么?
如果数据库是无效的,那么在本机上可以正常使用,出现错误的原因是什么呢?已经6天了,唉```
相当郁闷!

#10


看来只有重新创建库再试吧

#11


发消息给你了

#12


可能是数据库驱动的问题吧,在ASA下建的库要有这个环境才能运行的吧!!!

#13


借花献佛:
http://community.csdn.net/Expert/topic/4014/4014878.xml?temp=.8839228
是数据库日志的问题!

#14


你首先要确认你的ASA数据库是否在安装的时候能注册成公,然后用PB自带的PowerBuilder Runtime Packager,制作下PB的运行环境,再测试下怎么样?

我也是用PB+ASA做安装文件,作了一天,终于成功了,同时还要记住你的数据库的设置不要在用户DSN中,要在系统的DSN中,用户中不好注册的!



对了你的ASA的数据库的.LOG文件改了吗?