PB连接数据库失败

sk4ksdksk 2010-09-03 01:33:11
[DBMS_PROFILES]
Profiles=GMFCPD08


[Profile GMFCPD08]
DBMS=O10 Oracle10g (10.1.0)
Database=
UserId=
DatabasePassword=
LogId=mdmsidev
LogPassword=mdmspwd1!
ServerName=117.105.92.**
DBParm="Database='GMFCPD08'"
Lock=
Prompt=FALSE
AutoCommit=FALSE


这是pb连接的ini代码。。
确定的是,数据库肯定能连上,因为我用Toad试练了一下,成功了。
那面的数据库可能是11,应该没关系吧。我这用的是pb10.5所以,选项连接数据库上,没有11版本的oracle。只有10的。可是连接失败,报的是12154.在网上查,发现时无法解析指定的连接标识符。
不知道问题是处在什么地方了。

看它的一个文件代码有这些,不知道是什么能帮忙说明一下代码吗。
global type gf_oracheck from function_object
end type

forward prototypes
global subroutine gf_oracheck ()
end prototypes

global subroutine gf_oracheck ();boolean lb_filecheck, lb_check
integer li_FileNum, li_count, li_pos, li_FileNum_copy
String ls_line

//Oracle Client TNSNAMES.ORA 파일 유무 체크
lb_filecheck = FileExists(GS_TNSNAME)
if Not lb_filecheck then return

//File Open(Read용과 Write용 두개를 Open)
li_FileNum = FileOpen(GS_TNSNAME, LineMode!)
li_FileNum_copy = FileOpen(GS_TNSNAME_COPY, LINEMODE!, WRITE!, LOCKREADWRITE!, REPLACE!)

li_count = 0

lb_check = false
do while(true)
if FileRead(li_FileNum , ls_line) = -100 then
exit
end if
if trim(UPPER(mid(ls_line, 1, 9))) = "GMFCPD08=" or trim(UPPER(mid(ls_line, 1, 10))) = "GMFCPD08 =" then //TNS검색
li_count = 1
else
if li_count > 0 and li_count < 7 then //TNS 6줄까지만 검색하여 IP를 변경한다.(다른 TNS를 수정할 수 있으므로)
li_count++
li_pos = Pos(ls_line, GS_OLD_IP_ADDR)
if li_pos > 0 then
ls_line = Replace(ls_line, li_pos, len(GS_OLD_IP_ADDR), GS_IP_ADDR)
lb_check = true
end if
end if
end if
FileWrite(li_FileNum_copy, ls_line)
loop
FileClose(li_FileNum)
FileClose(li_FileNum_copy)

//TNSNAME에 GMFCPD08이 없을 경우 마지막줄에 추가한다.
if li_count = 0 then
li_FileNum = FileOpen(GS_TNSNAME, LineMode!, Write!, LockReadWrite!, Append!)
// FileWrite(li_FileNum, "~r~nGMFCPD08 =~r~n" &
// + " (DESCRIPTION =~r~n" &
// + " (ADDRESS_LIST =~r~n" &
// + " (ADDRESS = (PROTOCOL = TCP)(HOST = measuring.gmdat.com)(PORT = 1521))~r~n" &
// + " )~r~n" &
// + " (CONNECT_DATA =~r~n" &
// + " (SID = GMFCPD08)~r~n" &
// + " (SERVER = DEDICATED)~r~n" &
// + " )~r~n" &
// + " )")
FileWrite(li_FileNum, "~r~nGMFCPD08 =~r~n" &
+ " (DESCRIPTION =~r~n" &
+ " (ADDRESS_LIST =~r~n" &
+ " (ADDRESS = (PROTOCOL = TCP)(HOST = 117.105.159.12)(PORT = 1525))~r~n" &
+ " )~r~n" &
+ " (CONNECT_DATA =~r~n" &
+ " (SID = GMFCPD08)~r~n" &
+ " (SERVER = DEDICATED)~r~n" &
+ " )~r~n" &
+ " )")
FileClose(li_FileNum)
else
if lb_check then
FileDelete(GS_TNSNAME) //기존 Tnsnames.ora파일 삭제
FileCopy(GS_TNSNAME_COPY, GS_TNSNAME, True) //복사본의 이름을 tnsnames.ora로 변경
end if
end if
FileDelete(GS_TNSNAME_COPY) //복사본을 삭제한다.


end subroutine

...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sk4ksdksk 2010-09-03
  • 打赏
  • 举报
回复
这段时间感谢gui41021帮助
showilove 2010-09-03
  • 打赏
  • 举报
回复
看到棒子文直接瞎啦
gui41021 2010-09-03
  • 打赏
  • 举报
回复
117.105.159.12是服务器IP么?

ServerName=117.105.92.12 这样改了试试

你发这个是一个全局函数 感觉像是指定服务器地址用的 不是连库语句

把APPLICATION的OPEN()事件的代码贴出来

xuam 2010-09-03
  • 打赏
  • 举报
回复
不是配置的问题,查一下服务器名正不正确!

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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