Re: Locking problem in INFORMIX ONLINE 7.20. UC2
Posted in 1997
What are you using to get the data (dbaccess, an esql program, 4GL)?
If you are using a program (with esql/c or 4GL) are you saying that
you cannot fetch the next row of the cursor?
a is a character column right? Why do the SET and WHERE clauses in
the UPDATE statement use integers then?
-Bill
}
} Dear friends,
}
} My problem is as follows :
} Example -->
}
} I have a table tab1 with one field a (char(2)).
} There are 10 records in it.
} The value in the field is '1' ,'2','3' .... to '10' for each of the
} 10 records.
}
} Now I am opening one session and locking a particular record as follows :
}
} alter table tab1 lock mode (row);
} begin work;
} update tab1
} set a = 20
} where a = 2 ;
}
} Now I am opening another session and selecting rows from that table as follows :
}
} set isolation to committed read;
} select * from tab1
} where a > = '1' and a <= '9' ;
}
} This reads only first record and the second record and will give an SQL
} error for record lock.
} This is quiet understandable since there will be an exclusive lock for that row.
}
} But does the row level lock prevent all the rows after it also to be locked.
} I have tried this in different ways
} but everytime it comes to a locked row it will stop & give error and will
} not show the remaining rows.
}
} What I want to say is that IT LOCKS MORE THAN ONE ROW ( all rows after the
} locked row). Is this O.K. or an bug or am I doing some mistake in
} understanding it.
}
} Please throw some light if U can.
}
} I know about 'set lock mode to wait' but what I am confused is why is it
} locking more than one row & how to prevent it.
}
} Thanks
}
} Bharat Shah
} INFODATA Ltd.
} P.O.Box 24114, Sharjah, U.A.E.
} Email: infodsh@emirates.net.ae
} Tel.: 971 6 599848, Fax: 971 6 592618
}
--
Bill Ennis Voice: 312-474-7516
SSA Fax: 312-474-7460
500 W. Madison email: ennis@ssax.com ennis@accesschicago.net