当前位置: 代码迷 >> PB >> 怎樣運行powerbuilder自帶的PFC示例解决办法
  详细解决方案

怎樣運行powerbuilder自帶的PFC示例解决办法

热度:649   发布时间:2016-04-29 10:33:38.0
怎樣運行powerbuilder自帶的PFC示例
如題,還想請教一下,把鏈接的參數寫到註冊表中和用ini 中有什麽不一樣,寫註冊表的方式,從哪裡得到這些參數然後寫入,如果是用我們的程序來寫的話那麼,那麼知道參數爲什麽不直接用,還要自己打開services.msc寫註冊表呢,不知道怎麼個原理?請大家指教,我不是想知道pb寫註冊表的函數。

------解决方案--------------------
注册表和ini功能都是一样的,就是把连接参数等信息写在外面,程序都有个窗口能设置这些参数!
运行后可以读取了!
这样做就是为了灵活使用,
数据库的参数不一定固定的!服务器,数据库名,用户密码等
不能因为改一次密码什么的就得重新修改编译一程序!

程序员自己定义的,当然知道这些的意思!

------解决方案--------------------
在n_exampleappmanager的pfc_open事件里面,有一段连接的代码是这样的:

ls_regkey = of_GetUserKey ( ) + "\PFC Examples DB"
if RegistryGet ( ls_regkey, "DBMS", ls_temp ) = -1 Then
RegistrySet ( ls_regkey, "DBMS", "odb" )
RegistrySet ( ls_regkey, "DBParm", "ConnectString='DSN=EAS Demo DB V4;UID=dba;PWD=sql'" )
end if

// Initialize SQLCA
SQLCA.of_Init ( ls_regkey )


//Connect to application database.
If SQLCA.of_connect ( ) <> 0 Then
MessageBox ( "Cannot Connect to Database", SQLCA.sqlerrtext, stopsign! )
Halt Close
Return
End If





//-----------------------------------------------//我把它改成这样:
//-----------------------------------------------
ls_regkey = of_GetUserKey ( ) + "\PFC Examples DB"
if RegistryGet ( ls_regkey, "DBMS", ls_temp ) = -1 Then
RegistrySet ( ls_regkey, "DBMS", "odb" )
RegistrySet ( ls_regkey, "DBParm", "ConnectString='DSN=EAS Demo DB V4;UID=dba;PWD=sql'" )
end if

// Initialize SQLCA
SQLCA.of_Init ( ls_regkey )









//这是我新加进来的
//不管它上面连接了哪里,都被我这个新的连接取代。

// Profile EAS Demo DB V9
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=EAS Demo DB V9;UID=dba;PWD=sql'"












//Connect to application database.
If SQLCA.of_connect ( ) <> 0 Then
MessageBox ( "Cannot Connect to Database", SQLCA.sqlerrtext, stopsign! )
Halt Close
Return
End If
  相关解决方案