在VB6.0中如何连接oracle数据库安装表,请教大牛们了

在VB中如何使用OO4O技术对ORACLE数据库进行操作[转]
http://softnote./.html
摘要: 本文结合实例介绍了在VB中如何使用OO4O技术对ORACLE数据库进行操作。
关键词: ORACLE, VB,OO4O,ODBC。
一般来说,VB访问远程后台数据库有好多方法可以实现,目前使用的比较多的方法有:ODBC(开放数据库互联),OO4O(Oracle的OLE对象)
由于ODBC技术有一个致命的缺点—速度慢。OO4O是一种进程中的OLE服务器,但是它不使用ODBC标准,
它利用ORACLE的调用接口来与ORACLE会话,这样一来,它就可以克服ODBC的速度慢的缺点了。
正是由于OO4O访问ORACLE的这种特殊优势,目前基于ORACLE数据库的用VB程序语言开发的应用系统基本上都是通过OO4O来实现的。
2. OO4O简介
2.1 VB 中用到的OO4O的重要的组件( OO4O Component Used in VB)
Oracle Data Control (在建立VB工程时,必须把它们加载到VB的引用中)
2.2 OO4O主要对象,用途及对象的建立:
⑴ OraClient:
定义工作域,并管理会话集。和DAO的DBEngine建立方式一样, OraClient对象通常系统会根据需要而自动建立。
⑵ OraSession:
VB应用程序和ORACLE服务器的接口,每个应用程序会建立自己的OraSession对象。OraSession对象是属于应用程序中最上层的对象,它以通过CreateObject方法(method)来建立,建立方法为:
Set OraSession =
CreateObject("OracleInProcServer.XoraSession")。
用OaSession = nothing释放OraSession对象。
⑶ OraConnection:
是OraSession与ORACLE数据之间建立的连接。当建立OraDatabase对象时,系统会自动产生一个OraConnection对象。反之,当用户或应用程序与数据库失去连接,则OraConnection对象也会自动被释放(free)。
⑷ OraDatabase:
对ORACLE数据库的一个“虚”登录。其登录数据库的方法如下:
Set OraDatabase =
OraSession.DbOpenDatabase("数据库别名","用户名/密码",0)
⑸ OraParameter:
绑定在SQL语句或PL/SQL块中的有关变量。OraParameter对象间接的通过OraDatabase对象的OraParameters数据集合(collection)来增加、存取或删除某个变量。
⑹ OraDynaset:
利用SELECT语句所得到的记录。在VB中如果想建立一个OraDynaset对象可以使用OraDatabase的DbCreateDynaset或CreateDynaset等方法,建立方法为:
Set OraDynaset = OraDatabase.DbCreateDynaset("select * from
dual",0) 。
⑺ OraSQLStmt:
预定义的单独的一句SQL语句。ORACLE中对数据库的操作基本上都是基于SQL来实现的。通过OO4O对ORACLE的访问,也得考虑怎样有效利用
SQL来实现.前面已经提到过SELECT的查询可以利用OraDynaset
来实现表形式的获得,但是INSERT,UPDATE这样的SQL最好通过OraSQLStmt 来实现。
⑻ OraField:
OraDynaset对象中的一列(Column)或数据项目(data
item)。OraField对象是间接从OraDynaset对象的OraFields数据集合(collection)取得其中的一个字段的数据,其数据类型通常为万能变量(Variant)。
2.3 OO4O对象关系图:(OO4O Objects Relationship)
图 1 OO4O对象关系图
2.4 OO4O中各个对象的关系如下:
每个OraClient对象可以关系多个OraSession对象,而每个OraSession对象只会属于或对应于一个OraClient对象。
每一个OraSession对象可以关系多个OraConnection对象,而每一个OraConnection对象也可以同时被多个OraDatabase对象所分享。然而,这些OraDatabase对象必须属于相同的OraSession对象。
● 每个OraDatabase对象属于唯一的OraSession对象。
● 每个OraDynaset对象属于唯一的OraDatabase对象。
● 每个OraSQLstmt对象属于唯一的OraDatabase对象。
● 每个OraParameter对象属于唯一的OraDatabase对象。
● 每个OraField对象属于唯一的OraDynaset对象。
3. VB中利用OO4O对ORACLE的访问实例
3.1 系统构成实例
图 2 OO4O系统构成
3.2 OO4O使用前的准备
为了在VB中从OO4O连接ORACLE数据库,连接用的SERVICE名必须已经在ORACLE的TNSNAME.ORA中定义好了。这种定义是由Net8
Configuration Assistance来完成的。
运行tnsping.exe后会得到以下的执行结果
C:\Oracle\Ora81\bin&tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 8.1.6.0.0 - Production
on 20-SEP-20 02 16:01:28 (c) Copyright 1997 Oracle Corporation。All
rights reserved。Attempting to contact
(ADDRESS=(PROTOCOL=TCP)(HOST=rnk2000)(PORT=1521)) OK (70ms)
在安装OO4O的目录下有VB用的ORACLE文件[ORACONST.TXT],把这个文件名换成[ORACONST.BAS]然后到VB所在的目录。
[ORACONST.TXT]文件的内容大致如下:
Global Const ORADATA_EDITNONE = 0
Global Const ORADATA_EDITMODE = 1
Global Const ORADATA_EDITADD = 2
Global Const ORADB_BOOLEAN = 1
Global Const ORADB_BYTE = 2
Global Const ORADB_INTEGER = 3
3.3 和ORACLE之间的连接,操作,切断实例
OraSession对象,OraDataBase对象,OraDynaset对象,OraField对象实例介绍:
Option Explicit
'ORACLE对象定义
Public OraSession As Object ' Oracle OraSession对象
Public OraDB As Object ' Oracle OraDataBase对象
Private fOraSess As Boolean ' Session设置标签
Private fOraDB As Boolean ' DataBase Open设置标签
' &测试用的Form文件&
Private Sub Form_Load()
'显示"连接中…"信息窗口
Load frmLogin
FrmLogin.Show
'调用ORACLE连接函数
If Ora_Open() = False Then
MsgBox "连接ORACLE失败。"
'调用系统时间获得函数
Ora_GetDate()
'放弃"连接中…"信息窗口
Unload frmLogin
Private Sub Form_Unload(Cancel As Integer)
'调用ORACLE释放函数
If Ora_Close() = False Then
MsgBox "释放ORACLE连接失败。"
' 名称 : Ora_Open
' 功能 : 打开数据库
' 参数 : 没有
' 返回值 : True(正常) , False(异常)
Public Function Ora_Open() As Boolean
On Error GoTo Ora_Open_Err
Dim pstrErr As String
Ora_Open = False
Screen.MousePointer = vbHourglass
If fOraSess = False Then
'生成Session对象
Set OseOraSess = CreateObject("OracleInProcServer.XOraSess")
fOraSess = True
'ORACLE 数据库的Longin
Set OdbOraDB = OseOraSess.OpenDatabase("TZCE", "SCOTT/TIGER",
标ORADB_DEFAULT)
fOraDB = True
Ora_Open_Exit:
Ora_Open = True
Screen.MousePointer = vbDefault
Exit Function
Ora_Open_Err:
Screen.MousePointer = vbDefault
If OraSess.LastServerErr = 0 Then
If OraDB.LastServerErr = 0 Then
pstrErr = Error(Err.Number)
'数据库出错
pstrErr = OraDB.LastServerErrText
OraDB.LastServerErrReset
'Session出错
pstrErr = OraSess.LastServerErrText
OraSess.LastServerErrReset
MsgBox pstrErr, vbOKOnly, "Ora_Open"
On Error Resume Next
End Function
' 名称 : Ora_Close
' 功能 : 关闭数据库
' 参数 : 没有
' 返回值 : True(正常) , False(异常)
Public Function Ora_Close() As Boolean
On Error GoTo Ora_Close_Err
Dim pstrErr As String
Ora_Close = False
If fOraDB = True Then
'关闭数据库
OraDB.Close
'解除OraDataBase对象
Set OraDB = Nothing
If fOraSess = True Then
'解除OraSession对象
Set OraSess = Nothing
ExitHandler:
Ora_Close = True
Exit Function
Ora_Close_Err:
'出错处理(和Ora_Open出错处理类似,略)
End Function
' 名称 : Ora_GetDate
' 功能 : 获取数据库时间
' 参数 : 没有
' 返回值 : True(正常) , False(异常)
Public Function Ora_GetDate() As String
On Error GoTo Ora_GetDate_Err
Dim pstrErr As String
Dim pstrSQL As String
Dim pobjDyn As Object 'OraDynaset对象
Ora_GetDate = ""
pstrSQL = "SELECT SYSDATE FROM DUAL"
'打开OraDynaset对象
Set pobjDyn = OraDB.CreateDynaset(pstrSQL, ORADYN_READONLY)
Ora_GetDate = pobjDyn.Fields("SYSDATE").Value
'关闭OraDynaset对象
Set pobjDyn = Nothing
ExitHandler:
Exit Function
Ora_GetDate_Err:
'出错处理(和Ora_Open出错处理类似,略)
End Function
以下にサンプルをご提供します。参考にして下さい。
尚、関数の詳細は、oo4oを使用するVBの専門書か又は、Webで調べて下さい。
' Oracleに接続
Set OraSession =
CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.DbOpenDatabase("cims", "test/test",
'パラメータの型
Const ORAPARM_INPUT = 1
Const ORAPARM_OUTPUT = 2
Const ORAPARM_BOTH = 3
Const ORATYPE_VARCHAR2 = 1
Const ORATYPE_NUMBER = 2
' SQL実行に使用するVB変数
Dim v_sqlstmt As String
Dim v_retcode As Integer
'パラメータのバインド
OraDatabase.Parameters.Add "P1", "", ORAPARM_INPUT
OraDatabase.Parameters("P1").serverType = ORATYPE_VARCHAR2
OraDatabase.Parameters("P1").Value = "1"
OraDatabase.Parameters.Add "P2", "", ORAPARM_INPUT
OraDatabase.Parameters("P2").serverType = ORATYPE_NUMBER
OraDatabase.Parameters("P2").Value = "1"
OraDatabase.Parameters.Add "P3", "", ORAPARM_OUTPUT
OraDatabase.Parameters("P3").serverType = ORATYPE_NUMBER
OraDatabase.Parameters("P3").MinimumSize = 2
'PL/SQLブロックからプロシージャを呼ぶ
v_sqlstmt = "begin test.main(:P1, :P2, :P3);"
v_retcode = OraDatabase.ExecuteSQL(v_sqlstmt)
' 返り値を表示
MsgBox OraDatabase.Parameters("P1").Value
MsgBox OraDatabase.Parameters("P2").Value
MsgBox OraDatabase.Parameters("P3").Value
'パラメータリストからパラメータを削除
OraDatabase.Parameters.Remove "P1"
OraDatabase.Parameters.Remove "P2"
OraDatabase.Parameters.Remove "P3"vb 6.0 如何与Oracle 11g 建立连接和读取数据?(小弟新手)
[问题点数:40分]
vb 6.0 如何与Oracle 11g 建立连接和读取数据?(小弟新手)
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2015年9月 VC/MFC大版内专家分月排行榜第二2015年7月 硬件/嵌入开发大版内专家分月排行榜第二2014年5月 VC/MFC大版内专家分月排行榜第二2014年3月 VC/MFC大版内专家分月排行榜第二2013年10月 VB大版内专家分月排行榜第二2013年7月 VB大版内专家分月排行榜第二2012年5月 VB大版内专家分月排行榜第二2012年4月 VB大版内专家分月排行榜第二2012年2月 VB大版内专家分月排行榜第二2011年11月 VB大版内专家分月排行榜第二
2015年11月 VC/MFC大版内专家分月排行榜第三2015年6月 VC/MFC大版内专家分月排行榜第三2015年2月 VC/MFC大版内专家分月排行榜第三2014年1月 VC/MFC大版内专家分月排行榜第三2012年3月 VB大版内专家分月排行榜第三2011年12月 VB大版内专家分月排行榜第三2011年10月 VB大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。数据库教程_西西软件资讯
西西软件下载最安全的下载网站、值得信赖的软件下载站!
数据库教程
来源:西西软件园
服务器c盘空间不够,先删掉了IIS日志,发现sql数据库居然也占用了几十G的空间,ErrorLog文件特别大,想手动删除,结果还删除不了,文件在 MSSQL &C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG 目录下存放这一些日志文件,一共是7个,常常会因为这
来源:西西软件园
搞网站或者其他需要使用数据库的童鞋都对数据库备份有需求的,备份数据库的时候最好是选择在晚间,这个时候使用的频率比较少,那么我们就需要对数据库备份做一个计划了。使用SQL作业中执行SQL脚本进行备份的方法虽然已经很简单了,但是至少还是要去写BACKUP脚本
来源:西西软件园
一同事反馈SQL无法正常登录了,以前都是通过windows集成身份验证登录进去的(sa密码早忘记了),今天就改了服务器的机器名,现在无论如何都登录不进去。SQL登录时如果采用windows集成身份验证,登录框将会以“机器名\当前系统用户名”的格式显示登录名,而且登
来源:西西软件园
客户的SQL Server实例上有多个厂商的数据库,每个数据库由各自的进行厂进行商维护,为了限定不同厂商的维护人员只能访问自己的数据库,现需要给各个厂商限定权限,让他们登录SQL Server只能看到授权的数据库而无法看到其他数据库。解决方案1.先给不同的
来源:西西软件园
这是个终极问题,因为优化本身的复杂性实在是难以总结的,很多时候优化的方法并不是用到了什么高深莫测的技术,而只是一个思想意识层面的差异,而这些都很可能连带导致性能表现上的巨大差异。所以有时候我们应该先搞清楚需求到底是什么,SQL本身是否合理,这些思考
来源:西西软件园
Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。开发人员主要来自MySQL,Facebook,SkySQL公司。目前已经在一些线上使用了Mydumper。虽然MySQL数据库备份工具有其自带的mysqldump,属于mysql官方的一款备份工具。但是第三方备份工具mydumper凭借优越
来源:西西软件园
对于初次接触PhpMyAdmin数据库的童鞋来说,PhpMyAdmin的使用还是一个不行的障碍,倡萌曾经也一样,对MySQL数据库一无所知,更别说PhpMyAdmin面板的使用了,其实一般来说,创建新的数据库,是可以在主机后台直接创建的,不需要在PhpMyAdmin创建,但是也有例外,尤其
来源:西西软件园
做网站,数据库同步是最重要的了吧,其他需要使用需要使用SQL Server数据库的CS系统,SQL数据库的备份也是非常重要的,数据库备份是维护数据正确,防止数据丢失的重要手段。备份点恢复策略可以让数据还原到备份点,通过触发备份的方法,可以提高备份的有效性;采用
来源:西西软件园
正常情况下我们的VPS主机环境如果按照类似AMH之类的面板,如果有数据盘的时候网站项目会独立用数据盘存储,而系统以及面板环境数据库存储会在系统盘中,因为也不会占据太大的硬盘空间。上午的时候,有一个朋友需要西西帮助解决AMH面板的数据库也放到数据盘中,担心
来源:西西软件园
mysql的默认编码是拉丁,我每次JSP制作网页用insert语句插入数据库时汉字都会显示成问号,安装mysql后,启动服务并登陆,使用show variables命令可查看mysql数据库的默认编码:由上图可见database和server的字符集使用了latin1编码方式,不支持中文,即存储
来源:西西软件园
SQL Server2005服务无法启动,在系统日志中查询有以下两种错误日志,点击图中窗口的SQL Server 2005服务节点,看看“登录身份为”这个列,确定当前用户是否有权限启动SQL Server 2005 服务。1:SQL Server无法生成FRunCM线程的解决方法SQL Server could not
来源:西西软件园
&我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。如果你也遇到了这个问题,咱先不谈原因,在PC自带的cmd中(或者是mysql安装
来源:西西软件园
微软SQL Server 2014三大新特性:集成内存OLTP、BI和混合云搭建!SQL Server 2014带来一套功能强大的核心任务工作负载、智能化业务以及混合云服务。其中,SQL Server 2014最先进的功能特色包括In-Memory OLTP,即In-Memory Columnstore,这是一种应用于Windows Azu
来源:西西软件园
解决MySQL Server Instance Configuration Wizard卡住未响应的问题今天在安装MySQL(5.5.33 win32)后,接着程序自动运行MySQL Server Instance Configuration Wizard(MySQL实例配置向导)程序,一如既往地采用自定义的详细配置,结果在最后一步执行的时候,却一直
来源:西西软件园
使用MySQL配置向导可以很轻松、方便的帮助您实现WINDOWS系统下的MySql自动配置,向导首先会根据一系列的问题创建一个定制好的my.ini文件,然后根据用户的选择生成一个跟安装相适应的my.ini文件。1、选择维护选项如果MySQL Configurati
来源:西西软件园
当完整备份数据库的时候,我们有时候可能会遇到一种极端情况,比如服务器上C,D,E三个盘符都只剩下5G空间了但是如果要完整备份业务库需要12G的空间,那么这时候怎么办呢?使用文件组备份吗?但是数据库没有做表分区,没有分多个文件组,就只有一个主文件组啊
来源:西西软件园
现在在企业中,操作oracle数据库的客户端,除了PL/SQL外,使用的较多的就是TOAD了!toad记得F9执行全部sql和Ctrl + Enter执行选中sql就行了,有啥需要的再查吧。快捷设置在View -- Option -- Toolbars/Menus -- Shotcuts,toad管快捷键叫shotcut,一开始找key这样的
来源:西西软件园
01 连接数据库Win7下,先打开SQLServer管理工具(开始菜单/所有程序/Microsoft SQL Server 2008/SQL Server Management Studio)会弹出“连接到服务器对话框”1 服务器类型 : 数据库引擎2 服务器名称 : 127.0.0.13 身份验证 : Windows身份验证
来源:西西软件园
DB2 常用命令,对于使用db2的朋友可以参考下。管理客户端从v9.7版本之后就不再带有控制中心了,而是使用 Data Studio Client。安装&DB2 数据库产品期间不会应用许可证密钥。但是,下列产品没有激活 CD,因此会在安装这些产品的过程中自动应用其许可证:DB2 Ex
来源:西西软件园
最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他“服务器”向我们服务器推送的方式实现。我们服务器使用的是SQL Server 2008 R2,其他“服务器”使用的都是SQL Server 2000,还都是运行在Windows XP上的,整个过程遇到了一些问
来源:西西软件园
虽然西西不建议大家去用命令删除数据库表中的东西,但是这些删除命令总有用的着的地方。说到删除表数据的关键字,大家记得最多的可能就是delete了然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了现在来介绍另外两个兄弟,都是删除表数
来源:西西软件园
Windows cluster要求同一个cluster中的所有windows版本都是相同的,这样就出现一个问题,当我们要将对windows进行升级时,(例如从windows 2008 R2升级到windows 2012)不得不搭建一套新的windows cluster。你可以选择使用新的硬件搭建,或者将现有windows cluster中
来源:西西软件园
几年前学过的VB几乎忘光了,这几天复习了下。VB连接ADO数据库并不是非常难。连接第一步(要仔细看)对于小白来讲,这里的教程最详细,连接ADO数据库第一步,要添加什么部件呢?全称是Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 部件。在Micros
来源:西西软件园
一直在使用Oracle数据库,各种语句、注意一大堆,一不留神就沾染上了连接错误。最近,碰到的需要注意的地方,就是每隔一段时间需要更新启用新的用户密码,否则连接错误,提示也很明显,总不过是密码过期的意思。但是工作中,因为没有专门的数据库维护,
来源:西西软件园
最近在一个客户那里注意到一个计数器很高(Forwarded Records/Sec),伴随着间歇性的磁盘等待队列的波动。本篇文章分享什么是forwarded record,并从原理上谈一谈为什么Forwarded record会造成额外的IO。存放原理在SQL Server中,当数据是以堆的形式存放时
来源:西西软件园
删除数据库日志文件的方法你曾经有在执行SQL的时候,数据库报事务日志已满,然后执行报错。然后纠结于怎么删除数据库日志,捣鼓半天吗,现在就提供两种删除日志文件的方法,希望能够帮到你!方法一:手工操作1.数据库-&右键-&属性-&选
来源:西西软件园
把原来的sql server 2005直接装成了2012,然后在建立链接服务器链接一台sql server 2000的服务器时,报错信息大概是“SQL Server Native Client 11.0 不支持链接SQL Server 2000 及更早版本”,但是在SQL Server2012中连接其他SQL Server数据库时可以使用以下代码:
来源:西西软件园
多年前给客户做的数据库,用得是 access,已经两年,长得非常大,有 1G 这么大。实在是会担心,如果不小心坏了,那可是救都救不回来。还好,备份一个 access 的数据库非常简单,就把那个档案复制一份,就解决了。甚至,还可以写一个 aspx 网页,来执行这个动作,让
来源:西西软件园
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:Oracle公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。数据对我们来说再重要不过了,那我们如何做到对数据
来源:西西软件园
SQL Server Profiler 是一个功能丰富的界面,用于创建和管理跟踪并分析和重播跟踪结果。&事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分析或用它来重播特定的一系列步骤。如果你的数据库应用系统中,存在有大量表,视图,索引,触发器
来源:西西软件园
触发器 是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。触发器是许多关系数据库系统都提供的一项技术。在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。1.说明1)触发器是一种特殊的
来源:西西软件园
50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表问题:1、查询“001”课程比“002”课程成绩高的所有学生的学号;&select a.S# from (select s#
来源:西西软件园
在完整恢复模式或大容量日志恢复模式下,必须先备份活动事务日志(称为日志尾部),然后才能在SQLServerManagementStudio中还原数据库。有关详细信息,请参阅如何备份事务日志(SQLServerManagementStudio)。若要还原已加密的数据库,您必须有权访问用于加密数据库的
来源:西西软件园
之前因为ytkah批量添加了dedecms文章,数量有些多,后面出现问题了,想要删除一部分织梦文章,后台一篇篇删,删到手软(相关内容:修改dedecms关键词到手软),于是就想到了sql数据库操作!那么,如何用sql语句批量删除一个id段内的dedecms文章呢?比如id从300到
来源:西西软件园
相信大家对内存数据库的 概念并不陌生,之前园子里也有多位大牛介绍过SQL内存数据库的创建方法,我曾仔细 拜读过,有了大致了解,不过仍有很多细节不清晰,比如:(1)内存数据库是把整个数据库放到内存中的吗?(2)数据都在内存里面,那宕机或者java连接oracle数据库java.sql.SQLException: 无效的列索引问题_百度知道
java连接oracle数据库java.sql.SQLException: 无效的列索引问题
pstmt,str4);
pstmt.dispatchEvent(Unknown Source)at java.Container.fireActionPerformed(Unknown Source)at javax:orcl&quot.EventDispatchThread.awt.Container.sql.setString(1,取消索引.java.SQLException:String driverName = &quot: 无效的列索引无效的列索引tongfang&quot:207)at oracle:oracle, &quot:175)at javax.driver.processMouseEvent(Unknown Source)at javax.validID(addreader1.pumpEventsForHierarchy(Unknown Source)at java.setString(3.java.Container:5320)at untitled5.W).oracle.sysman&quot.awt,这是什么原因呢.ponent:5328).mouseReleased(Unknown Source)at java.awt.processEvent(Unknown Source)at java.newInstance().dispatchEventImpl(Unknown Source)at java,str3),str2).OracleDriver&quot.pumpOneEventForFilters(Unknown Source)在网上搜索说表的列和java对应问题.driver.DefaultButtonModel.dispatchEventImpl(Unknown Source)at java.DatabaseError.EventDispatchThread.swing:1521.ponent.getConnection(
&quot.EventDispatchThread.basic.processMouseEvent(Unknown Source).throwSqlException(DatabaseError:145)at oracle.jdbc.java:111)
ResultSet res = pstmt.EventDispatchThread.java.EventDispatchThread:97)at untitled5.awt.setString(OraclePreparedStatement.
&#47.fireActionPerformed(Unknown Source)at javax.dispatchEventImpl(Unknown Source)at java.LightweightDispatcher.awt,都是用sysman的账户,可用sqlplus又找得到数据表.jdbc?)&quot.awt:
PreparedStatement pstmt = con.prepareStatement(
&quot.awt.BasicButtonListener.jdbc.setString(2.driver.DatabaseError.addreader1_jButton1_actionAdapter.EventDispatchThread.addreader1.JComponent:@LONG.setString(4.OraclePreparedStatement,大小写问题等等都没能解决.throwSqlException(DatabaseError.AbstractButton$Hjdbc.swing.pumpEvents(Unknown Source) insert into reader values(.&#47.actionPerformed(Unknown Source)at javax.java,单个插入就出现表或试图不存在.awt..swing.driver.DatabaseError:128)at untitled5.throwSqlException(DatabaseError.processEvent(Unknown Source)at java.swing,期末大作业.awt.EventQueue.
pstmt.dispatchEvent(Unknown Source)at java, &quot.awt.swing.java.driver.retargetMouseEvent(Unknown Source)ponent.pumpEventsForFilter(Unknown Source)at java.DefaultButtonModel.OraclePreparedStatement.pumpEvents(Unknown Source)at java.awt.plaf.dispatchEvent(Unknown Source)at java, str1).awt.awt.java.addreader1.dispatchEvent(Unknown Source)at java.forName(driverName).jButton1_actionPerformed(addreader1.executeQuery().Component.actionPerformed(addreader1,弄个一个下午了.processMouseEvent(Unknown Source)at java.AbstractButton,请各位大牛帮忙.setPressed(Unknown Source)at javax.awt.swingjava,急急急.awt.LightweightDispatcher.
pstmt.LightweightD);
Driver driver = (Driver) C连接数据库
Connection con = DriverManager.run(Unknown Source)代码.awt.dispatchEventImpl(Unknown Source)at java
好的。试试看。
提问者采纳
, ? 你在prepardstatement里面只有一个问号 在下面的时候
怎么却提供了4个值给他 很显然不可以的嘛 要么你就再加三个问号
insert into reader values(, , ?
提问者评价
感谢“guolitao_2005”的回答,他是第一个回答这个解决方案的,但是我认为这个回答比较直观帮助到我们。
其他类似问题
为您推荐:
其他5条回答
第1至第4个占位符进行值的填充。而你的SQL语句中只有1个占位符,str4),str3),程序就无法处理了;
pstmt, str1).setString(3.setString(4,str2).setString(2,所以第2至第4个的填充;这是对SQL语句中?那在填充值和pstmt,是针对一条SQL语句的.setString(1。你是想要插入4条记录吗;
pstmtpstmt
一个问号对应一个参数,你想塞4个参数就得四个问号。呵呵。
这和用什么用户无关,只要能连上数据库、并且使用的用户对该表有插入权限,就没问题。现在出现的“无效的列索引的异常”,是指在语句pstmt.setString(2,str2);中,列索引2是无效的,因为sql语句中只有一个问号。PreparedStatement 对象中的setString方法的第一个参数是列索引,这个参数的取值范围是和sql语句中的问号数量对应的,sql语句中有n个问号,setString方法的第一个参数就应该从1到n,如果不在这个范围之内,就会出列索引无效的异常。
oracle.jdbc.driver.OracleDriver换个数据源看看
索引要从0开始赋值
oracle数据库的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 oracle数据库安装 的文章

 

随机推荐