AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Int64 spinnt oder ich. HILFE!!!!
Thema durchsuchen
Ansicht
Themen-Optionen

Int64 spinnt oder ich. HILFE!!!!

Ein Thema von Papaschlumpf73 · begonnen am 5. Nov 2024 · letzter Beitrag vom 13. Mär 2025
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.631 Beiträge
 
Delphi 12 Athens
 
#1

AW: Int64 spinnt oder ich. HILFE!!!!

  Alt 5. Nov 2024, 17:06
Hast du mal geprüft was das Feld für einen Delphi-Typ hat?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
461 Beiträge
 
Delphi 12 Athens
 
#2

AW: Int64 spinnt oder ich. HILFE!!!!

  Alt 5. Nov 2024, 17:13
Hast du mal geprüft was das Feld für einen Delphi-Typ hat?
Delphi-Quellcode:
if DM.ADOCon.Execute('SELECT CAST(-7978126718202166279 as bigint)').Fields[0].Type_=adBigInt
then Memo1.Lines.Append('Treffer');
Der Feldtyp passt schon...
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
711 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Int64 spinnt oder ich. HILFE!!!!

  Alt 5. Nov 2024, 17:56
adBigInt = 20 = varInt64. Das passt. Der Varianten Converter scheint ja auch zu funktionieren.

Also muss man anstatt direkter Zuweisung, was zu einem internen Cast auf Int64 zu führen scheint, VarToStr nutzen um dann wieder in Int64 zu konvertieren.
Hast Du das mal probiert? Auch wenn es bescheuert ist.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
461 Beiträge
 
Delphi 12 Athens
 
#4

AW: Int64 spinnt oder ich. HILFE!!!!

  Alt 5. Nov 2024, 18:37
adBigInt = 20 = varInt64. Das passt. Der Varianten Converter scheint ja auch zu funktionieren.
Also muss man anstatt direkter Zuweisung, was zu einem internen Cast auf Int64 zu führen scheint, VarToStr nutzen um dann wieder in Int64 zu konvertieren.
Hast Du das mal probiert? Auch wenn es bescheuert ist.
Das ist wirklich bescheuert - aber es funktioniert. Das ist doch kreuzgefährlich, wenn da so ein Murks passiert.
D:=StrToInt64(VarToStr(DM.ADOCon.Execute('SELECT CAST(-7978126718202166279 as bigint)').Fields[0].Value));
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.631 Beiträge
 
Delphi 12 Athens
 
#5

AW: Int64 spinnt oder ich. HILFE!!!!

  Alt 5. Nov 2024, 19:38
Kann man denn im Debugger nicht sehen was passiert?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
711 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Int64 spinnt oder ich. HILFE!!!!

  Alt 6. Nov 2024, 07:54
Ich habe nur Delphi 11 hier. Habe mich ein bisschen durch die Sourcen gegraben. Sieht so aus als wenn es 3 Methoden gibt mit denen intern umgewandelt wird. Interessant wäre es zu sehen was wirklich im fall des Fehlers genommen wird.
Aber, das ist eigentlich ein Fall für Emba, denn egal wie, es sollte immer der gleiche Wert rauskommen.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
461 Beiträge
 
Delphi 12 Athens
 
#7

AW: Int64 spinnt oder ich. HILFE!!!!

  Alt 6. Nov 2024, 09:33
Ich habe nur Delphi 11 hier. Habe mich ein bisschen durch die Sourcen gegraben. Sieht so aus als wenn es 3 Methoden gibt mit denen intern umgewandelt wird. Interessant wäre es zu sehen was wirklich im fall des Fehlers genommen wird.
Aber, das ist eigentlich ein Fall für Emba, denn egal wie, es sollte immer der gleiche Wert rauskommen.
Meine Anwendung wird auch noch mit 11.3 kompiliert. Da kommt derselbe Unsinn raus, wie bei 12.1.
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
461 Beiträge
 
Delphi 12 Athens
 
#8

AW: Int64 spinnt oder ich. HILFE!!!!

  Alt 6. Nov 2024, 09:32
Kann man denn im Debugger nicht sehen was passiert?
In den letzten 30 Jahren habe ich noch nie einen Debugger benutzt. Da müsste ich mich erst mal reinfummeln.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Int64 spinnt oder ich. HILFE!!!!

  Alt 6. Nov 2024, 10:49
Was passiert wenn man AsLargeInt nutzt?

https://docwiki.embarcadero.com/Libr...eld.AsLargeInt
https://docwiki.embarcadero.com/Libr...ta.DB.Largeint
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 06:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz