用ODBC访问oracle,首先,我在ODBC管理器中添加数据源,在别名中填:rwh,在service中填:ruanwenhua(这是数据库服务器名),用户名:produce;
在程序中:打开数据库m_db.Open(NULL,FALSE,FALSE,"DSN=rwh;UID=produce;PWD=produce");即可对数据库进行揷、删、改、读等操作,操作都很正常,可是我有一个疑问:
我的数据库服务器名为ruanwenhua,服务名为orcl,可是在上述的配置和连接中并没有体现服务名,那么,它是怎么工作的呢。是不是因为我的服务器上只装了一个数据库,所以它会自己去找orcl?那么,如果安装了不只一个的数据库该如何处理。
我看如果在oracle的net easy config中配置是要配服务名的。
在程序中:打开数据库m_db.Open(NULL,FALSE,FALSE,"DSN=rwh;UID=produce;PWD=produce");即可对数据库进行揷、删、改、读等操作,操作都很正常,可是我有一个疑问:
我的数据库服务器名为ruanwenhua,服务名为orcl,可是在上述的配置和连接中并没有体现服务名,那么,它是怎么工作的呢。是不是因为我的服务器上只装了一个数据库,所以它会自己去找orcl?那么,如果安装了不只一个的数据库该如何处理。
我看如果在oracle的net easy config中配置是要配服务名的。
解决方案 »
- inline hook SetForegroundWindow()导致程序崩溃
- 驱动层字符串区间复制或获取相对路径函数
- 求助帖
- 关于文本框问题!!高手们进啊!!
- 请教函数SelectObject,关于双缓冲绘图
- !!!!!!!!!!急急急急急@@@@@@截屏后的图怎么存成JPEG图片到硬盘上?
- 请问如何在创建窗口时让窗口呈现对话框的风格?
- 请问如何把一个CBitmap对象保存为bmp文件?
- CAsyncSocket怎么建阻塞方式的Socket?
- cef库的编译问题
- 有没有办法打开别的程序正在使用的文件,比如说RealPlayer正在播放的.ram文件?
- 哪里可以下载电子工业出版社出版的<<Visual C++ 6宝典>>?
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 200.200.200.200)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcl)
)
)
上面是别名中的一段字符串,在Admin目录上,你也可以直接在Admin/tnsnames.ora直接改它,net easy config配置也已是改的
这一个文件而已,它里面指到一个ip,对应一台电脑,端口1521,
实例如orcl,也就指定到了一个数据库,oracle不像MS sqlserver
它是分模式管理,不是分数据库管理的。
我现在是这样理解的:在配odbc时,输入了db server的机器名,这时客户机的oracle客户端会将服务器的default database配给这个odbc数据源使用。如果db server装了不只一个数据库,这时,要通过net easy config设置一个别名,除指定机器名外还要指定数据库的SID,这样,在odbc配置时通过这个配好的别名,才能访问到这个非缺省的数据库。
这么说来,在odbc配置时,如要访问的是db server上的缺省数据库时,在Service栏里直接输服务器名就可以了,而要访问非缺省数据库时,则要输别名。
不知道我这样的理解和做法对不对,请指教。
通过odbc,用户可以不要知道数据库的更多信息。
odbc提供了这样的途径,只要你知道数据源名和用户以及密码
通过odbc就可以使用数据如果要连接另一个数据库,只要在odbc添加不同于上一个数据源名的DSN就可以了