Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Datentypwandlung bei Übergabe von Variablken an 'Select' (https://www.delphipraxis.net/214953-datentypwandlung-bei-uebergabe-von-variablken-select.html)

BergLoewe 10. Apr 2024 17:22

Datenbank: Interbase • Version: XE7 • Zugriff über: FD

Datentypwandlung bei Übergabe von Variablken an 'Select'
 
Hallo,


ich habe mich soweit durchgekämpft, dass ich ein SQL-Statement prinzipiell soweit hinbekommen habe, dass es funktioniert. Außer in folgendem speziellen Fall:
Code:
  CreditorsSaerchTable.SQL.Text :='SELECT NAME1 FROM CREDITORS '+
                                  'WHERE IDCREDITORS = :SuchID';
  CreditorsSaerchTable.ParamByName('SuchID').AsInteger:= StrToInt(ADBLUCBCreditors.Text);
  CreditorsSaerchTable.Open;
Das Feld "IDCREDITORS" ist ein Integer. Jetzt kommt -aber erst zur Laufzeit- aber ein Fehler, "Variante des Typs(String) konnte nicht in Typ(Int64) konvertiert werden.

Gibt's da was anderes, als StrToInt für?

Papaschlumpf73 10. Apr 2024 18:48

AW: Datentypwandlung bei Übergabe von Variablken an 'Select'
 
Gelöscht

himitsu 10. Apr 2024 19:47

AW: Datentypwandlung bei Übergabe von Variablken an 'Select'
 
Warum ist bei dem Edit nicht NumbersOnly aktiviert worden?


Dann ginge auch
Delphi-Quellcode:
CreditorsSaerchTable.ParamByName('SuchID').AsString := ADBLUCBCreditors.Text;
oder
Delphi-Quellcode:
.Value :=

Im Postgres würde ich
Delphi-Quellcode:
WHERE IDCREDITORS = :SuchID::INT
machen, alle anderen dürfen sich mit CAST rumärgern, falls sie unbedingt nochmal checken lassen wollen.

haentschman 11. Apr 2024 05:28

AW: Datentypwandlung bei Übergabe von Variablken an 'Select'
 
Was steht denn in
Delphi-Quellcode:
ADBLUCBCreditors.Text
im Fehlerfalle drin? Ich tippe die Meldung kommt aus StrToInt...:zwinker:

Wenn du nicht "NumbersOnly" haben willst...mit http://docwiki.embarcadero.com/Libra...ls.StrToIntDef hast du im Fehlerfalle einen Standardwert.

Jasocul 11. Apr 2024 06:33

AW: Datentypwandlung bei Übergabe von Variablken an 'Select'
 
Zitat:

Zitat von BergLoewe (Beitrag 1535598)
Gibt's da was anderes, als StrToInt für?

Ja: StrToIntDef.
Ob das in deiner Situation sinnvoll ist, musst du selbst einschätzen. Ich würde eher dafür sorgen, dass nur Integer-Werte dort ankommen. Mit StrToIntDef kannst du bei unzulässigen Inhalten einen Default vorgeben (z.B. -1). Das führt dann vermutlich beim SQL zu einem leeren Ergegbnis, was der Anwender gegebenenfalls falsch interpretiert.

DeddyH 11. Apr 2024 06:40

AW: Datentypwandlung bei Übergabe von Variablken an 'Select'
 
Es gibt auch noch TryStrToInt, damit kann man schon im Vorfeld prüfen, ob der String eine gültige Zahl enthält.

BergLoewe 11. Apr 2024 08:27

AW: Datentypwandlung bei Übergabe von Variablken an 'Select'
 
Moin,

ich bin halt doch ein bißchen älter.
Also, die Fehlermeldung kam gar nicht vom Select-Statement, sondern aus eine anderen Zeile und dort war der Fehler glockenklar ersichtlich.


Dennoch vielen Dank für die Unterstützung!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 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