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才两天,所以很菜,请达人解答,谢谢。