ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle开发 » 什么原因

标题: 什么原因
离线 Arrayicome
初级会员



精华贴数 0
个人空间 0
技术积分 120 (14549)
社区积分 0 (50690)
注册日期 2001-12-29
论坛徽章:0
      
      

发表于 2002-1-11 12:25 
什么原因

在SQL*Plus中打入语句能选出记录,在VB中用ADO的RecordSet对象打开确没有记录。

Dim oRst As New ADODB.Recordset

sSQL="Select * From LABU_Schedule Where SendTime = To_Date('2001-01-09','yyyy-mm-dd')"

oRst.Open sSQL, poConn

(其中poConn 对象已经建立。)

这是什么原因呢。对另一个表我用同样的方法是可以选出记录的)



只看该作者    顶部
离线 蓝带鱼
中级会员


精华贴数 0
个人空间 0
技术积分 608 (3192)
社区积分 407 (1631)
注册日期 2001-11-9
论坛徽章:3
ITPUB元老会员2006贡献徽章授权会员   
      

发表于 2002-1-11 17:38 
两个表的结构是否一样呢?
你的poConn是如何连接的?
选不出记录,可能与你的表结构有关


__________________
横批:全面发展左脑负责发帖右脑负责灌水bluebluefish@itpub.net
只看该作者    顶部
离线 icome
初级会员



精华贴数 0
个人空间 0
技术积分 120 (14549)
社区积分 0 (50690)
注册日期 2001-12-29
论坛徽章:0
      
      

发表于 2002-1-11 17:47 
回复

两个表结构不一样,但位于同一个DB

oConn.Open "DSN=fsllmat;UID=lad;pwd="
两个表在SQL*plus中可以选出记录
有一个表在VB中可正确查出记录。另一个不行。

后来我将表结构简化为两个字段,也不能,删除掉重建,也不成。查询语句改为最简单的
select * from LABU_Schedule  也不行。


只看该作者    顶部
离线 蓝带鱼
中级会员


精华贴数 0
个人空间 0
技术积分 608 (3192)
社区积分 407 (1631)
注册日期 2001-11-9
论坛徽章:3
ITPUB元老会员2006贡献徽章授权会员   
      

发表于 2002-1-11 17:49 
你这个表的数据类型是什么?
有没有包含诸如blob,long之类大对象的结构


__________________
横批:全面发展左脑负责发帖右脑负责灌水bluebluefish@itpub.net
只看该作者    顶部
离线 icome
初级会员



精华贴数 0
个人空间 0
技术积分 120 (14549)
社区积分 0 (50690)
注册日期 2001-12-29
论坛徽章:0
      
      

发表于 2002-1-11 17:56 
回复

表结构如下,有问题的是第一个表,我将其结构改为两个字段也不成。

-- # << Sript for table:LABU_Schedule>>

Create Table LABU_Schedule(
        SCHDID Number(10) NOT NULL,
        TemplateID Number(8) NOT NULL,
        ChannelID Number(8) NOT NULL,
        Status varchar2(1) NOT NULL,
        Subject varchar2(50),
        Content varchar2(2000),
        SendTime Date NOT NULL,
        CASEID Number(8),
        SENDFRUID varchar2(8),
        SENDTOUID varchar2(8),
        SENDTOUROLE varchar2(8),
    PRIMARY KEY(SCHDID)
    ) TABLESPACE "USERS"
/

-- # << End sript for table:LABU_Schedule>>

-- # << Sript for table:CMCAS_Param>>

Create Table CMCAS_Param(
        PARAM varchar2(20),
        VALUE varchar2(100),
        PARAMDESC varchar2(200)
    ) TABLESPACE "USERS"
/

下面是VB代码
Private Sub cmdError_Click()
    Dim sSQL As String
    Dim oRst As New ADODB.Recordset
    Dim oConn As New ADODB.Connection
   
    sSQL = "Select * From LABU_Schedule"  ' 这个有问题
   ' sSQL = "Select * From CMCAS_Param"  ' 这个表没问题
    oConn.Open "DSN=LAD;UID=lad;pwd="
    oRst.Open sSQL, oConn
    If (Not oRst.BOF) And (Not oRst.EOF) Then
        MsgBox "Data Found !"
    End If
   
    Set oRst = Nothing
    Set oConn = Nothing
End Sub

数据是我亲手加的。


只看该作者    顶部
离线 蓝带鱼
中级会员


精华贴数 0
个人空间 0
技术积分 608 (3192)
社区积分 407 (1631)
注册日期 2001-11-9
论坛徽章:3
ITPUB元老会员2006贡献徽章授权会员   
      

发表于 2002-1-11 19:59 
估计你的连接有问题
我在我的机器上测试了一下,能够获取记录的!


__________________
横批:全面发展左脑负责发帖右脑负责灌水bluebluefish@itpub.net
只看该作者    顶部
离线 蓝带鱼
中级会员


精华贴数 0
个人空间 0
技术积分 608 (3192)
社区积分 407 (1631)
注册日期 2001-11-9
论坛徽章:3
ITPUB元老会员2006贡献徽章授权会员   
      

发表于 2002-1-11 20:04 
稍微改了一下你的代玛
Option Explicit
Dim sSQL As String
Dim oRst As New ADODB.Recordset
Dim oConn As New ADODB.Connection
Private Sub cmdError_Click()
sSQL = "Select * From LABU_Schedule" ' 这个有问题
'sSQL = "Select * From CMCAS_Param" ' 这个表没问题
oConn.Open "Provider=OraOLEDB.Oracle.1;Password='';User ID='';Data Source=''"
oRst.Open sSQL, oConn
If (Not oRst.BOF) Or (Not oRst.EOF) Then
MsgBox "Data Found !"
Else
MsgBox "Data Found 1 !"
End If

Set oRst = Nothing
Set oConn = Nothing
End Sub


__________________
横批:全面发展左脑负责发帖右脑负责灌水bluebluefish@itpub.net
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问