本人才接触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才两天,所以很菜,请达人解答,谢谢。
写个简单的程序连接数据库。
第一个,用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才两天,所以很菜,请达人解答,谢谢。
解决方案 »
- 求助oracle EXCEL文件导入例子,以及把数据从临时表导入到目标表的存储过程(表结构相同,导入时进行校验)
- 存储过程中访问同一数据库不同表空间,为什么不能用用户名点表空间
- 怎么将符号单引号插入ORACLE数据库的表中
- insert表 速度非常之慢
- 各位老大 树型的sql语句怎么写啊
- oracle10g点击安装后没有反应,请问怎么解决?
- 小弟用的是Oracle客户端。在SQL PLUS中输入的用户名称、主机字符串和口令都没问题,为什么一点“确定”就“未响应”啊?
- 如何优化该SQL语句???
- 怎么快照复制一个数据库???????????????????????????????????????????????????????????????????????????????????????
- 欢迎大家讨论:如何发挥Oracle的优势
- 问一个关于查询语句的问题
- 为何用VB程序访问ORACLE得到的结果与 PL/SQL DEVELOPER中的结果不一致?
大概是像下面这种,第一行的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)
)
)
上面的HOST.SUZSOFT.COM 全部是标识,可以随便填,最好加上域名
ROOT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ROOT)
)
)
我新建的数据库名字就是ROOT
很正常,哪位大虾帮忙下?不胜感激。