Showing posts with label dataset. Show all posts
Showing posts with label dataset. Show all posts

Tuesday, March 20, 2012

BUG: SQLXML 3.0 attempts to update Timestamp column

When submitting an update gram generated from a dataset containing a table
having a timestamp column, SQLXML 3.0 will generate an UPDATE statement
attempting to set the timestamp column even after the timestamp column is
marked in the XSD with the attribute sql:datatype="timestamp". This of
course results in an error from SQL Server.
If the /diffgr:diffgram/me:DataSet/me:TABLE_NAME/me:TimeStamp node is
present in the diffgram and the
/diffgr:diffgram/diffgr:before/me:TABLE_NAME/me:TimeStamp node is removed.
Then SQLXML attempts to set the value of TimeStamp to the value from the
/diffgr:diffgram/me:DataSet block.
If TimeStamp node is not present in either block, then SQLXML attempts to
set the value of the TimeStamp column to NULL.
I am attempting to remove all but the primary key columns from the
/diffgr:diffgram/diffgr:before block as suggested as a work around by
Microsoft to other bugs and this is clearly not going to work with tables
having TimeStamp columns.
This bug is a showstopper for me and I am going to have to switch to a
different update mechanism.
AND ANOTHER BUG:
SQLXML 3.0 also applies exact constraints to floating point numbers when
generating update statements. This does not work all the time due to the
vagaries of string to floating point representation conversions.Hello Kevin,
Thank you for your feedback, and this has been routed to the proper
channel. In the meantime, I also encourage you submit via the link below
http://lab.msdn.microsoft.com/produ...ck/default.aspx
To be able to choose the updating logic, you may choose to use updategrams
instead of diffgrams:
Updating Data by Using XML Updategrams
<http://msdn.microsoft.com/library/d...n-us/sqlxml3/ht
m/updategram_0i5v.asp>
This lets you choose the updating logic to be sent to SQL server:
Handling Database Concurrency Issues in Updategrams
<http://msdn.microsoft.com/library/d...n-us/sqlxml3/ht
m/updategram_7tir.asp>
You will see that there is a way to use Primary Key and Timestamp (Specify
the timestamp column (if available) in the <before> block.).
Best Regards,
Peter Yang
MCSE2000/2003, MCSA, MCDBA
Microsoft Online Partner Support
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
========================================
=============
This posting is provided "AS IS" with no warranties, and confers no rights.|||I am getting the DiffGram from a changed DataSet. UpdateGram is not an
option given by DataSet.GetChanges.WriteXml.
Does MSoft have a DiffGram to UpdateGram stylesheet laying around somewhere?
My DataSet has over 30 tables having over 1000 columns. At first glance
this DiffGram approach seemed like a miracle: 5 lines of code to perform
the updates using a stylesheet generate by 100 lines of code. Wiring up
data adapters and getting all of that correct is at least another order of
magnitude and possibly 3 orders of magnitude more code. (The generated
dataset code is 86,000 lines).
It looks like I am going to have to see how I can minimally tweak the
generated Adapters that I am not using at this moment to leverage the
generated update code. I hate to do this because all future DB changes are
going to result in a very error-prone code management process.
""privatenews"" <petery@.online.microsoft.com> wrote in message
news:gHQJ9w0bGHA.2240@.TK2MSFTNGXA01.phx.gbl...
> Hello Kevin,
> Thank you for your feedback, and this has been routed to the proper
> channel. In the meantime, I also encourage you submit via the link below
> http://lab.msdn.microsoft.com/produ...ck/default.aspx
> To be able to choose the updating logic, you may choose to use updategrams
> instead of diffgrams:
> Updating Data by Using XML Updategrams
> <[url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sqlxml3/ht[/ur
l]
> m/updategram_0i5v.asp>
> This lets you choose the updating logic to be sent to SQL server:
> Handling Database Concurrency Issues in Updategrams
> <[url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sqlxml3/ht[/ur
l]
> m/updategram_7tir.asp>
> You will see that there is a way to use Primary Key and Timestamp
> ("Specify
> the timestamp column (if available) in the <before> block.").
> Best Regards,
> Peter Yang
> MCSE2000/2003, MCSA, MCDBA
> Microsoft Online Partner Support
> When responding to posts, please "Reply to Group" via your newsreader so
> that others may learn and benefit from your issue.
> ========================================
=============
>
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
>|||Hello Kevin,
Thank you for your comments on this feature. To the best of my knowledge,
there is currently no stylesheet to transform DiffGram to UpdateGram. You
may need to develop your own transform if it is necessary. I think it shall
be future product enhancement and this has been reported to the proper
channel.
Best Regards,
Peter Yang
MCSE2000/2003, MCSA, MCDBA
Microsoft Online Partner Support
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
========================================
=============
This posting is provided "AS IS" with no warranties, and confers no rights.

Saturday, February 25, 2012

Bubble Chart

I would like to show static values on the Y-Axis of a bubble chart, say High,
Medium and Low. When I select the descriptive text in the dataset the
bubbles are not plotted correctly whilst if I retrieve the numeric
equivalent the bubbles are plotted the right way, but the Y-axis will show
numbers and not text.
Any help would be greatly appreciated.I too would like to do this and have not found any help so far. Has anyone
been successful in this? Or does anyone know of good documentation and
specific examples for the bubble chart?
"Adrian Theuma" wrote:
> I would like to show static values on the Y-Axis of a bubble chart, say High,
> Medium and Low. When I select the descriptive text in the dataset the
> bubbles are not plotted correctly whilst if I retrieve the numeric
> equivalent the bubbles are plotted the right way, but the Y-axis will show
> numbers and not text.
> Any help would be greatly appreciated.
>

Thursday, February 16, 2012

Breakup a group

Thanks in advance and Im new to RS.
I have a simple dataset of date records which can span 1 or more weeks up to
a month, I want to break the list up every time a Wed is encountered as this
is the end of a reporting week and some totals need to be printed at bottom
of the list.
I have been fiddling with a table, but dont seem to be quite able to nut it
out, has anyone else done this or similar at all, comments appreciated.
Thanks, Paul
DataSet...
Tue 2/11 $77 $99 $765
wed 3/11 $50 $450 $999
<Need a break here and total of each column)
Thu 4/11 $23 $888 $987
Fri 5/11 $98 $999 $999
Sat 6/11 $33 $ 99 $999
Sun 7/11 $999 $ 99 $999
Mon 8/11 $999 $ 99 $999
Tue 9/11 $999 $ 99 $999
Wed 10/11 $999 $ 99 $999
<Break here and total>
Thu
etc etc etcPlease ignore this, figured it out in the end. Just needed a grouping value uin
my sql and voila table grouped ok as desired.
"PaulQld" wrote:
> Thanks in advance and Im new to RS.
> I have a simple dataset of date records which can span 1 or more weeks up to
> a month, I want to break the list up every time a Wed is encountered as this
> is the end of a reporting week and some totals need to be printed at bottom
> of the list.
> I have been fiddling with a table, but dont seem to be quite able to nut it
> out, has anyone else done this or similar at all, comments appreciated.
> Thanks, Paul
> DataSet...
> Tue 2/11 $77 $99 $765
> wed 3/11 $50 $450 $999
> <Need a break here and total of each column)
> Thu 4/11 $23 $888 $987
> Fri 5/11 $98 $999 $999
> Sat 6/11 $33 $ 99 $999
> Sun 7/11 $999 $ 99 $999
> Mon 8/11 $999 $ 99 $999
> Tue 9/11 $999 $ 99 $999
> Wed 10/11 $999 $ 99 $999
> <Break here and total>
> Thu
> etc etc etc
>

Tuesday, February 14, 2012

Breaking a dataset into chunks

Hey everyone. I'm trying to recreate some Excel reports my company has
been issuing for the last few years using Reporting Services (data is
coming from an Analysis Services cube now). The reports display
information over a retail hierarchy. Here's what I'm trying to do for
one of them: On one report issued for every entity that has children,
there are five columns of space allotted for key measures on each of
the children (and the report needs to expand to the necessary number
of pages for all children to be displayed, up to five per page). Then,
immediately next to it on each page, the same information about the
current entity and its hierarchy parents must be put in on each page.
There would be up to four columns here. At first I tried fitting this
into two matrix controls, but I quickly realized that SSRS will
process the first matrix for all records in its dataset before getting
to the second one, forcing it to start displaying it no sooner than
the last page of the first matrix. If anyone knows a brilliant way to
allow two unlike-sized datasets to be used in two matrices that can
interrupt each other to get data onto a page, by all means let me know
(I'm not holding my breath for that one though).
This brings me to my actual question. The next solution we've come up
with, as much as we don't like it, is assuming a maximum of 25
children for any entity and creating five separate pages, each one
with a matrix that pulls in a maximum of five records. This of course
probably means five datasets, unless I can set up filtering to limit
which rows from the dataset are being used for each control. So, my
question is this: can anyone suggest a good way to either A) break the
dataset into chunks of <=5 records, or B) filter the each page's
control so that it only takes the appropriate <=5 records, without
redisplaying a record that was already displayed on a previous page?
Any help would be MUCH appreciated. Thanks!On Jan 22, 11:41=A0am, adam.schm...@.gmail.com wrote:
> If anyone knows a brilliant way to
> allow two unlike-sized datasets to be used in two matrices that can
> interrupt each other to get data onto a page, by all means let me know
> (I'm not holding my breath for that one though).
If I understand your problem, you could: Put each object into a
Rectangle object, then align the Rectangles to have the same Top edge,
and align the Right edge of the left rectangle to meet the Left edge
of the right rectangle.
> So, my
> question is this: can anyone suggest a good way to either A) break the
> dataset into chunks of <=3D5 records,
If your source data is a SQL Server, then try using the ROW_Number()
OVER ( ORDER BY FIELD ) function in the statement to generate row
numbers. Then, you can group by ( RowNumber - RowNumber Mod 5 ) to
create groups of 5.
> or B) filter the each page's
> control so that it only takes the appropriate <=3D5 records, without
> redisplaying a record that was already displayed on a previous page?
You could create a group as defined in (A), then put the Group in a
List object, then go to the List's properties and check the Page Break
at End. Then put all your display stuff inside the List. There are
probably other ways of doing this.
-- Scott|||Thanks Scott! I got as far as the two rectangles idea and it almost
worked -- there was only one problem. I need to have the same four
columns of information on each page in the right matrix, whereas the
left matrix just needs to expand to the size of the dataset. This is
so that for example a district manager could look at each attribute on
any page of five stores (from the left matrix) and compare it to his
entire district, his districts region, the rest of the stores in the
same brand division, and the entire company's performance (in the
right matrix). Again, five or less stores per page. Since these are
coming from different data sets, I'm having issues getting the two
data sets to repeat the same amount of times and getting the page
breaks to happen in the right places.
This provided a great jumping-off point for me, though, and I have a
hack solution that will work, although it's not great. The second
matrix can simply be replaced by four columns of textboxes, each one
displaying a specific data point. Instead of the "parents" dataset
containing up to four records, I'll need to use four datasets, each
containing up to one. Then the textboxes can display the first value
in each of those datasets for the appropriate field. Each column of
textboxes (or all four) can then be nested in a rectangle and the
rectangle can be set to repeat with the first matrix.
Obviously, this is labor-intensive, and kind of a pain, especially
given some of the formatting constraints that are going to come up.
So... if anyone knows a way to circumvent using 4 columns, 25 text
boxes each, that still allows me to set the RepeatWith property to the
left matrix, I'm all ears.
Thanks!
On Jan 22, 11:00 am, Orne <polysilly...@.yahoo.com> wrote:
> On Jan 22, 11:41 am, adam.schm...@.gmail.com wrote:
> > If anyone knows a brilliant way to
> > allow two unlike-sized datasets to be used in two matrices that can
> > interrupt each other to get data onto a page, by all means let me know
> > (I'm not holding my breath for that one though).
> If I understand your problem, you could: Put each object into a
> Rectangle object, then align the Rectangles to have the same Top edge,
> and align the Right edge of the left rectangle to meet the Left edge
> of the right rectangle.
> > So, my
> > question is this: can anyone suggest a good way to either A) break the
> > dataset into chunks of <=5 records,
> If your source data is a SQL Server, then try using the ROW_Number()
> OVER ( ORDER BY FIELD ) function in the statement to generate row
> numbers. Then, you can group by ( RowNumber - RowNumber Mod 5 ) to
> create groups of 5.
> > or B) filter the each page's
> > control so that it only takes the appropriate <=5 records, without
> > redisplaying a record that was already displayed on a previous page?
> You could create a group as defined in (A), then put the Group in a
> List object, then go to the List's properties and check the Page Break
> at End. Then put all your display stuff inside the List. There are
> probably other ways of doing this.
> -- Scott