[DB-SIG] problems with DCOracle2 running on solaris 8 (oracle8.1.6)

Molina Carron ernesto.molina@externo.mju.es
Tue, 28 Jan 2003 17:15:07 +0100


def testTRA_Acciones1():
    sql=[''' select
                cd_camino,cd_tramite,cd_operacion,condicion,cd_accion,
                parametro1, parametro2, parametro3, parametro3
            from
                rm_tra_acciones x
            where
                cd_tramite=:p1 and cd_camino=:p2
        ''',
        ''' select
                cd_camino,cd_tramite,cd_operacion,condicion,cd_accion,
                parametro1, parametro2, parametro3, parametro3
            from
                rm_tra_acciones x
            where
                cd_tramite=:p1 and
                cd_camino =:p2   and
                cd_operacion=:p3
        ''']
    params=[('Registro', 2,),('Registro', 2,13800,)]

    import DCOracle2
    cadenaConn='%s/%s@%s'% ('menores','menores','datos10k')
    conn=DCOracle2.connect(cadenaConn)

    cur=conn.cursor()
    cur.execute(sql[0],params[0])
    rs = cur.fetchall()

    print """Primary key columns are CD_Camino, CD_Tramite and CD_Operacion,
            so feels like if both rows where the same"""
    print 'test1','-'*100
    print [x[0] for x in cur.describe()]
    print rs[41]

    print 'test2','-'*100
    cur=conn.cursor()
    cur.execute(sql[1],params[1])
    rs=cur.fetchall()
    print [x[0] for x in cur.describe()]
    print rs[0]


def testTRA_Acciones2():
    sql=['''select
                rowid,
                cd_camino,cd_tramite,cd_operacion,condicion,cd_accion,
                parametro1, parametro2, parametro3, parametro3
            from rm_tra_acciones x
            where cd_tramite=:p1 and cd_camino=:p2
        ''',
        '''select
                rowid,
                cd_camino,cd_tramite,cd_operacion,condicion,cd_accion,
                parametro1, parametro2, parametro3, parametro3
            from rm_tra_acciones x
            where cd_tramite=:p1 and cd_camino=:p2 and cd_operacion=:p3
        ''']
    params=[('Registro', 2,),('Registro', 2,13800,)]

    import DCOracle2
    cadenaConn='%s/%s@%s'% ('menores','menores','datos10k')
    conn=DCOracle2.connect(cadenaConn)

    cur=conn.cursor()
    cur.execute(sql[0],params[0])
    rs = cur.fetchall()
    print
    print 'Test rowid','-'*80
    print rs[41]
    rowid1=rs[41][0]

    cur=conn.cursor()
    cur.execute(sql[1],params[1])
    rs = cur.fetchall()
    print rs[0]
    rowid2=rs[0][0]

    print 'is it the same rowid?',rowid1 is rowid2
    print
def testTRA_Acciones3():
    sql=['''select
                rowid,
                cd_camino,cd_tramite,cd_operacion,condicion,cd_accion,
                parametro1, parametro2, parametro3, parametro3
            from rm_tra_acciones x
            where cd_tramite=:p1 and cd_camino=:p2 and cd_operacion=:p3
        ''']
    params=[('Registro', 2,13800,)]

    import DCOracle2
    cadenaConn='%s/%s@%s'% ('menores','menores','datos10k')
    conn=DCOracle2.connect(cadenaConn)

    cur=conn.cursor()
    cur.execute(sql[0],params[0])
    rs = cur.fetchone()
    print 'Test 1=1: gonna fetch the same row, the same query twice','-'*30
    print rs
    rowid1=rs[0]

    cur=conn.cursor()
    cur.execute(sql[0],params[0])
    rs = cur.fetchone()
    print rs
    rowid2=rs[0]

    print 'is it the same rowid?',rowid1 is rowid2
    print

    sqlRowID='''select
                rowid,
                cd_camino,cd_tramite,cd_operacion,condicion,cd_accion,
                parametro1, parametro2, parametro3, parametro3
            from rm_tra_acciones x
            where rowid=:p1'''
    cur=conn.cursor()
    cur.execute(sqlRowID,rowid1)
    rs = cur.fetchone()
    print 'fetch the row looking for its rowid','-'*30
    print rs

    cur=conn.cursor()
    cur.execute(sqlRowID,rowid2)
    rs = cur.fetchone()
    print 'fetch the row looking for its rowid (2)','-'*30
    print rs

if __name__=='__main__':
    testTRA_Acciones1()
    testTRA_Acciones2()
    testTRA_Acciones3()

---------------------------------------------------------------
the results
---------------------------------------------------------------
Primary key columns are CD_Camino, CD_Tramite and CD_Operacion,
            so feels like if both rows where the same
test1 ----------------------------------------------------------------------
------------------------------
['CD_CAMINO', 'CD_TRAMITE', 'CD_OPERACION', 'CONDICION', 'CD_ACCION',
'PARAMETRO1', 'PARAMETRO2', 'PARAMETRO3', 'PARAMETRO3']
[2L, 'Registro', 13800L, "ANIO_EXP_FISCALIA & '' # ''", 'X>X',
'ANIO_EXP_FISCALIA', None, None, None]
test2 ----------------------------------------------------------------------
------------------------------
['CD_CAMINO', 'CD_TRAMITE', 'CD_OPERACION', 'CONDICION', 'CD_ACCION',
'PARAMETRO1', 'PARAMETRO2', 'PARAMETRO3', 'PARAMETRO3']
[2L, 'Registro', 13800L, "ANIO_EXP_FISCALIA & '' # ''", 'X>X',
'ANIO_EXP_FISCALIA', 'x', None, None]

Test
rowid ----------------------------------------------------------------------
----------
[<OracleRowID at 0x003a0c74>, 2L, 'Registro', 13800L, "ANIO_EXP_FISCALIA &
'' # ''", 'X>X', 'ANIO_EXP_FISCALIA', None, None, None]
[<OracleRowID at 0x003a0674>, 2L, 'Registro', 13800L, "ANIO_EXP_FISCALIA &
'' # ''", 'X>X', 'ANIO_EXP_FISCALIA', 'x', None, None]
is it the same rowid? 0

Test 1=1: gonna fetch the same row, the same query
twice ------------------------------
[<OracleRowID at 0x003792b4>, 2L, 'Registro', 13800L, "ANIO_EXP_FISCALIA &
'' # ''", 'X>X', 'ANIO_EXP_FISCALIA', 'x', None, None]
[<OracleRowID at 0x00379250>, 2L, 'Registro', 13800L, "ANIO_EXP_FISCALIA &
'' # ''", 'X>X', 'ANIO_EXP_FISCALIA', 'x', None, None]
is it the same rowid? 0

fetch the row looking for its rowid ------------------------------
[<OracleRowID at 0x00378fd0>, 2L, 'Registro', 13800L, "ANIO_EXP_FISCALIA &
'' # ''", 'X>X', 'ANIO_EXP_FISCALIA', 'x', None, None]
fetch the row looking for its rowid (2) ------------------------------
[<OracleRowID at 0x00378f90>, 2L, 'Registro', 13800L, "ANIO_EXP_FISCALIA & '
' # ''", 'X>X', 'ANIO_EXP_FISCALIA', 'x', None, None]