求原因::可以再加分重谢!!

wangsw 2002-05-29 12:03:12
有两个同名的ASA数据库!!
这两个数据库在各自的机器上都运行的很好!
将其中一个数据库拷贝到另一个机器中覆盖到原来的同名数据库,问题出现::
这一个拷贝后的数据库无法驱动,在ISQL与程序中都无法打开,再拷回本机原来的库,在程序与ISQL中可以打开!!
请问::
这是哪一种原因??及其解决办法!!
...全文
77 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangsw 2002-05-30
  • 打赏
  • 举报
回复
??????jui
总算
有了
是那个库好象不好,不知是不是被破坏了!!
我又从第三台机器上考了个库就好了!!
散分!!!
liulee 2002-05-29
  • 打赏
  • 举报
回复
1.版本?
2.用户?
3.驱动,isql不会版本有差别吧?
wangsw 2002-05-29
  • 打赏
  • 举报
回复
从效果看来是一样!
///////
我是说,两个同名的数据库,在两个机器中运行可以,而再将一个数据库移到另一台上就不行了呢??
xiaoxianhe 2002-05-29
  • 打赏
  • 举报
回复
数据源,查看ODBC中的数据源,是否和你系统使用的一样。
wangsw 2002-05-29
  • 打赏
  • 举报
回复
一切都没有问题,都是同样的程序,在各自的机器中都能正常运行,就是数据库文件一交换就会出现无法启动数据库的情况!!??
xiaoxianhe 2002-05-29
  • 打赏
  • 举报
回复
是不是你程序中数据库描述有问题?
xiaoxianhe 2002-05-29
  • 打赏
  • 举报
回复
有Log吧?那个东西挺讨厌的!
楼上说的有道理,看看你的配置文件(.ini),有没有不一致的地方。
wangsw 2002-05-29
  • 打赏
  • 举报
回复
不是,log文件我没有用!!在设置中去掉了!!
可是,那么库可在我编程的机中使用!!
等待中………………
wdqsl1 2002-05-29
  • 打赏
  • 举报
回复
是不是什么配置文件的问题,什么.log 什么的。或.ini什么的
关注
fibbery 2002-05-29
  • 打赏
  • 举报
回复
我觉得是你的系统有差别!两台机器的环境肯定不一样!比如软件的安装目录,系统安装目录,路径……
我只是感觉,没经验!
xiaoxianhe 2002-05-29
  • 打赏
  • 举报
回复
还是看看你的数据源吧,感觉上是那里有问题。
你的问题比较怪,也比较棘手,只能说感觉了。
jackygan 2002-05-29
  • 打赏
  • 举报
回复
其实ASA无论是那一个版本,它的可移植性都是很好的,不过当碰到这样的问题时,
其原因也有多种,建议可用以下办法测试:
1。用ASA打开其他的.db数据库可以吗?(如果也不可以的话,重装ASA即可)
2。虽然你拷贝过去的文件名是一样的,但ASA认为去不一样,尝试删掉其log文件,用sybase sentral先连接一次,再用你的程序连接。
3。可以尝试把ODBC再重新配置多一次,虽然数据完全一样,但这样可以进一步确认。
4。笨方法,先将其备份,然后在别的机子上复原的办法。(数据量大的库,建议不要采用这个方法)
//以上1、2、3点建议你去尝试,问题应该可以解决。
sorrow_arrow 2002-05-29
  • 打赏
  • 举报
回复
感觉不可思议,我提
msf 2002-05-29
  • 打赏
  • 举报
回复
确实很怪。 把这一个再放到另一台机器上。问题一样吗?
如果一样再找原因。 有共性吗。再考虑一下 版主所说的几川原因。
wangsw 2002-05-29
  • 打赏
  • 举报
回复
流还在吗??可否回答我的问题??
wangsw 2002-05-29
  • 打赏
  • 举报
回复
isql是从50的目录中拷的!!
换了COLLECT库以后,就是无法运行!!

下面是调到COLLECT库的程序::
string dwh,bmh
blob lb_pic
if messagebox("提示","采集数据吗?",question!,yesno!)=2 then return
long erow,rrow,wrow,ret
cb_1.enabled=false
cb_2.enabled=false

transaction desql
desql=create transaction
desql.DBMS = "ODBC"
desql.AutoCommit = False
desql.DBParm = "ConnectString='DSN=collect;UID=dba;PWD=wangsw;'"
/////
if desql.DBMS='' or isnull(desql.DBMS) then
messagebox("系统文件错误","请检查程序运行路径或与系统管理员联系!")
halt
else
connect using desql ;
end if
if desql.sqlcode<>0 then
messagebox("数据库连接错误!","因为"+desql.sqlerrtext+"~n而无法连接数据库,请检查线路连接或通知系统管理员!")
return
end if

