Re: 245 Could not position within a file via an index
Posted in 1996
Allan Gould wrote:
>
> Title: 245 Could not position within a file via an index.
>
> Error:
>
> 245: Could not position within a file via an index.
> 103: ISAM error: illegal key descriptor (too many parts or too long).>
> Has anyone got any idea why I might get this error from a stored procedure
> when I execute it, yet when I execute the query "hands-on" it runs fine??
>
> stored procedure schema:
>
> DBSCHEMA Schema Utility INFORMIX-SQL Version 5.01.UD2
> Copyright (C) Informix Software, Inc., 1984-1991
>
> create procedure "allang".allangsub1(lower datetime hour to second,
> upper datetime hour to second)
> select distinct extend(phoneusage.date_of_call, year to day) date,
> weekday(phoneusage.date_of_call) wkdy,
> count(*) cnt
> from phoneusage, usershistory
> where extend(phoneusage.date_of_call, hour to second)
> between lower and upper
> and phoneusage.to_no like 'TN%' and phoneusage.from_no like 'A%'
> and phoneusage.to_no=usershistory.tn_packed
> and usershistory.user_id !='mail'
> group by 1,2
> order by 1 into temp fred1;> END PROCEDURE;
>
> Running with:
> execute stored procedure allangsub1 ('09:00:00','10:00:00')
> gives the error above
>
> Yet running the SQL without the procedure wrapper works fine, i.e.
>
> ----------------- testacd ---------------- Press CTRL-W for Help ----
> select distinct extend(phoneusage.date_of_call, year to day) date,
> weekday(phoneusage.date_of_call) wkdy,> count(*) cnt
> from phoneusage, usershistory
> where extend(phoneusage.date_of_call, hour to second)
> between '09:00:00' and '10:00:00'
> and phoneusage.to_no like 'TN%' and phoneusage.from_no like 'A%'
> and phoneusage.to_no=usershistory.tn_packed
> and usershistory.user_id !='mail'
> group by 1,2
> order by 1 into temp fred1;
>
>
> 148 row(s) retrieved into temp table
>
>
> Configuration: Informix 5 on SunOS 4.1.3: using dbaccess.
I only know that I've seen this before because of a lock. On traversing
the index to find the required key, Informix hits a lock on another row.
(flames welcome !)