Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

Invalid Parameter error after 6.0 upgrade (RB Pro)

edited August 2001 in General
Hi,

I upgraded our app to version 6.0 Pro (from 5.0 Pro) and now several of my
reports get Invalid Parameter errors when I try to preview or print them.

When I try to preview, I trace the code in my app (part of a routine to
initialize a custom previewer form}:

ppPreview.Report := MainForm.ppReport;

{ get total number of pages in this report }
ppPreview.LastPage;
PageCount := ppPreview.AbsolutePageNo;
ppPreview.FirstPage;

up until it calls ppPreview.LastPage. On executing that line, it generates
the error. Nothing else in my code has changed, nor have the reports been
changed (they are saved as individual RTM files and loaded at runtime).

Any ideas why this might happen?

Also, one suggestion: It would be great if your newsgroup articles were
also stored in a more "searchable" knowledgebase-type format. With Outlook
Express, I can only search the most recent headers, and only for the subject
line, not the entire message body. If a user posts a message with a subject
like "6.0 Upgrade Problem", my search won't find it if I'm looking for
"Invalid Parameter" in the subjects, even though the original poster may
have had the same problem. A searchable knowledge base would be much easier
to locate specific articles, and may help to reduce duplicate posts. For
example, I always search for newsgroup articles using Google (the former
Deja.com). I never search the usenet using my newsreader for precisely the
same reason. Just my 2 cents...

Thanks,
Vinnie Murdico

