求连接访问ORCAL数据库的代码

lcllcl987 2004-11-18 02:57:46
求用来连接访问ORCAL数据库的代码.
不需要在控制面版中手动设置ODBC的
...全文
466 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿泰 2004-11-19
  • 打赏
  • 举报
回复
Provider=OraOLEDB.Oracle;是Oracle自己带的引擎
MSDAORA是微软引擎,使用起来与数据库版本和操作环境都些关系 :)
lcllcl987 2004-11-19
  • 打赏
  • 举报
回复
Conn = "Provider=OraOLEDB.Oracle;Persist Security Info=False;Data Source=dl;User ID=developer;Password=pwsc"
我换成Provider=OraOLEDB.Oracle就好了
不知道是什么原应啊
lcllcl987 2004-11-19
  • 打赏
  • 举报
回复
Provider=MSDAORA;
是不是这个有问题?
这是驱动程序吧?
怎么检查我的机器有没有这个驱动?
我急啊
aohan 2004-11-19
  • 打赏
  • 举报
回复
lcllcl987 2004-11-19
  • 打赏
  • 举报
回复
感谢啊
万分感谢
flyingZFX 2004-11-19
  • 打赏
  • 举报
回复
呵呵,,
还有,,Java我不懂,向你学习,有时间教教我。

flying_zfx@hotmail.com
flyingZFX 2004-11-19
  • 打赏
  • 举报
回复
除非你只想返回一条记录的结果

才可以使用

set rs=conn.Execute(sql) 的方式。
flyingZFX 2004-11-19
  • 打赏
  • 举报
回复
Dim rs As Adodb.Recordset

应该这样定义

还有就是,我劝你最好不要用Set rs = objConn.Execute(qsql) 这种格式

我绝对不推荐使用,因为这样,返回的结果集,Oracle缓冲区会进行优化的,

根据不同的服务器配置,,这个优化的数量会不同,

也就是说,你的qsql = "select * from jh_yjh" 这个查询本来应该返回100条记录

可是用这种方法的话,就有可能只返回10条,20条,30 条,等等不一定的记录集。

所有,我建议你使用 rs.open sql ,conn,adOpenForwardOnly, adLockReadOnly, adCmdText
的方式来返回结果集。






lcllcl987 2004-11-19
  • 打赏
  • 举报
回复
lcllcl987 2004-11-19
  • 打赏
  • 举报
回复
Dim objConn As New Adodb.Connection
Dim connString As String
Dim rs As Recordset

connString = "Provider=OraOLEDB.Oracle;Persist Security Info=False;Data Source=dl;User ID=developer;Password=pwsc"
objConn.Open connString
qsql = "select * from jh_yjh"
Set rs = objConn.Execute(qsql)

执行到最后一句rs = objConn.Execute(qsql),报错,说类型不匹配
我是做JAVA的,现在突然做一个VB小项目,许多东西不懂,望大哥指教
flyingZFX 2004-11-19
  • 打赏
  • 举报
回复
Public Function Conn_Oracle() As Boolean
On Error GoTo ERR1
Dim strConn As String
Dim i As Long

If Not Conn Is Nothing Then Set Conn = Nothing

Set Conn = New ADODB.Connection

strConn = ""
strConn = strConn & "Provider=OraOLEDB.Oracle;"
strConn = strConn & "Data Source=" & ServerName & ";"
strConn = strConn & "User ID=" & UserName & ";"
strConn = strConn & "PassWord=" & PassWord & ";"

'Conn.ConnectionString = "Provider=OraOLEDB.Oracle;data source=gyx_kjc-gyx;user id=flyingzfx;password=xiangxiang;"
'Conn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=FLYING;OSAuthent=1;"
strConnectionString = strConn

Conn.ConnectionString = strConn
Conn.CommandTimeout = 60
Conn.CursorLocation = adUseClient
Conn.Open

' For i = 0 To Conn.Properties.Count - 1
' Debug.Print Conn.Properties(i).Name, Conn.Properties(i).Type, Conn.Properties(i).Value, Conn.Properties(i).Attributes
' Next i

'Conn.Execute "begin system.createtablespace('ZZZ'); end;", , adCmdText

'Conn.Execute "CREATE TABLESPACE ""FLYINGZFX"" DATAFILE 'D:\flyingzfx.dbf' SIZE 5m autoextend on", , adCmdText

'Conn.Execute "alter database 'D:\flyingzfx.dbf' offline drop", , adCmdText

Debug.Print "Connection Success!!!" & " (Conn_Oracle)"
Conn_Oracle = True
Exit Function

ERR1:
Conn_Oracle = False


Debug.Print Err.Description
Err.Clear

If Not Conn Is Nothing Then
If Conn.State <> 0 Then Conn.Close
Set Conn = Nothing
End If

End Function
flyingZFX 2004-11-19
  • 打赏
  • 举报
回复
首先,你必须要安装Oracle的客户端程序,,这样,才会有Oracle的OLE驱动程序。

阿泰 2004-11-18
  • 打赏
  • 举报
回复
我用同样的代码测试成功,启动一下你的Oracle客户端看看是否Oracle的问题?
lcllcl987 2004-11-18
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Dim objConn As New Adodb.Connection
Dim connString As String
connString = "Provider=MSDAORA;Persist Security Info=False;Data Source=dl;User ID=developer;Password=pwsc"
objConn.Open connString
End Sub
运行到objConn.Open connString就报错:"发生一个ORACLE错误,但无法从ORACLE中恢复错误信息"
请教了
阿泰 2004-11-18
  • 打赏
  • 举报
回复

是 dl
就是这段最开始的那个
lcllcl987 2004-11-18
  • 打赏
  • 举报
回复
babyt(阿泰) :::

dl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.99)(PORT = 1521))
)
(CONNECT_DATA =
(SID = pwsc)
)
)
这是客户端的ORACLE配置
不知道可不可以看出Data Source是什么?
bboos 2004-11-18
  • 打赏
  • 举报
回复
Persist Security Info=False;意思是不需要密码验证
lcllcl987 2004-11-18
  • 打赏
  • 举报
回复
Data Source: Oracle的数据库实例
我就是这个不知道怎么设置啊
我怎么知道Oracle的数据库实例名?
不好意思啊
阿泰 2004-11-18
  • 打赏
  • 举报
回复
:)

Provider : 数据引擎
Persist Security Info : 字面意思是保持安全信息
如果使用了True的话,数据库连接的安全信息(如帐号和密码会作为连接的一部分在返回)会保持在连接中,据说会有安全性问题
我所做过的程序中这里的值一律是False,别的值我没有试验过,它可以接受的值是
true、false、yes 、 no。

这个参数我了解得就这么点,真的是不求甚解了
后面的几个一看就明白了

Data Source: Oracle的数据库实例
User ID : 帐号
Password: 密码
lcllcl987 2004-11-18
  • 打赏
  • 举报
回复
babyt(阿泰) ( ) :
我以前研究水晶报表的时候看过你的贴子,很好!
现在可否讲解一下连接字符串各个参数的意思啊,万分感谢
connString = "Provider=MSDAORA;Persist Security Info=False;Data Source=DBserver;User ID=test;Password=test"
加载更多回复(6)

1,216

社区成员

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

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