Wednesday, March 28, 2012

Mapping image pointers to page numbers

Is there a way to convert an image pointer to a page ID that could be
used in DBCC page

i.e.

select TEXTPTR(document)FROM testdocs where id = 1
resturns
0xFEFF3601000000000800000003000000

select convert(int,TEXTPTR(document)) FROM testdocs where id =1
returns
50331648

dbcc page (9,3,8,1)
dumps the first page of the image

I am trying to map 0xFEFF3601000000000800000003000000 - > page
number 8

thanks"ScottYoder" <scott.yoder@.ngc.com> wrote in message
news:f03d8889.0410011322.6ab77061@.posting.google.c om...
> Is there a way to convert an image pointer to a page ID that could be
> used in DBCC page
> i.e.
> select TEXTPTR(document)FROM testdocs where id = 1
> resturns
> 0xFEFF3601000000000800000003000000
> select convert(int,TEXTPTR(document)) FROM testdocs where id =1
> returns
> 50331648
> dbcc page (9,3,8,1)
> dumps the first page of the image
>
> I am trying to map 0xFEFF3601000000000800000003000000 - > page
> number 8
> thanks

I don't think so - according to BOL, TEXTPTR returns a pointer to the root
of an internal pointer tree. So just having the root pointer may not be
enough to find all the pages in the image, if the internal pointer tree is
not accessible in any way.

"Inside SQL Server 2000" pp 260-266 discusses text/image storage - it might
be useful if you haven't read it already. You seem to be doing something
quite unusual, so if you can give some more details about what your real
goal is, someone might have a better answer.

Simon

No comments:

Post a Comment