Hello!
In the moment I can not reproduce the problem with a small sample.
I do not understand why.
I know that the problem occur when I post the data to the database.
When I add Messageboxes into the functions for the BeforePost and AfterPost Event of the TIBCQuery the programm shows only the BeforePost-Message.
This happens when I post the data with the nbPost-Button of the TDBNavigator component as well as when I post the data directly with TIBCQuery->Post().
In the small sample everything works but I can not see a difference between the sample and my "big" application.
I have used the madExcept runtime debugging system (
http://www.madshi.net/) to get the following information:
madExcept version : 3.0e
callstack crc : $51f3d4ba, $8ff66fbe, $8ff66fbe
exception number : 1
exception class : EVariantBadVarTypeError
exception message : Ungültiger Variant-Typ. (Invalid Variant Type)
main thread ($514):
51f3d4ba +0ba rtl100.bpl
51f3d658 +004 rtl100.bpl Variants VarResultCheck
51f3de6b +03b rtl100.bpl Variants @VarCopy
5233e432 +012 dbrtl100.bpl Db TParam.GetAsVariant
0052c2a2 +03e akdChemDB.exe Dbaccess TDAParam.GetAsVariant
005de6d5 +031 akdChemDB.exe Ibc TIBCParam.GetAsVariant
005e0967 +25b akdChemDB.exe Ibc TIBCSQL.WriteParams
0052dcbd +139 akdChemDB.exe Dbaccess TCustomDADataSet.Execute
0053ba75 +069 akdChemDB.exe Dbaccess TDBAccessUtils.Execute
00530350 +124 akdChemDB.exe Dbaccess TCustomDADataSet.UpdateExecute
005e3059 +009 akdChemDB.exe Ibc TCustomIBCDataSet.UpdateExecute
00532139 +1f9 akdChemDB.exe Dbaccess TCustomDADataSet.PerformSQL
0052f921 +011 akdChemDB.exe Dbaccess TCustomDADataSet.PerformAppend
005e5529 +149 akdChemDB.exe Ibc TCustomIBCDataSet.PerformAppend
005e6234 +000 akdChemDB.exe Ibc TCustomIBCQuery.PerformAppend
00516555 +041 akdChemDB.exe Memds TMemDataSet.DoPerformAppend
0051e031 +00d akdChemDB.exe Memdata TData.InternalAppend
00522c36 +012 akdChemDB.exe Memdata TMemData.InsertRecord
0051629d +0c1 akdChemDB.exe Memds TMemDataSet.InternalPost
0052f14c +034 akdChemDB.exe Dbaccess TCustomDADataSet.InternalPost
523421fd +029 dbrtl100.bpl Db TDataSet.CheckOperation
52341d14 +048 dbrtl100.bpl Db TDataSet.Post
52342849 +041 dbrtl100.bpl Db TDataSet.CheckBrowseMode
52341f75 +005 dbrtl100.bpl Db TDataSet.BeginInsertAppend
52341bd5 +019 dbrtl100.bpl Db TDataSet.Insert
528400d4 +0c8 vcldb100.bpl Dbctrls TDBNavigator.BtnClick
5283ff42 +00e vcldb100.bpl Dbctrls TDBNavigator.ClickHandler
52058f40 +064 vcl100.bpl Controls TControl.Click
5207f510 +000 vcl100.bpl Buttons TSpeedButton.Click
5207f4f9 +0e9 vcl100.bpl Buttons TSpeedButton.MouseUp
52840688 +018 vcldb100.bpl Dbctrls TNavButton.MouseUp
52059344 +02c vcl100.bpl Controls TControl.DoMouseUp
520593c6 +076 vcl100.bpl Controls TControl.WMLButtonUp
52058a3b +2bb vcl100.bpl Controls TControl.WndProc
5205e570 +01c vcl100.bpl Controls TWinControl.WMNCHitTest
52058a3b +2bb vcl100.bpl Controls TControl.WndProc
5205ca19 +499 vcl100.bpl Controls TWinControl.WndProc
520586c8 +024 vcl100.bpl Controls TControl.Perform
5205c56d +0a1 vcl100.bpl Controls TWinControl.IsControlMouseMsg
5205c8d3 +353 vcl100.bpl Controls TWinControl.WndProc
5205c1a4 +02c vcl100.bpl Controls TWinControl.MainWndProc
77e05b4c +006 USER32.dll DispatchMessageA
520792f4 +0fc vcl100.bpl Forms TApplication.ProcessMessage
5207932e +00a vcl100.bpl Forms TApplication.HandleMessage
5207954e +096 vcl100.bpl Forms TApplication.Run
00402c19 +1b9 akdChemDB.exe akdChemDB.cpp 80 +18 WinMain
00610054 +14c akdChemDB.exe __startup
I understand that the problem has something to do with the GetAsVariant() functions, but I dont know why this functions are used in the program in this situation when data is posted into the databse.
To make sure that the problem has nothing to do with the database or the database fields (the format) I tried to use the real database with the small sample. Everything works.
In the ibdac revision history I found the information that a bug which causes the same exception was fixed in version 2.10.0.10
Maybe the bug is back?
Maybe under under specific conditions?
I hope that somebody has an idea how to solve to problem or to reproduce it for debugging.
Thanks