社区
Sybase
帖子详情
关于Oracle的Easy Config问题,UP有分呀,分不够再加,多少都有!!!也欢迎大家进来参观,共同学习。
hujun614
2001-12-13 10:37:05
就是如何在程序中自动配置Oracle的Easy Config.代码示例能行者,200分,感谢大家的支持。
...全文
101
10
打赏
收藏
关于Oracle的Easy Config问题,UP有分呀,分不够再加,多少都有!!!也欢迎大家进来参观,共同学习。
就是如何在程序中自动配置Oracle的Easy Config.代码示例能行者,200分,感谢大家的支持。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
maptrix
2001-12-13
打赏
举报
回复
void CreateLocalSvrName(char *FileName,char *LocalSvrName,char *Server,char *OraServiceName)
{
FILE *fp;
if((fp=fopen(FileName,"r+"))==NULL)
return;
fseek(fp,0,SEEK_END);
fputs(LocalSvrName,fp);
fputs(" =\r\n",fp);
fputs(" (DESCRIPTION =\r\n",fp);
fputs(" (ADDRESS_LIST =\r\n",fp);
fputs(" (ADDRESS = (PROTOCOL = TCP)(HOST = ",fp);
fputs(Server,fp);
fputs(")(PORT = 1521))\r\n",fp);
fputs(" )\r\n",fp);
fputs(" (CONNECT_DATA =\r\n",fp);
fputs(" (SERVICE_NAME = ",fp);
fputs(OraServiceName,fp);
fputs(")\r\n",fp);
fputs(" )\r\n",fp);
fputs(" )\r\n\r\n",fp);
fclose(fp);
}
程序中执行:
...
CreateLocalSvrName("e:\\Oracle\\Ora81\\network\\admin\\tnsnames.ora",
"MYLOCALNAME","192.168.128.81","MYORACLE.COM");
hujun614
2001-12-13
打赏
举报
回复
SERVICE_NAME 通常都是ORCL对吧。
本地服务名本不重要,自已知道就可以用了啥。
200分求教一段代码,包括根据内存变量名称确定oracle下的tnsnames.ora的路径,用不重复的名称命名新建的本地服务名,并返回本地服务名。可以帮助我吗?
maptrix
2001-12-13
打赏
举报
回复
还需要给出两个必要条件,一是你配置的本地服务名的名称,比如叫MYLOCALNAME,还有就是Oracle的服务名称,比如叫MYORACLE.COM(我是的是Oracle8i),就可以用普通的文件读写方法,形成下面的文件
# TNSNAMES.ORA Network Configuration File: E:\Oracle\Ora81\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
MYLOCALNAME =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.128.81)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = MYORACLE.COM)
)
)
因为在用 Easy config的时候也要用户输入连接串的名称(即本地服务名),服务器的名称或者其IP,再就是Oracle的服务名。根据这三个输入的条件,形成一个本地连接。
说明,上面例子中的MYLOCALNAME就是本地服务名,HOST = 192.168.128.81,在HOST = 后面写上服务器的名称或者IP,SERVICE_NAME = 后面写上Oracle的服务名。
hujun614
2001-12-13
打赏
举报
回复
To:maptrix(),我也这样想过,但有些细节还不是很清楚,所以想请你给出详细代码,好吗。
多少分都给,就比如服务器地址是192.168.128.81,其它的都缺省,你看该怎样配比较好。代码怎样写
maptrix
2001-12-13
打赏
举报
回复
在你的Oracle目录下,读写下面的文件,就可以用程序配置一个或者多个连接
?:\Oracle\Ora81\network\ADMIN\tnsnames.ora
内容如下
# TNSNAMES.ORA Network Configuration File: E:\Oracle\Ora81\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
MYLINK =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mapsvr)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = abcd.com)
)
)
你用程序写好其中的关键配置部分,然后就可以使用了。
三杯倒
2001-12-13
打赏
举报
回复
1111
maptrix
2001-12-13
打赏
举报
回复
BOOL GetTNSNameFile(char *FileName,DWORD nSize)
{
LPTSTR AppRegKey=_T("SOFTWARE\\ORACLE\\HOME0");
HKEY hKey = NULL;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, AppRegKey, 0, KEY_READ, &hKey)!=ERROR_SUCCESS)
return FALSE;
if(!hKey)
return FALSE;
DWORD dwType = NULL;
if(RegQueryValueEx(hKey, (LPTSTR)"ORACLE_HOME", NULL, &dwType,
(LPBYTE)FileName, &nSize)!=ERROR_SUCCESS)
{
RegCloseKey(hKey);
return FALSE;
}
RegCloseKey(hKey);
strcat(FileName,"\\network\\admin\\tnsnames.ora");
return TRUE;
}
程序中执行:
...
char FileName[128];
if(GetTNSNameFile(FileName,sizeof(FileName)))
CreateLocalSvrName(FileName,
"MYLOCALNAME","192.168.128.81","MYORACLE.COM");
maptrix
2001-12-13
打赏
举报
回复
BOOL GetTNSNameFile(char *FileName,DWORD nSize)
{
LPTSTR AppRegKey=_T("SOFTWARE\\ORACLE\\HOME0");
HKEY hKey = NULL;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, AppRegKey, 0, KEY_READ, &hKey)!=ERROR_SUCCESS)
return FALSE;
if(!hKey)
return FALSE;
DWORD dwType = NULL;
if(RegQueryValueEx(hKey, (LPTSTR)"ORACLE_HOME", NULL, &dwType,
(LPBYTE)FileName, &nSize)!=ERROR_SUCCESS)
{
RegCloseKey(hKey);
return FALSE;
}
RegCloseKey(hKey);
return TRUE;
}
程序中执行:
...
char FileName[128];
if(GetTNSNameFile(FileName,sizeof(FileName)))
CreateLocalSvrName(FileName,
"MYLOCALNAME","192.168.128.81","MYORACLE.COM");
maptrix
2001-12-13
打赏
举报
回复
tnsnames.ora的路径可以根据注册表中的
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
中的ORACLE_HOME来获得它一般Oracle的主目录,比如E:\Oracle\Ora81 有了它,加上\network\admin\tnsnames.ora,就可以找到文件的路径了。
hujun614
2001-12-13
打赏
举报
回复
谢谢你了。: maptrix();还要分的话,我只有另开贴子给你了。
Oracle
入门课程
12、
Oracle
集合运算 13、
Oracle
视图 14、
Oracle
序列 15、
Oracle
索引 16、
Oracle
基本语法 17、
Oracle
数据类型 18、
Oracle
变量 19、
Oracle
运算符 20、
Oracle
条件控制 21、
Oracle
循环 22、
Oracle
循环控制 23、
Oracle
...
Oracle
技术点详解
该课程适合于
Oracle
入门或有基础的同学,课程以讲解知识点为主,将
Oracle
面试过程中常见的知识点进行了详细的讲解,在PL/SQL编程、游标、以及存储过程等方面讲解较为详细,
欢迎
各位同学在线
学习
! 该课程详细总结了...
Oracle
19c 数据库基础入门视频教程
这门视频教学课程不是针对DBA的培训课程,从事DBA工作的人在软件行业人员的占比不高,就业面不太广,有做DBA志向的同学可以到专门的培训机构
学习
Oracle
的OCA、OCP、OCM课程,他们有针对应试的培训内容,他们也可以...
Oracle
数据库极速上手教程实践
可以使用
Oracle
进行SQL编程(复杂查询、更新),可以
学习
Oracle
常用对象的使用,可以进行数据库的
分
析与设计。 课程简介:
Oracle
基础与提升视频课程 本课程主要讲解如下内容:
Oracle
体系结构
Oracle
基础管理 SQL ...
oracle
数据库技术教程
Oracle
Database,又名
Oracle
RDBMS,或简称
Oracle
。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说
Oracle
数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性...
Sybase
2,596
社区成员
25,614
社区内容
发帖
与我相关
我的任务
Sybase
Sybase相关技术讨论区
复制链接
扫一扫
分享
社区描述
Sybase相关技术讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章