Home General

0 (zero) is not a valid timestamp

edited April 2011 in General
Hi all,

Delphi XE, EB 12.03

When I doubleclick on my tppReport Icon I get the error message "0 (zero) is
not a valid timestamp".
I click OK and doubleclick on the report again, and the report opens in
designer completely blank.

I close the report, and doubleclick again, and the report opens in the
designer OK.

Now all the reports works just fine in the designer, until I restart Delphi
XE. The first report I doubleclick on after restart gives me the error
message again.

Do anybody know how can I get rid of this error message?

John

Comments

  • edited April 2011
    Hi John,

    I first suggest upgrading to RB 12.04. Does this happen when opening
    any report? If you create a simple new application, place a TppReport
    on a form and double click it do you still get the error?

    What type of database and connectivity are you using? Any more
    information on your application would be helpful.


    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited April 2011
    Ni Nico,

    I have upgraded to RB 12.04, still same problem.

    The problem happen no matter which report i open first, but it only
    happens once pr. time I open the project.

    If I create a new application and add a TppReport, I don't have the
    problem.

    I am using NexusDB 3.08 database. If I add a new TppReport and
    TppDBPipeline to my existing project, set the datasource and
    doubleclick on the report I get the error message.

    Error report below:

    0 (zero) is not a avalid timestamp.

    [10788CAB]{NexusDB308sd150.bpl}
    Nxsdnativevariantconverter.VariantToNative + $6B
    [10789D10]{NexusDB308sd150.bpl}
    Nxsdnativevariantconverter.VariantToNative + $524
    [107897DF]{NexusDB308sd150.bpl}
    Nxsdnativevariantconverter.VariantToNative + $27
    [11CC7035]{NexusDB308db150.bpl} Nxdb.TnxSqlUpdateObject.suoWriteParams
    + $25D
    [11CCA81D]{NexusDB308db150.bpl} Nxdb.TnxStatementDataSet.sdBuildParams
    + $C5
    [11CC9E14]{NexusDB308db150.bpl} Nxdb.TnxStatementDataSet.dsOpenCursorID
    + $98
    [5071F007]{dbrtl150.bpl} DB.TParam.SetAsVariant (Line 10962, "DB.pas" +
    32) + $5
    [11CC125F]{NexusDB308db150.bpl} Nxdb.TnxDataset.OpenCursor + $14F
    [5071FFD1]{dbrtl150.bpl} DB.TDataSet.InitFieldDefs (Line 11429,
    "DB.pas" + 5) + $7
    [5070E76F]{dbrtl150.bpl} DB.TDefCollection.UpdateDefs (Line 3394,
    "DB.pas" + 6) + $3
    [5070F3A4]{dbrtl150.bpl} DB.TFieldDefs.Update (Line 3772, "DB.pas" + 1)
    + $A
    [50720F86]{dbrtl150.bpl} DB.TDataSet.GetFieldNames (Line 11837,
    "DB.pas" + 5) + $3
    [0FED421F]{rbDB1215.bpl} Ppdbpipe.TppDBPipeline.GetFieldNames + $77
    [0FB10E28]{rbRCL1215.bpl}
    Ppdb.TppCustomDataPipeline.CreateDefaultFields + $8C
    [0FB107E4]{rbRCL1215.bpl} Ppdb.TppCustomDataPipeline.GetFieldCount + $10
    [0FC84CE3]{rbIDE1215.bpl} Pptreevw.TppFieldListBuilder.BuildList + $37
    [0FC8650A]{rbIDE1215.bpl} Pptreevw.TppReportListView.BuildList + $3E
    [0FC8648C]{rbIDE1215.bpl} Pptreevw.TppReportListView.SetCurrentObject +
    $8
    [0FC86FB8]{rbIDE1215.bpl}
    Pptreevw.TppCustomReportExplorer.TreeViewAfterBuildEvent + $30
    [0FC83FF1]{rbIDE1215.bpl} Pptreevw.TppReportTreeView.DoAfterBuildTree +
    $15
    [0FC84122]{rbIDE1215.bpl} Pptreevw.TppReportTreeView.BuildTree + $126
    [0FC83F9A]{rbIDE1215.bpl} Pptreevw.TppReportTreeView.SetReport + $2E
    [0FC86E76]{rbIDE1215.bpl} Pptreevw.TppCustomReportExplorer.SetReport +
    $1E
    [0FD41269]{rbIDE1215.bpl} Pptoolwntbx.TppDataTreeWindow.SetReport + $19
    [0FD18F34]{rbIDE1215.bpl}
    Ppdesigntoolwindow.TppDesignToolWindow.ehSelection_SelectReport + $4
    [0F8C565F]{rbRTL1215.bpl} Ppmulticast.TppMulticastEvent.Notify + $27
    [0FCEED92]{rbIDE1215.bpl}
    Ppdesignselection.TppDesignSelection.SetReport + $AE
    [0FCEEC06]{rbIDE1215.bpl}
    Ppdesignselection.TppDesignSelection.SelectReport + $3E
    [0FD2BADE]{rbIDE1215.bpl}
    Ppdesignlayoutmanager.TppDesignLayoutManager.SetReport + $6E
    [0FD2B859]{rbIDE1215.bpl}
    Ppdesignlayoutmanager.TppDesignLayoutManager.SetComponent + $1D
    [0FD2EC80]{rbIDE1215.bpl} Ppdsgner.TppDesignerWindow.SetReport + $6C
    [0FD2E847]{rbIDE1215.bpl} Ppdsgner.TppDesignerWindow.SetComponent + $43
    [0F843B38]{dclRBP1215.bpl} Ppcdshow.ppShowComponentDesigner + $198
    [0F847FCE]{dclRBP1215.bpl} Ppproped.TppComponentEditor.Edit + $26
    [21086721]{designide150.bpl} ComponentDesigner.TInternalItem.Edit (Line
    7094, "ComponentDesigner.pas" + 1) + $F
    [2104EFEC]{designide150.bpl} Designer.TDesigner.Edit (Line 964,
    "Designer.pas" + 0) + $4
    [21051263]{designide150.bpl} Designer.TDesigner.MouseDown (Line 1658,
    "Designer.pas" + 45) + $6
    [51B191E1]{vcldesigner150.bpl} VCLSurface.TComponentToolWindow.WndProc
    (Line 1327, "VCLSurface.pas" + 16) + $32
    [51B19C7E]{vcldesigner150.bpl} VCLSurface.TContainer.WndProc (Line
    1627, "VCLSurface.pas" + 39) + $6
    [10BF33F1]{cxLibraryD15.bpl}
    Cxcontainer.TcxCustomInnerListBox.CNDrawItem + $695
    [51B19003]{vcldesigner150.bpl}
    VCLSurface.TDesignerToolWindow.MainWndProc (Line 1262, "VCLSurface.pas"
    + 2) + $7
    [500AFA64]{rtl150.bpl } Classes.StdWndProc (Line 13491, "Classes.pas"
    + 8) + $0
    [50278AA6]{vcl150.bpl } Controls.FindControl (Line 3378,
    "Controls.pas" + 6) + $9
    [50358AF7]{vcl150.bpl } Forms.TApplication.ProcessMessage (Line 9760,
    "Forms.pas" + 23) + $1
    [50358B3A]{vcl150.bpl } Forms.TApplication.HandleMessage (Line 9790,
    "Forms.pas" + 1) + $4
    [50358E65]{vcl150.bpl } Forms.TApplication.Run (Line 9927, "Forms.pas"
    + 26) + $3


  • edited April 2011

    According to the call stack the issue occurs in NexusDB.

    The last RB code to execute is TppDBPipeline.GetFieldNames. Start at that
    call and read up.

    TppDBPipeline.GetFieldNames calls TDataSet.GetFieldNames, which calls some
    other TDataSet methods and then eventually Nexus classes are called. The
    last call is Nxsdnativevariantconverter.VariantToNative.

    From the name of the last method, my guess is that you have 0 stored in the
    database and Nexus tries to convert the 0 to a timestamp and raises an
    exception.

    Try creating a test that uses NexusDB but not RB. Create a new application,
    place the NexusDB components on the form and connect a DBGrid. Open the
    dataset.


    -
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited April 2011
    Nard Moseley (Digital Metaphors) wrote:


    I created a new Project, with same database components and the same
    Query. No problems with a standard grid, data shows just fine.

    I added a TppReport and TppDBPipeline to the same dataset, and no
    errors here either.

    Can the problem I see here have anyting to do with Delphi XE compared
    to Delphi 7 from which I upgraded my Project?

    I went from Delphi 7 to XE at the same time as I upgraded to RB 12.03
    and Nexus 3.08.

    --
  • edited April 2011
    I recommend posting this question to NexusDB. From reading the call stack,
    that is where I would focus. Perhaps you moved to a different version of
    NexusDB or perhaps they have a different code base for Delphi XE. It is
    interesting that creating a new dataset does not cause the issue, I would be
    sure to mention that to them and to show them the call stack. Perhaps they
    have heard of this error before.


    -
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
This discussion has been closed.