/////
declare uc_src cursor for select f_dwh,f_bmh from spbmdwry using desql ;
pipeline i_pipe
i_pipe=create u_pipeline
i_pipe.dataobject='p_src'
st_1.visible=true
ret=i_pipe.start(desql,sqlca,dw_1)
if ret=1 then
erow=i_pipe.RowsInError
rrow=i_pipe.RowsRead
wrow=i_pipe.RowsWritten
if erow>0 then dw_1.visible=true
sle_1.text=string(erow)
sle_2.text=string(rrow)
sle_3.text=string(wrow)
open uc_src ;
fetch uc_src into :dwh,:bmh ;
do while desql.sqlcode=0
selectblob f_zkp into :lb_pic from spbmdwry where f_dwh=:dwh and f_bmh=:bmh using desql;
if string(lb_pic)<>'' then
updateblob spbmdwry set f_zkp=:lb_pic where f_dwh=:dwh and f_bmh=:bmh using sqlca;
end if
fetch uc_src into :dwh,:bmh ;
loop
close uc_src ;
commit ;
messagebox("提示","数据采集完毕!")
else
messagebox("提示","数据采集错误,请与管理理员联系!")
end if
destroy i_pipe ;
disconnect using desql ;
st_1.visible=false
cb_1.enabled=true

xiaoxianhe 2002-05-29
  • 打赏
  • 举报
回复
isql不会版本有差别吧?
老哥,我快没招儿了!
老大来了,你快有救了!
wangsw 2002-05-29
  • 打赏
  • 举报
回复
流:好久没见到你了!
//odbc相关文件
Dbeng50.exe,Dbl50t.dll,odbc32.dll,odbccp32.dll,odbcint.dll,Wl50ent.dll,Wod50t.dll

/相关注册如下:
string ls_Buffer=Space(255),ls_bz
long ll_pos,ll_pos1,ll_ret
string ls_keyname = 'HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\rcgl'
string ls_driver
string ls_UID = "dba"
string ls_PWD = "wangsw"
string ls_Start
string ls_DatabaseFile
string ls_DatabaseName = "rcgl"
string ls_AutoStop = "yes"

IF Handle(GetApplication()) <> 0 THEN ////已编译
GetModuleFileNameA(Handle(GetApplication()),ls_Buffer,255)
END IF
ls_bz=profilestring('glwk.ini','other','安装标志','1')
if ls_bz='0' then
do while true
ll_pos=pos(ls_buffer,'\',ll_pos1+1)
if ll_pos=0 then exit
ll_pos1=ll_pos
loop
gs_path=left(ls_buffer,ll_pos1)
ls_buffer=left(gs_path,len(gs_path) -1)
ll_pos1=0
do while true
ll_pos=pos(ls_buffer,'\',ll_pos1+1)
if ll_pos=0 then exit
ll_pos1=ll_pos
loop
gs_path1=left(ls_buffer,ll_pos1)

////////注册rcgl库
ls_driver = gs_path1 + "WOD50T.DLL"
ls_Start = gs_path1 + "dbeng50.exe -d -Q"
ls_DatabaseFile = gs_path1 + "rcgl.db"
ll_ret=RegistrySet(ls_keyname, "Driver", RegString!, ls_driver)
ll_ret=RegistrySet(ls_keyname, "UID", RegString!, ls_UID)
ll_ret=RegistrySet(ls_keyname, "PWD", RegString!, ls_PWD)
ll_ret=RegistrySet(ls_keyname, "Start", RegString!, ls_Start)
ll_ret=RegistrySet(ls_keyname, "DatabaseFile", RegString!, ls_DatabaseFile)
ll_ret=RegistrySet(ls_keyname, "DatabaseName", RegString!, ls_DatabaseName)
ll_ret=RegistrySet(ls_keyname, "AutoStop", RegString!, ls_AutoStop)
////注册collect库
ls_keyname = 'HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\collect'
ls_DatabaseName = "collect"
ls_DatabaseFile = gs_path1 + "collect.db"
ll_ret=RegistrySet(ls_keyname, "Driver", RegString!, ls_driver)
ll_ret=RegistrySet(ls_keyname, "UID", RegString!, ls_UID)
ll_ret=RegistrySet(ls_keyname, "PWD", RegString!, ls_PWD)
ll_ret=RegistrySet(ls_keyname, "Start", RegString!, ls_Start)
ll_ret=RegistrySet(ls_keyname, "DatabaseFile", RegString!, ls_DatabaseFile)
ll_ret=RegistrySet(ls_keyname, "DatabaseName", RegString!, ls_DatabaseName)
ll_ret=RegistrySet(ls_keyname, "AutoStop", RegString!, ls_AutoStop)
setprofilestring('glwk.ini','other','安装标志','1')
end if

SQLCA.DBMS = "ODBC"
SQLCA.DBParm = "ConnectString='DSN=rcgl;UID=dba;PWD=wangsw'"
if sqlca.DBMS='' or isnull(sqlca.DBMS) then
messagebox("系统文件错误","请检查程序运行路径或与系统管理员联系!")
halt
else
connect using sqlca ;
end if
if sqlca.sqlcode<>0 then
messagebox("数据库连接错误!","因为"+sqlca.sqlerrtext+"~n而无法连接数据库,请检查线路连接或通知系统管理员!")
halt
end if


就是用别的机器上的COLLECT库替换另一台机器的COLLECT库文件是,COLLECT不能启动!!
可是在我的编程机器中可以正常使用!

1,108

社区成员

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

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