数据库移植问题~!

lvcker 2003-09-03 09:25:30
为什么我在一个机器上建的数据库文件(.db),能够顺利连接,当复制到另一个机器上总是连接不上,出现错误:
SQLSTATE=08001
[Sybase][ODBC Driver][Adaptive server anywhere]unable to connect to database server:specified database is invalid.
这是怎么回事啊,如何解决!(注:我用的是pb9.0,数据库就是Adaptive server anywhere8.0了,我下载的别人的程序,数据库文件都能连上,他们一般是Adaptive server anywhere 7.0,不知道和这有没有关系)
...全文
65 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqf 2003-09-12
  • 打赏
  • 举报
回复
得将数据库日志文件与数据库文件分离。
将DB文件与LOG文件脱离(本人的建议),在MS-DOS方式中:
dblog -n abcd.db
数据库文件为abcd.db
然后再建一遍数据源,就OK了。
zhang712 2003-09-12
  • 打赏
  • 举报
回复
可以用Sybase Centeral工具将DB文件生成LOG文件再生成SQL语句,执行SQL语句重新生成DB文件。
banalman 2003-09-12
  • 打赏
  • 举报
回复
up
lvcker 2003-09-09
  • 打赏
  • 举报
回复
jerrymao(加菲猫):你里面的gs_path代表什么?还有f_str_isnull()代码是什么?
lvcker 2003-09-09
  • 打赏
  • 举报
回复
再次把问题提出!
lvcker 2003-09-04
  • 打赏
  • 举报
回复
ttianhong(甜甜) :你所说的log文件是和数据库一起生成的log文件吗?
nongkafei 2003-09-04
  • 打赏
  • 举报
回复
还没遇到过这个问题
lvcker 2003-09-03
  • 打赏
  • 举报
回复
我删除了log文件,也不好使啊!
lvcker 2003-09-03
  • 打赏
  • 举报
回复
我手动通过控制面板设置了ODBC啊,我设置其他的下载的数据库文件,都可以,2楼的代码的作用也是这个吧?
ttianhong 2003-09-03
  • 打赏
  • 举报
回复
删除log文件
纳米茶 2003-09-03
  • 打赏
  • 举报
回复
odbc没有配置,很简单
参考我以前的回复吧,告诉你在别的机器上面怎么自动配置odbc


http://expert.csdn.net/Expert/topic/2206/2206094.xml?temp=.3253137

或者我贴下来
//////////
String ls_value
string ls_subkeylist[]
String ls_regkey
//////////
RegistryGet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\deposit","Driver",RegString!,ls_value)
if f_str_isnull(ls_value)=false then////已经配置
//////////从注册表中读入配置,连接数据库实例
sqlca.dbms = 'ODBC'
sqlca.autocommit = false
sqlca.dbparm = "ConnectString='DSN=deposit;UID=dba;PWD=sql'"
connect using sqlexp;
else//////////ODBC数据源没有配置
//////////配置ODBCINST
ls_regkey = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"
RegistryGet(ls_regkey,"Adaptive Server Anywhere 8.0",RegString!,ls_value)
if f_str_isnull(ls_value) then
RegistrySet(ls_regkey,"Adaptive Server Anywhere 8.0",RegString!,"Installed")
ls_regkey = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0"
RegistrySet(ls_regkey,"Driver",RegString!,gs_path +"win32\dbodbc8.dll")
RegistrySet(ls_regkey,"Setup",RegString!,gs_path +"win32\\dbodbc8.dll")
end if
////配置实例ODBC
ls_regkey = "HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"
RegistrySet(ls_regkey,"deposit",RegString!,"Adaptive Server Anywhere 8.0")
//////////注册HKEY_CURRENT_USER\
ls_regkey = "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\deposit"
RegistrySet(ls_regkey,"AutoStop",RegString!,'Yes')
RegistrySet(ls_regkey,"DatabaseFile",RegString!,gs_path +'deposit.db')
RegistrySet(ls_regkey,"Description",RegString!,'Oracle数据库定时备份参数库')
RegistrySet(ls_regkey,"Driver",RegString!,gs_path +"win32\dbodbc8.dll")
RegistrySet(ls_regkey,"Integrated",RegString!,'No')
RegistrySet(ls_regkey,"Start",RegString!,gs_path + 'win32\dbeng8.exe -Q -c 8m')
//////////
ls_regkey = "HKEY_USERS"
RegistryKeys(ls_regkey,ls_subkeylist)
ls_regkey = ls_regkey + ls_subkeylist[2]
RegistrySet(ls_regkey+"\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources","deposit",RegString!,"Adaptive Server Anywhere 8.0")
ls_regkey = "HKEY_USERS\" + ls_subkeylist[2]+"\SOFTWARE\ODBC\ODBC.INI\deposit"
RegistrySet(ls_regkey,"AutoStop",RegString!,'Yes')
RegistrySet(ls_regkey,"DatabaseFile",RegString!,gs_path +'deposit.db')
RegistrySet(ls_regkey,"Description",RegString!,'Oracle数据库定时备份参数库')
RegistrySet(ls_regkey,"Driver",RegString!,gs_path +"win32\dbodbc8.dll")
RegistrySet(ls_regkey,"Integrated",RegString!,'No')
RegistrySet(ls_regkey,"Start",RegString!,gs_path + 'win32\dbeng8.exe -Q -c 8m')
//////////完成配置
sqlca.dbms = 'ODBC'
sqlca.autocommit = false
sqlca.dbparm = "ConnectString='DSN=deposit;UID=dba;PWD=sql'"
connect using sqlca;
end if
////判断数据库是否连接失败
if sqlca.sqlcode <> 0 then
MessageBox ('提示信息','不能连接定时备份参数库!~r~n错误原因为'+sqlca.SQLErrText,StopSign!)
HALT
end if

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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