AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FibPLus Fehlermeldung...? TFIBWideStringField
Thema durchsuchen
Ansicht
Themen-Optionen

FibPLus Fehlermeldung...? TFIBWideStringField

Ein Thema von manfred_h · begonnen am 22. Mai 2014 · letzter Beitrag vom 28. Mai 2014
Antwort Antwort
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#1

FibPLus Fehlermeldung...? TFIBWideStringField

  Alt 22. Mai 2014, 15:56
Datenbank: Firebird • Version: 2.5.2 • Zugriff über: FibPlus 7.51.2676
Hallo zusammen

In meiner Anwendung die mit Delphi 2006 entwickelt wurde und nun mit XE4 weiterentwickelt wird habe ich seit neuestem eine spezielle Fehlermeldung.
Bin schon länger am rumsuchen finde aber die Stelle einfach nicht.
Der Fehler tritt auf wenn ich einfach in die Dateneingabe wechsle und einen wert in der Datenbank lösche, beim schliesen des Fenster erscheint dann die Fehlermeldung.
Es wird folgendes aufgerufen:
Code:
procedure Tfrm_member.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DM.DB_Gideons.Commit;
end;
Bin für jede Hilfe dankbar.

Habe jetzt EurekaLog 7.0.7.1 installiert und die Fehlermeldung lautet:
( Die Logdatei ist auch noch angehängt )
Zitat:
Exception:
------------------------------------------------------------------------------------------------------------
2.2 Address: 0040B7BE
2.5 Type : EInvalidPointer
2.6 Message: Application made attempt to free invalid or unknown memory block: $0BB4BCC8 DATA [?] 0 bytes.
2.7 ID : C4820000
2.11 Sent : 0
Zitat:
Call Stack Information:
-------------------------------------------------------------------------------------------------------------------------------------------------------
|Methods |Details|Stack |Address |Module |Offset |Unit |Class |Procedure/Method |Line |
-------------------------------------------------------------------------------------------------------------------------------------------------------
|*Exception Thread: ID=11436; Parent=0; Priority=0 |
|Class=; Name=MAIN |
|DeadLock=0; Wait Chain= |
|Comment= |
|-----------------------------------------------------------------------------------------------------------------------------------------------------|
|7FFFFFFE|04 |00000000|0040B7BE|Gideons_Admin.exe|0000B7BE|Syst em | |_UStrAsg |23239[37] |
|00000020|04 |0018F0B0|008A1D40|Gideons_Admin.exe|004A1D40|FIBD ataSet |TFIBWideStringField|Prepare |2152[16] |
|00000020|04 |0018F0F8|008A17C6|Gideons_Admin.exe|004A17C6|FIBD ataSet |TFIBWideStringField|GetDataToReserveBuffer |2022[4] |
|00000020|04 |0018F108|008A181B|Gideons_Admin.exe|004A181B|FIBD ataSet |TFIBWideStringField|GetAsString |2037[1] |
|00000020|04 |0018F118|00796C1C|Gideons_Admin.exe|00396C1C|Data .DB |TWideStringField |GetText |5937[3] |
|00000020|04 |0018F144|00794670|Gideons_Admin.exe|00394670|Data .DB |TField |GetDisplayText |4909[4] |
|00000020|04 |0018F150|007C3D55|Gideons_Admin.exe|003C3D55|Vcl. DBCtrls |TDBEdit |DataChange |2003[18] |
|00000020|04 |0018F170|007C35F0|Gideons_Admin.exe|003C35F0|Vcl. DBCtrls |TFieldDataLink |RecordChanged |1739[3] |
|00000020|04 |0018FF00|0072952F|Gideons_Admin.exe|0032952F|Vcl. Forms |TApplication |ProcessMessage |10288[23] |
|00000020|04 |0018FF1C|00729572|Gideons_Admin.exe|00329572|Vcl. Forms |TApplication |HandleMessage |10318[1] |
|00000020|04 |0018FF40|007298AD|Gideons_Admin.exe|003298AD|Vcl. Forms |TApplication |Run |10456[26] |
|00000020|04 |0018FF70|00F8425A|Gideons_Admin.exe|00B8425A|Gide ons_Admin| |Initialization |204[112] |
|00000020|03 |0018FFD8|77E49F40|ntdll.dll |00039F40|ntdll | | (possible RtlInitializeExceptionChain+49)| |
-------------------------------------------------------------------------------------------------------------------------------------------------------
Angehängte Dateien
Dateityp: txt EurekaLog 7.0.7.1_log.txt (36,2 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: FibPLus Fehlermeldung...? TFIBWideStringField

  Alt 23. Mai 2014, 06:47
Das sieht ganz nach einem Bug in FibPlus 7.51.2676 aus.
Entweder in TFIBWideStringField.GetDataToReserveBuffer oder in TFIBWideStringField.Prepare müsste man anfangen zu suchen.

Du könntest:
* ein Testprogramm mit Beschreibung und Testdatenbank erstellen und an Devrace schicken
* das unterliegende Datenfeld von nvarchar oder nchar nach varchar oder char ändern (falls du in dem Feld kein Unicode benötigst)
* selber im Sourcecode von TFIBWideStringField auf die Suche gehen
fork me on Github
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: FibPLus Fehlermeldung...? TFIBWideStringField

  Alt 23. Mai 2014, 08:42
Moin sx2008,

in Firebird gibt es keinen NVarChar-Typen wie in MsSQL, sondern nur Char und VarChar. Die gewünschte Zeichenatz wird bei Firebird bereits beim Erstellen der Datenbank (Default-Zeichensatz) festgelegt und kann beim Erstellen eines Feldes in einer Tabelle noch einmal individuell eingestellt werden.
Miniaturansicht angehängter Grafiken
fbnonvarchar.jpg  
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#4

AW: FibPLus Fehlermeldung...? TFIBWideStringField

  Alt 23. Mai 2014, 10:07
Danke schon mal für Eure Antworten
Das sieht ganz nach einem Bug in FibPlus 7.51.2676 aus.
Entweder in TFIBWideStringField.GetDataToReserveBuffer oder in TFIBWideStringField.Prepare müsste man anfangen zu suchen.
In der Anwendung befinden sich mehrere Module ( Member.... ). Das Problem konnte ich bis jetzt nur bei den Member feststellen. Die Anwendung lief bis anhin auch ohne Probleme. Es ist mir nur unklar wo ich suchen soll.
Die Datenbank wurde nicht geändert, diese lief bis jetzt einwandfrei.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: FibPLus Fehlermeldung...? TFIBWideStringField

  Alt 23. Mai 2014, 10:09
Vielleicht steht dort ein falscher Wert in einem Feld.
Markus Kinzler
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#6

AW: FibPLus Fehlermeldung...? TFIBWideStringField

  Alt 23. Mai 2014, 14:58
Vielleicht steht dort ein falscher Wert in einem Feld.
Hallo mkinzler
Du kannst durcaus recht haben, mein Problem ist nur das ich nicht sehe wo ich suchen soll....
Da ich "leider" mit einigen Globalen Variablen arbeite dachte ich schon das dies ein Problem verursachen könnte. Habe jetzt mal Fastmm eingerichtet und erhalte nun dies:
Code:
First chance exception at $7796C42D. Exception class EInvalidPointer with message 'Invalid pointer operation'. Process Gideons_Admin.exe (6636)
Bei CALL_FreeMem bleibt er hängen...
Sory das ich keine genauere stelle geben kann...

Code:
procedure _UStrClr(var S);
{$IFDEF CPUX86}
asm
        { ->   EAX    pointer to str }
        { <-    EAX    pointer to str }

        MOV    EDX,[EAX]                      { fetch str                    }
        TEST   EDX,EDX                        { if nil, nothing to do        }
        JE     @@done
        MOV    dword ptr [EAX],0               { clear str                    }
        MOV    ECX,[EDX-skew].StrRec.refCnt   { fetch refCnt                 }
        DEC    ECX                            { if < 0: literal str          }
        JL     @@done
   LOCK DEC    [EDX-skew].StrRec.refCnt       { threadsafe dec refCount      }
        JNE    @@done
        {$IFDEF ALIGN_STACK}
        SUB    ESP,8
        {$ENDIF ALIGN_STACK}
        PUSH   EAX
        LEA    EAX,[EDX-skew]                 { if refCnt now zero, deallocate}
        CALL   _FreeMem
        POP    EAX
        {$IFDEF ALIGN_STACK}
        ADD    ESP,8
        {$ENDIF ALIGN_STACK}
@@done:
end;
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#7

AW: FibPLus Fehlermeldung...? TFIBWideStringField

  Alt 28. Mai 2014, 11:37
So wie es aussieht sind die Probleme immer wie spezielle.
Nun erhalte ich beim öffnen des Projekts die Fehlermeldung das SMDBGrid nicht gefunden wird....
Code:
Cannot open file "C:\Window\system32\SMDBGrid"
Habe die SMDBGrid auch schon mal neu installiert und der Pfad in Delpfi Options / Library / Selected Platform ( 32 bit )
Code:
C:\Programme_Dev\RAD_Studio\Komponents\scalabium\smcmpnt__22_04_2014\SOURCES
Bin hier ein wenig ratlos....
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz