你可以先在控制面板注册数据源,然后就用 "Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;" 连接数据库就是了。
数据库的不同差别不是很大。你到CSDN的文档中心找,有介绍的很详细的。
用Oracle自己带的访问引擎吧,简单易用。
Oracle · ODBC o 新版本: "Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;" o 旧版本: "Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;" · OLE DB, OleDbConnection (.NET) o 标准连接(Standard Security): "Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd;" 这是Microsoft的格式, 下面是Oracle的格式(提供者不同) "Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;" 注意:"Data Source=" 必须根据相应的命名方法设置为Net8名称。例如对于局部命名,它是tnsnames.ora中的别名,对于Oracle命名,它是Net8网络服务名 o 信任连接(Trusted Connection): "Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;" 或者设置user ID为 "/" "Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=/;Password=;" · OracleConnection (.NET) o 标准连接: "Data Source=Oracle8i;Integrated Security=yes"; 这只对Oracle 8i release 3或更高版本有效 o OracleConnection声明: C#: using System.Data.OracleClient; OracleConnection OracleConn = new OracleConnection(); OracleConn.ConnectionString = "my connectionstring"; OracleConn.Open(); VB.NET: Imports System.Data.OracleClient Dim OracleConn As OracleConnection = New OracleConnection() OracleConn.ConnectionString = "my connectionstring" OracleConn.Open() · Data Shape o MS Data Shape: "Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;user id=username;password=mypw"
可以使用OCI(Oracle Common Interface)进行连接。网上有用Vc6+OCI连数据库的源码,找一下吧!
局域网上服务器的ip在那里添加呢? 我现在是在mpconnectionptr->Open里使用串“Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd”,是不是在这里的server使用ip+数据源来定位?还有就是如果这样连接之后是否还需要注册数据源?我没有在控制面板里注册,我是直接写注册表注册数据源的,不知是不是在这里除了问题。急阿!!
用 ADO比较好 _ConnectionPtr, _RecordsetPtr连接字串为provider=msdaora; data source="数据库"; user id="用户名"; password="密码";
新建xx.txt文件,改称xx.udl双击,打开oledb连接对话框驱动选择,Ole Provider for ole db 下一步输入数据源 MyLoopback.world//这个名称在tnsname.ora里面有定义,注意服务中要打开oraxxxlistener 用户名 密码 system/manager 勾选保存密码 测试连接,如果连接成功,连接串会自动保存到udl文件中 不需要再在ODBC中注册了
str.Format("Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;" )
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=5949
"Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;" 连接数据库就是了。
· ODBC
o 新版本:
"Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;"
o 旧版本:
"Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;"
· OLE DB, OleDbConnection (.NET)
o 标准连接(Standard Security):
"Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd;"
这是Microsoft的格式, 下面是Oracle的格式(提供者不同)
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;"
注意:"Data Source=" 必须根据相应的命名方法设置为Net8名称。例如对于局部命名,它是tnsnames.ora中的别名,对于Oracle命名,它是Net8网络服务名
o 信任连接(Trusted Connection):
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;"
或者设置user ID为 "/"
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=/;Password=;"
· OracleConnection (.NET)
o 标准连接:
"Data Source=Oracle8i;Integrated Security=yes";
这只对Oracle 8i release 3或更高版本有效
o OracleConnection声明:
C#:
using System.Data.OracleClient;
OracleConnection OracleConn = new OracleConnection();
OracleConn.ConnectionString = "my connectionstring";
OracleConn.Open(); VB.NET:
Imports System.Data.OracleClient
Dim OracleConn As OracleConnection = New OracleConnection()
OracleConn.ConnectionString = "my connectionstring"
OracleConn.Open()
· Data Shape
o MS Data Shape:
"Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;user id=username;password=mypw"
我现在是在mpconnectionptr->Open里使用串“Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd”,是不是在这里的server使用ip+数据源来定位?还有就是如果这样连接之后是否还需要注册数据源?我没有在控制面板里注册,我是直接写注册表注册数据源的,不知是不是在这里除了问题。急阿!!
_ConnectionPtr, _RecordsetPtr连接字串为provider=msdaora; data source="数据库"; user id="用户名"; password="密码";
一种是直接在ODBC数据源中,添加Oracle,连接字符串和一般odbc的串一样一种是在oracle的配置文件tnsname.ora中添加,这样就和在本地的oracle一样用
连接字符串,通过*.udl文件生成,复制到程序中使用两种应该都需要装oracle的客户端不知道有没有第三种方法
下一步输入数据源
MyLoopback.world//这个名称在tnsname.ora里面有定义,注意服务中要打开oraxxxlistener
用户名
密码
system/manager
勾选保存密码
测试连接,如果连接成功,连接串会自动保存到udl文件中
不需要再在ODBC中注册了
一是先写注册表,
BOOL CYieldData::RegDatabase(CString strSourceName, CString strSourceDb, CString strDescription)
{
HKEY hKey;
DWORD lDisp; CString strSubKey = "SOFTWARE\\ODBC\\ODBC.INI\\"+strSourceName;
RegCreateKeyEx(HKEY_CURRENT_USER,
strSubKey,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hKey,
&lDisp); char win[MAX_PATH];
GetWindowsDirectory(win, MAX_PATH);
CString str;
str.Format("%s%s",
win,
"\\System32\\odbcjt32.dll");
CString value1(str);
RegSetValueEx(hKey,
"Driver",
0,
REG_SZ,
(const unsigned char*)((LPCTSTR)value1),
strlen((LPCTSTR)value1)+1);
。此处省略x行接下来第二就是建立ado连接了,
try
{
m_pCon.CreateInstance("ADODB.Connection");
m_pCon->Open((_bstr_t)CConfig::strconfig,"","",adModeUnknown);///连接数据库
hr = m_pRs.CreateInstance("ADODB.Recordset");
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format("连接数据库失败1111\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);
}
在CConfig::strconfig串里我用的是Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword我没有在ODBC里注册数据源,而是写的注册表,但我觉得似乎这一步也不是必要的,因为在mp_Conn->Open的连接串里似乎已将写明了Driver,总的来说我还有两点不清楚,1.ado连接时mp_Conn的连接串的作用是否包括了注册数据源,也就是说不需要写注册表了?2. hahu(地痞 -- 勿近) 你所写的配置udl文件我试了一下连接成功了,但具体应该怎么使用?你所说的复制到程序中使用是什么意思?