ODBC、OLE连接Oracle数据库问题

lygui 2006-04-06 03:29:13
本人才接触Oracle。
写个简单的程序连接数据库。
第一个,用ODBC,很简单,
CDatabase m_Database;
m_Database.Open(NULL);
然后弹出个框,选择数据源。

之前我看了数据源的概念:
odbc数据源的类型
  windows中odbc数据源的类型有三种:用户数据源、系统数据源、文件数据源。用户数据源(user dsn)只有创建它的用户才有权使用,系统数据源(system dsn)可以让所有在本机登录的用户使用,二者的数据库连接信息都存储在注册表中,通常称为机器数据源(machine dsn)。文件数据源(file dsn)是把与数据库的连接信息存储在一个具有dsn扩展名的文件中。文件数据源可以在安装同样驱动程序的所有用户之间共享。


问题1:数据源和数据库有何不同?假设我创建了一个叫做DataBase的数据库,如何连接?
问题2:新建一个数据源提示需要服务器、帐户和密码。服务器我用了127.0.0.1,帐户和密码我填了自己设定的sys的密码,却提示连接不成功。我查找了这些信息,却不大了解:
1. Oracle安裝完成后的初始口令?

 internal/oracle

  sys/change_on_install

  system/manager

  scott/tiger

  sysman/oem_temp

这个是什么初始口令?

第二个,使用OLE连接数据库。大概代码如下:
CConnect m_connect;
CString m_dbname;
CString m_username;
CString m_userpsw;

if(m_connect.DoModal()!=IDOK)
return;
m_connect.GetData(m_dbname,m_username,m_userpsw);

odb.Open(m_dbname,m_username,m_userpsw);
if(!odb.IsOpen())
{
const char *m_errortext=odb.GetErrorText();
this->MessageBox(m_errortext,"错误",MB_OK|MB_ICONERROR);
return ;
}
CConnect的定义如下:
class CConnect : public CDialog
实际上就是获取数据库、用户名和密码的。

问题一:为什么这个连接不需要输入服务器?只要数据库、用户名和密码就能找到?难道默认是连接127.0.0.1?

问题二:我输入数据库、用户名和密码(用户名是sys,密码是自己的。)后,出现如下错误提示:Specified class registered in registry,这是怎么回事?

我接触Oracle才两天,所以很菜,请达人解答,谢谢。

...全文
262 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lygui 2006-04-06
  • 打赏
  • 举报
回复
楼上的,我这个文件的配置没有问题啊,
ROOT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ROOT)
)
)
我新建的数据库名字就是ROOT
很正常,哪位大虾帮忙下?不胜感激。
garybo 2006-04-06
  • 打赏
  • 举报
回复
不好意思,写错了一点
上面的HOST.SUZSOFT.COM 全部是标识,可以随便填,最好加上域名
garybo 2006-04-06
  • 打赏
  • 举报
回复
Oracle是需要名字映射的
大概是像下面这种,第一行的host是配的名字,连接时用来标识唯一数据源的,hostname是Oracle server的名字或IP,下面的oracle_sid是oracle server的SID
windows下面这段配置出现在 oracle\ora81\network\ADMIN\tnsnames.ora, 添加一个就可以了
HOST.SUZSOFT.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oracle_sid)
)
)
《C#程序开发范例宝典》(09章)的源码 第9章 数据库技术 355   9.1 连接Access数据库 356   实例254 连接Access数据库 356   实例255 连接加密的Access数据库 357   实例256 自动识别Access 2000数据库路径 358   实例257 连接网络上共享的Access 2000数据库 360   9.2 连接SQL Server数据库 361   实例258 使用ODBC DSN连接SQL Server数据库 361   实例259 使用ODBC非DSN连接SQL Server数据库 364   实例260 使用OLE DB连接SQL Server数据库 365   实例261 建立SQL Server数据库连接 366   9.3 连接其他数据库 367   实例262 连接Excel 367   实例263 连接Oracle数据库 368   9.4 数据库结构的读取与修改 369   实例264 读取SQL Server数据库结构 369   实例265 修改SQL Server数据库结构 372   9.5 数据录入 374   实例266 利用数据绑定控件录入数据 374   实例267 使用ADO NET对象录入数据 376   实例268 利用SQL语句录入数据 379   实例269 利用存储过程录入数据 380   9.6 图片存取技术 383   实例270 使用存取文件名的方法存取图片 383   实例271 使用ADO NET对象向SQL Server数据库存入图片 384   9.7 数据修改 387   实例272 利用数据绑定控件修改数据 387   实例273 利用数据对象修改数据 390   实例274 利用SQL语句修改数据 391   实例275 利用存储过程修改数据 393   9.8 数据保存前判断 395   实例276 判断输入数据是否符合要求 395   实例277 通过存储过程实现自动编号 398   9.9 数据删除 401   实例278 删除表格中指定的记录 401   实例279 利用SQL语句删除数据 402   9.10 数据记录 403   实例280 分页显示信息 403   实例281 移动记录 404   9.11 数据维护 406   实例282 在C#中分离SQL Server数据库 406   实例283 在C#中附加SQL Server数据库 407   实例284 在C#中附加单文件SQL Server数据库 409   9.12 数据备份恢复 410   实例285 备份SQL Server数据库 410   实例286 还原SQL Server数据库 413   9.13 管理系统开发相关 415   实例287 开启SQL Server数据库 415   实例288 断开SQL Server数据库与其他应用程序的连接 417   实例289 带图像列表的系统登录程序 419   实例290 利用SQL语句执行外围命令 420   实例291 系统初始化 421

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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