Where find the error log?
The easy way is to look into the startup script that you use to start the server. You must find the "-e" option. For example "-e/sybase/ASE-12_0/install/server.log".
If you don't see nothing wrong, try this:
select ...
go
delete ....
go
commit
go
select
go
If you still see your row, and the where clause use the primary key (sp_help table_name) then try to insert the row and see what happen.
May be the table is corrupt and you don't get any message.
USE base...
go
dbcc traceon(3604)
go
dbcc traceflags
go
dbcc checktable(<object_name>)
go
dbcc tablealloc(<object_name>, full, nofix)
go
dbcc indexalloc(<object_name>, 1, full, nofix)
go
and if you still don't find nothing try to see if the table heap is ok, with this:
-- dbcc pglinkage (dbid, start_pg_num, number_pages, printopt, search_for, search_order)
-- number_pages
-- 0 check all pages
--
-- printopt
-- 0 display only the number of pages checked
-- 1 display the last 16 pages checked
-- 2 display all the page numbers checked
--
-- search_order
-- 0 follow previous page pointers
-- 1 follow next page pointers
-- dbcc pglinkage(<dbid>,<first page>,0,2,0,1)
-- dbcc pglinkage(<dbid>,<last page>,0,2,0,0)
SELECT "dbcc pglinkage ("+RTRIM(convert(varchar(12), db_id()))+", "+RTRIM(convert(varchar(12), sysindexes.first))+",0,2,0,1)"
FROM sysobjects,
sysindexes
WHERE sysobjects.id = sysindexes.id
AND sysobjects.name like "%<object_name>%"
go
I had troble with some tables that broke the link pages and keep ok the index. When I try to delete some row, nothing happen, but then when I try to insert again, I get a duplicate row. The trouble was that table lost a link in some pages. The trouble begin when I make a delete without where clause, and the table was migrate from previous versions, or when the programmers use Powerbuilder to move date with a refresh pipe.
Bye bye
Sebastian