求助:登录时数据库选择!

jackzhang168 2003-11-07 11:05:22
我想在登陆时用下拉选择要连接的数据库(有多个数据库),请问怎样获得数据库名(放入下拉窗口)?数据库是Oracle
...全文
48 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhua2001 2003-11-10
  • 打赏
  • 举报
回复
回复人: jackzhang168(小不懂)

说了你可以提取
'='+Char(13) + Char(10)+'(DESCRIPTION ='以前的字符串
你每提取一次,必须在原字符串中删除提取的字符串(数据库连接名)及'='+Char(13) + Char(10)+'(DESCRIPTION =',这样你第二次的时候就是提取的下个数据库连接名了!!
具体操作你自己仔细摸索一下!
jackzhang168 2003-11-09
  • 打赏
  • 举报
回复
谢谢各位!
jdsnhan(柳荫凉) :数据库都是Oracle;我所指的是不同的数据库名


我现在是这样的:
我会默认登陆一个数据库,但用户可以要连接的数据库(通过下拉选择),就象PL/SQL DEVELOPER的登陆界面一样
ropriest 2003-11-08
  • 打赏
  • 举报
回复
其实因为连接oracle的数据库是一定会知道数据库的数据库名
楼主可以考虑在系统初始化时,将数据库名输入并保存到配置文件中,这样就可以在login窗口弹出之前让用户选择所要连接的数据库。
我想连接同一个数据库中的不同数据库,如果你的程序都能正常运行的话,说明两个数据库的表结构都是一样的,对于oracle而言,可能就是同一个数据库中不同的表空间而已;那么只要建好连接不同表空间的服务,连接所用的ODBC是用一个,要连接不同的表空间,只要让用户选择设定ODBC的服务名即可,为何一定要知道数据库名呢?

可以参考一下我的做法:
为了可以在一段时间内保证对三个用户的系统进行测试,我们公司有三套测试平台。数据库在三台不同的机器上,都是sybase的,结构都一样,我建了三个不同的服务名分别用于连接三个数据库,在应用程序登陆时,可以选择odbc所用的服务名,然后修改注册表中的对应值即可,
这样我就可以随时更改所要连接的数据库了。

另外:ODBC的连接参数都存放在注册表中,只要在注册表中查询一下ODBC.INI就能找到,一共有两个,一个是存放系统dsn的,一个是存放用户dsn的。

mittee 2003-11-07
  • 打赏
  • 举报
回复
oracle 是通过odbc 连接的

SQLCA.DBParm = "ConnectString='DSN=YOU_DB_CLIENT'"
你要通过修改 注册表来 修改 DSN 里面的参数才行
answer9=RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\YOU_DB_CLIENT","EngineName",RegString!,"YOUR_DB_SERVER")
可能是这个键值吧,你到注册表里对一下就清楚了
hhua2001 2003-11-07
  • 打赏
  • 举报
回复
以ORACLE817为例:TNSNAMES.ORA文件在ORACLE\NETWORK\ADMIN下.
通过FILEOPEN,FILEREAD把连串读到字符串中去。
其中连接串格式为:
SB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.2.131)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
你只要用字符串操作函数取
'='+Char(13) + Char(10)+'(DESCRIPTION ='以前的字符串即可。
具体的用到的函数可以去看帮助以及《PB6参考手册》中的字符串操作函数!
jackzhang168 2003-11-07
  • 打赏
  • 举报
回复
hhua2001(秋枫) :
可不可以具体点
hhua2001 2003-11-07
  • 打赏
  • 举报
回复
用文件操作函数读ORACLE目录里的TNSNAMES.ORA文件即可!!
tuw 2003-11-07
  • 打赏
  • 举报
回复
不同类型的数据库应该不可以吧?
jdsnhan 2003-11-07
  • 打赏
  • 举报
回复
问题不是很明确。
楼主所说的不同数据库是不是指不同类型的数据库,如oracle,sql......。
还是一类数据库中不同的。
qqjj7758 2003-11-07
  • 打赏
  • 举报
回复
yeah
mittee 2003-11-07
  • 打赏
  • 举报
回复
我是说,你修改数据名字后是否要修改dsn里的资料。
jackzhang168 2003-11-07
  • 打赏
  • 举报
回复
mittee(最后一条大白鲨) :
我不知道你是否明白我的意思:我是想把数据库名做为下拉选择

hhua2001(秋枫) :
数据库有多个啊,不好截取啊

1,075

社区成员

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

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