Comments

  • edited August 2001
    Interesting additional note on previously mentioned problem (Invalid
    Parameter on existing reports after RB Pro 6.0 upgrade from 5.0):

    I took one of the reports that had this problem (about 3 out of 8), and
    removed the selected Search fields -- no change. Then I removed the
    grouping fields -- no change. Then I removed the Sort fields -- it ran.

    So I closed the report (without saving), reopened the original version,
    duplicated the error again then tried removing just the Sort fields -- it
    ran fine.

    Finally, I closed the report (without saving), reopened the original
    version, duplicated the error again then tried removing the Sort fields and
    re-selecting the same fields again for Sort order - it ran fine.

    I then tried simply opening the original (bad) report, saving it (as a 6.01
    format theoretically), then reopening it and previewing it -- the error
    still appeared, so it wasn't just a matter of converting them first.
    Something in the sort fields is connected to the problem.

    I even compared the "before any changes" SQL code to the "after re-selecting
    the sort fields" SQL code, and it was identical, so the SQL does not appear
    to have changed.

    But it sounds like something does not like the existing internal format of
    the Sort fields or something like that since removing and simply reselecting
    them resolves the error.

    Needless to say, I can't release the product and tell my customers to
    reselect all their sort fields, but I thought this info might help in
    debugging this issue.

    Please let me know as soon as possible if you have any information on this
    problem.

    Thanks,
    Vinnie Murdico
  • edited August 2001
    Vinnie,

    Outlook
    subject

    I don't know what version of OE you uses, (BTW DM isn't MS) but I am pretty
    able to look into the body of all articles in all sections posted from the
    beginning.
    You really should address such an issue to MS.
    I guess the messages are deleted after a couple of days, but this is a
    changeable option of OE.
    (I recommend the use of a real NG reader).

    regards,
    Chris Ueberall;
  • edited August 2001
    Hi Vinnie,

    and

    can you save your reports in ASCII before beeing converted and after the
    recreation of the sorting order, just to see the differences in the
    RTM-file.

    regards,
    Chris Ueberall;
  • edited August 2001
    > I don't know what version of OE you uses, (BTW DM isn't MS) but I am
    pretty

    Hi Chris,

    Here's the issue with searching message bodies:

    There may indeed be an option in OE to download both headers and message
    bodies each time I connect to a news server, although I haven't found it
    yet.

    But let's say there *was* an option to download subject headers and full
    message bodies whenever I connected to a newsgroup. Or, let's say there was
    an option to search within message bodies as well as just headers. Even if
    these options existed, the news reader would then need to download a
    significantly larger amount of info each time I connected to a news server
    or attempted a "full message body" search. It would be forced to download
    every message - both subject and body - before the request could complete,
    even though I may only need the body of one or two messages when all is said
    and done.

    When I had a cable modem, I would probably have opted for such an option if
    it existed. But after relocating, I (like many others) am stuck with 56K
    dial-up. So even if such an option existed in OE, I would probably opt for
    downloading headers only just to save time at each connection to the server.
    Even though most messages are only 1K or 2K, to download 300 messages at a
    time would be something like 300K or 400K on average, which at 56K (which as
    we know is never really 56K - it's more like 42K or 48K if you're lucky
    ), would take at least a minute or two - an eternity in internet browsing
    time (imagine waiting 60 seconds for the page to load each time you browse a
    web page -- ouch!).

    My point was not to say that DM was doing something wrong, and I understand
    "DM isn't MS" (seemed a bit condescending, and I do understand the distinct
    responsibility areas of each company). I honestly just wanted to make a
    suggestion. Perhaps I am using the wrong tools, but I do know that sites
    like Google (deja.com) are very popular for a reason - I think many web
    users do not want to spend the time downloading all messages from all the
    newsgroups they subscribe to and save their entire contents on their hard
    drives. And a lot of people are using OE, regardless of whether it's suited
    to task. Additionally, my experience has been that when I've been at sites
    with searchable knowledgebases, I've found them very helpful and quick to
    use. It also saves me from having to download every message and also from
    having to store hundreds of complete message bodies on my hard drive (for
    each of the many newsgroups I subscribe to), when I may only need to read a
    dozen messages or so.

    I understand that everyone has differing opinions on which tools are good
    and bad, how they should be used, and whether issues like this should be
    dealt with by the vendor or the customer. And I realize that none of these
    opions are "wrong". But my post was just my suggestion and I thought
    perhaps DM would appreciate hearing suggestions from customers and consider
    them. I just felt like after reading your reply that you were angry that I
    had posted such a suggestion, or that you were putting me down for my choice
    of tools. I think I would have phrased the response differently -- somthing
    like, "Thanks for your suggestion. However, we've found that most of our
    users are able to search the newsgroup messages using different newsreaders.
    It may simply be that OE does not support searching into message bodies, or
    that it contains an option to do so that may not be enabled in your
    particular configuration. You may want to check in the MS newsgroups for
    more information about such an option." -- as opposed to "I recommend the
    use of a real NG reader".

    Please understand -- I like DM and their product, and I appreciate the great
    work you guys do and the support you offer. I'm sorry if my suggestion was
    misinterpreted as hostile or derogatory regarding your company or your web
    site.

    Sincerely,
    Vinnie Murdico
  • edited August 2001
    > can you save your reports in ASCII before beeing converted and after the

    Ok, I've done this and the differences are outlined by the FCOMP output
    below. If you would like a complete copy of both before.txt and after.txt,
    just let me know if I should attach them to a post or email them to you
    directly (I know attachments are usually against newsgroup protocols so I
    thought I should ask first).

    I also created a small sample app that uses this RTM file and duplicates the
    error (and then works after reselecting the sort fields). I can send that
    to you guys if that would be helpful in your diagnosis. Again, just let me
    know if I should post it here as an attachment or email them someone (it's a
    ZIP about 24K).

    Thanks,
    Vinnie Murdico

    =================================================
    Comparing files before.txt and after.txt
    ****** before.txt
    PrinterSetup.PaperSize = 1
    Template.FileName = 'E:\Source\Delphi\RBBug\Defects By Customer
    (before).rtm'
    Template.Format = ftASCII
    ****** after.txt
    PrinterSetup.PaperSize = 1
    Template.FileName = 'E:\Source\Delphi\RBBug\Defects By Customer
    (after).rtm'
    Template.Format = ftASCII
    ******

    ****** before.txt
    object daSQL1: TdaSQL
    DatabaseName = 'SWBTRACK'
    DatabaseType = dtParadox
    DataPipelineName = 'plCustomer_Defects'
    ****** after.txt
    object daSQL1: TdaSQL
    DataPipelineName = 'plCustomer_Defects'
    ******

    ****** before.txt
    ' custdef.Defect')
    object TdaField
    Alias = 'cstdef_Product'
    ****** after.txt
    ' custdef.Defect')
    object daField1: TdaField
    Alias = 'cstdef_Product'
    ******

    ****** before.txt
    end
    object TdaField
    Alias = 'cstdef_Release'
    ****** after.txt
    end
    object daField2: TdaField
    Alias = 'cstdef_Release'
    ******

    ****** before.txt
    end
    object TdaField
    Alias = 'cstdef_Program'
    ****** after.txt
    end
    object daField3: TdaField
    Alias = 'cstdef_Program'
    ******

    ****** before.txt
    end
    object TdaField
    Alias = 'cstdef_Defect'
    ****** after.txt
    end
    object daField4: TdaField
    Alias = 'cstdef_Defect'
    ******

    ****** before.txt
    end
    object TdaField
    Alias = 'cstdef_Customer'
    ****** after.txt
    end
    object daField5: TdaField
    Alias = 'cstdef_Customer'
    ******

    ****** before.txt
    end
    object TdaField
    Alias = 'def_Summary'
    ****** after.txt
    end
    object daField6: TdaField
    Alias = 'def_Summary'
    ******

    ****** before.txt
    end
    object TdaField
    ChildType = 2
    Alias = 'cstdef_Customer'
    DisplayWidth = 0
    FieldAlias = 'cstdef_Customer'
    FieldLength = 0
    FieldName = 'Customer'
    TableAlias = 'Customer Defects'
    TableName = '"custdef.DB"'
    TableSQLAlias = 'custdef'
    ****** after.txt
    end
    object daField7: TdaField
    ChildType = 2
    Alias = 'Customer'
    DisplayWidth = 40
    FieldAlias = 'Customer'
    FieldLength = 40
    FieldName = 'Customer'
    SQLFieldName = 'Customer'
    TableAlias = 'Customer Defects'
    TableName = 'custdef.DB'
    TableSQLAlias = 'custdef'
    ******

    ****** before.txt
    end
    object TdaField
    ChildType = 2
    Alias = 'cstdef_Product'
    DisplayWidth = 0
    FieldAlias = 'cstdef_Product'
    FieldLength = 0
    FieldName = 'Product'
    TableAlias = 'Customer Defects'
    TableName = '"custdef.DB"'
    TableSQLAlias = 'custdef'
    ****** after.txt
    end
    object daField8: TdaField
    ChildType = 2
    Alias = 'Product'
    DisplayWidth = 20
    FieldAlias = 'Product'
    FieldLength = 20
    FieldName = 'Product'
    SQLFieldName = 'Product'
    TableAlias = 'Customer Defects'
    TableName = 'custdef.DB'
    TableSQLAlias = 'custdef'
    ******

    ****** before.txt
    end
    object TdaField
    ChildType = 2
    Alias = 'cstdef_Release'
    DisplayWidth = 0
    FieldAlias = 'cstdef_Release'
    FieldLength = 0
    FieldName = 'Release'
    TableAlias = 'Customer Defects'
    TableName = '"custdef.DB"'
    TableSQLAlias = 'custdef'
    ****** after.txt
    end
    object daField9: TdaField
    ChildType = 2
    Alias = 'Release'
    DisplayWidth = 20
    FieldAlias = 'Release'
    FieldLength = 20
    FieldName = 'Release'
    SQLFieldName = 'Release'
    TableAlias = 'Customer Defects'
    TableName = 'custdef.DB'
    TableSQLAlias = 'custdef'
    ******

    ****** before.txt
    end
    object TdaField
    ChildType = 2
    Alias = 'cstdef_Program'
    DisplayWidth = 0
    FieldAlias = 'cstdef_Program'
    FieldLength = 0
    FieldName = 'Program'
    TableAlias = 'Customer Defects'
    TableName = '"custdef.DB"'
    TableSQLAlias = 'custdef'
    ****** after.txt
    end
    object daField10: TdaField
    ChildType = 2
    Alias = 'Program'
    DisplayWidth = 60
    FieldAlias = 'Program'
    FieldLength = 60
    FieldName = 'Program'
    SQLFieldName = 'Program'
    TableAlias = 'Customer Defects'
    TableName = 'custdef.DB'
    TableSQLAlias = 'custdef'
    ******

    ****** before.txt
    end
    object TdaField
    ChildType = 2
    Alias = 'cstdef_Defect'
    DataType = dtDouble
    DisplayWidth = 0
    FieldAlias = 'cstdef_Defect'
    FieldLength = 0
    ****** after.txt
    end
    object daField11: TdaField
    ChildType = 2
    Alias = 'Defect'
    DataType = dtDouble
    DisplayWidth = 10
    FieldAlias = 'Defect'
    FieldLength = 0
    ******

    ****** before.txt
    FieldName = 'Defect'
    TableAlias = 'Customer Defects'
    TableName = '"custdef.DB"'
    TableSQLAlias = 'custdef'
    ****** after.txt
    FieldName = 'Defect'
    SQLFieldName = 'Defect'
    TableAlias = 'Customer Defects'
    TableName = 'custdef.DB'
    TableSQLAlias = 'custdef'
    ******

    ****** before.txt
    end
    object TdaTable
    ChildType = 5
    ****** after.txt
    end
    object daTable1: TdaTable
    ChildType = 5
    ******

    ****** before.txt
    end
    object TdaTable
    ChildType = 5
    ****** after.txt
    end
    object daTable2: TdaTable
    ChildType = 5
    ******

    ****** before.txt
    TableName = 'Defect.DB'
    object TdaTableJoin
    ChildType = 6
    object TdaField
    ChildType = 3
    ****** after.txt
    TableName = 'Defect.DB'
    object daTableJoin1: TdaTableJoin
    ChildType = 6
    object daField13: TdaField
    ChildType = 3
    ******

    ****** before.txt
    end
    object TdaField
    ChildType = 4
    ****** after.txt
    end
    object daField12: TdaField
    ChildType = 4
    ******

    ****** before.txt
    end
    object TdaTableJoin
    ChildType = 6
    object TdaField
    ChildType = 3
    ****** after.txt
    end
    object daTableJoin2: TdaTableJoin
    ChildType = 6
    object daField15: TdaField
    ChildType = 3
    ******

    ****** before.txt
    end
    object TdaField
    ChildType = 4
    ****** after.txt
    end
    object daField14: TdaField
    ChildType = 4
    ******

    ****** before.txt
    end
    object TdaTableJoin
    ChildType = 6
    object TdaField
    ChildType = 3
    ****** after.txt
    end
    object daTableJoin3: TdaTableJoin
    ChildType = 6
    object daField17: TdaField
    ChildType = 3
    ******

    ****** before.txt
    end
    object TdaField
    ChildType = 4
    ****** after.txt
    end
    object daField16: TdaField
    ChildType = 4
    ******

    ****** before.txt
    end
    object TdaTableJoin
    ChildType = 6
    object TdaField
    ChildType = 3
    ****** after.txt
    end
    object daTableJoin4: TdaTableJoin
    ChildType = 6
    object daField19: TdaField
    ChildType = 3
    ******

    ****** before.txt
    end
    object TdaField
    ChildType = 4
    ****** after.txt
    end
    object daField18: TdaField
    ChildType = 4
    ******
  • edited August 2001
    Hi Vinnie,

    can you send the recreation to support@digital-metaphors.com?

    Cheers,
    Chris Ueberall;
  • edited August 2001
    > Hi Vinnie,

    Ok, Chris -- an email with a ZIP file has been sent to the address above. I
    also included a copy of the explanation of the problem/symptoms I noticed (I
    wasn't sure who would be looking at it or if they would know the history of
    the issue). I didn't include the compiled EXE of the project because it was
    over 2 MB, so I just included the project, report and database files.

    Thanks!
    Vinnie Murdico
This discussion has been closed.