恭请斑竹lihonggen0:数据库连接问题请教!

quengzi 2003-05-16 07:18:39
在项目中用到vb开发客户端程序,远程连接数据库,我对vb和oracle数据库都不熟悉,请多多指教,条件如下:
客户端不安装oracle、不进行任何配置,只要在程序中指定远程服务名、数据库服务器ip、用户名、密码等即可进行连接,是否可以做到?(不用OCI)
如果安装了oracle但不进行net设置,是否可以实现远程连接?
关于使用AdsDsoObject如何连接oracle数据库,连接字串如何写?服务器是否需要特殊配置?如何配置呢?
adodc和adodb在连接oracle数据库得时候,连接字串是否有不同之处?
...全文
66 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
quengzi 2003-06-04
  • 打赏
  • 举报
回复
本身不是连接字串的问题,在oracle提供的驱动(或者微软的)连接方式中,没有对oracle远程服务器监听服务的指定。在sqlserver中,可以直接指定远程的ip地址和端口就可以连接。但是,在oracle中,必须配置本地的文件才可能连接远程数据库。
不过OCI(oracle call interface)提供的接口据说可以,但我还没有真正测试过。
有机会试一试了:)
quengzi 2003-06-04
  • 打赏
  • 举报
回复
问题还是存在,所以本不想结贴,但是看到我的信誉分。。。
感谢上面的各位提供了不少资料,在下又学了很多:)
lihonggen0 2003-05-19
  • 打赏
  • 举报
回复
参考微软的文章:

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q176/9/36.asp&NoWebContent=1
lihonggen0 2003-05-19
  • 打赏
  • 举报
回复

: quengzi(code)

控件可能没有,你可用odbc,或者自己建立ini文件存连接字符串中的项目


------------------------------------------------------------------
连接串:
Oracle
ODBC


New version:
"Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;"


Old version:
"Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;"


OLE DB, OleDbConnection (.NET)


Standard security:
"Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd;"
This one's from Microsoft, the following are from Oracle
Standard Security:
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;"


Trusted Connection:
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;"
quengzi 2003-05-19
  • 打赏
  • 举报
回复
问题进一步简化,在使用ado连接字串中,是否可以直接指出远程数据库的:
服务名-----?(test)
计算机名(或者ip)------?(192.168.0.1)
用户名-----可以
密码-----可以
而不用net8来配置tnsnames.ora文件,该文件内容如下:

sjdatatest=(description=(address_list=(address=(protocol=tcp)(host=192.168.0.1)(port=1521)))(connect_data=(service_name=test)))
我们在ado的连接字串中就是使用:

data source=sjdatatest

而不是直接使用

host = 192.168.0.1
port = 1521
service name = test

有没有类似的控件可以完成上面的使用方式?
KJ_Wang 2003-05-18
  • 打赏
  • 举报
回复
同意chenyu5188(来自东方的狼) 的看法
rainstormmaster 2003-05-18
  • 打赏
  • 举报
回复
参考:http://tech.sina.com.cn/soft/2000-09-20/751.html
quengzi 2003-05-18
  • 打赏
  • 举报
回复
呵呵,上面的美妹真好!
etocca 2003-05-18
  • 打赏
  • 举报
回复
up一下,请高手帮忙。
quengzi 2003-05-18
  • 打赏
  • 举报
回复
chenyu5188(来自东方的狼)提到的连接字串中使用:
cnstr = "Provider=OraOLEDB.Oracle;" & _
"Data Source=MyOracleDB;" & _ '你的数据源名,即数据库名
"User Id=myUsername;" & _'用户名,如果没有可以为空
"Password=myPassword"'用户密码,如果没有可以空
但是没有指定远程数据库服务器的ip地址或者服务器名称,在使用的时候还是使用本地的配置名称,即oracle 中net8配置中使用的名称tns
我想直接使用一个远程数据库的服务名来对数据库进行连接。

看到一些资料指出可以使用LDAP来连接数据库,但是不知道oracle是否支持?如何配置?
quengzi 2003-05-17
  • 打赏
  • 举报
回复
没有人光顾!凄惨!
查了一些资料,好像AdsDSOObject是针对SQL Server的连接方式,不知道oracle是否支持这种方式?在使用ms提供的连接sql server的连接方式中,连接字串可以直接写远程服务器ip,这样可以直接连接远程数据库,但是oracle中好像必须指定本地的服务名称,不能直接指定远程的ip(或者服务器名称)和服务名,有没有高手可以指点迷津?
一定高分送上!
CloneCenter 2003-05-17
  • 打赏
  • 举报
回复
不安装 Oracle 客户端可以吗?好象不行的吧!
chenyu5188 2003-05-17
  • 打赏
  • 举报
回复
可以的。
示例如下:
你首先要在VB菜单中:
“工程”-->“引用”-->“Microsoft AxtiveX Data Objects 2.X Library”
注:2.X为版本号,如果你机子上有高版本的就用高版本的,如:2.5或2.6的。
"工程"-->“部件”-->“MicroSoft DataGrid Control 6.0”
示例:
Private Sub Command1_click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cnstr As String
cnstr = "Provider=OraOLEDB.Oracle;" & _
"Data Source=MyOracleDB;" & _ '你的数据源名,即数据库名
"User Id=myUsername;" & _'用户名,如果没有可以为空
"Password=myPassword"'用户密码,如果没有可以空
cn.Open cnstr
rs.CursorLocation = adUseClient'使用客户端游标
rs.Open "select * from XXX表", cn, adOpenKeyset, adLockBatchOptimistic
set datagrid1.datasource=rs
datagrid1.refresh
End Sub

以上示例程序的作用是将数据库中的XXX表的记录显示在datagrid控件中。

还有微软的官方说明:
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q176/9/36.asp&NoWebContent=1


quengzi 2003-05-16
  • 打赏
  • 举报
回复
查了一些资料,但对AdsSSOObject介绍较少,另外还有LADP相关内容不懂,希望各位不啬指教!

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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