Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Interbase currency und sql insert (https://www.delphipraxis.net/212010-interbase-currency-und-sql-insert.html)

tkhandel 1. Dez 2022 21:55

Datenbank: IBLite • Version: 2020 • Zugriff über: delphi 10.4

Interbase currency und sql insert
 
Hallo,

ich möchte Preise aus einer csv Datei in eine IBDatenbank importieren bzw vorhandene
aktualisieren.

Die Datenbankfelder sind als numeric 15.2 angelegt, das SQL-Script sieht folgendermaßen aus:

Update Artikel set EKN = '7,74', VKN = '12,99', VKB = '13,9'
where Artikelnr = '0038'


In der Datenbank stehen die Werte aber dann als Ganzzahl angezeigt also 774, 1299, 1390 usw.

Wo liegt der Fehler? gleiches Projekt mit MSSQL führt zum
gewünschten Ergebnis, da stehe ich auf dem Schlauch

IBExpert 1. Dez 2022 22:47

AW: Interbase currency und sql insert
 
, durch . ersetzen, das komma wird als tausender trenner interpretiert, nicht als dezimal seperator

gmc616 1. Dez 2022 23:22

AW: Interbase currency und sql insert
 
oder aber mit SQL-Parameter arbeiten.
... kurz gegooglet: https://www.delphipraxis.net/152692-...uebergabe.html'

haentschman 2. Dez 2022 06:23

AW: Interbase currency und sql insert
 
Moin...8-)
Zitat:

oder aber mit SQL-Parameter arbeiten
Nein...sondern grundsätzlich! :warn:

harfes 2. Dez 2022 06:37

AW: Interbase currency und sql insert
 
Ich kann haentschman ung gmc616 nur zustimmen: IMMER mit Parametern arbeiten! Auch ich habe früher mit "Value" gearbeitet...weil es so schön einfach war...tja, das rächt sich hin und wieder mal und führt regelmässig zu zeitaufwendigen Suchen nach Fehlern. Es ist zwar ein Tick mehr Arbeit, die Parameter auszuschreiben, aber am Ende gibt es dafür keine Fehlersuche mehr (naja, zumindest nicht an der Stelle...).

Hartmut

Bernhard Geyer 2. Dez 2022 07:36

AW: Interbase currency und sql insert
 
Aus Sicherheitsgründen ist es (fast) zwingend nötig mit SQL Parametern zu arbeiten, da sonst über SQL-Injection und Co. die Gefahr von Angriffen auf das System (Server oder nur Datenabzug/zerstörung) zu groß ist.

Auch würde man (im Firmenumfeld) Probleme bekommen, wenn über die SecurityAnalyse der gesendeten SQL-Befehle (SQL Profiler) sieht und du dann überall nachweisen musst das du die String immer Escapst.

IBExpert 2. Dez 2022 19:20

AW: Interbase currency und sql insert
 
Zitat:

Zitat von haentschman (Beitrag 1515759)
Moin...8-)
Zitat:

oder aber mit SQL-Parameter arbeiten
Nein...sondern grundsätzlich! :warn:

EInspruch, es gibt manchmal wirklich gute gründe auf Parameter zu verzichten.

zB bei Verbindungen zu einem Datenbankserver über eine Leitung mit hoher Latenz,
weil bei jedem param set extra tcp/ip pakete über den draht gehen und damit jeweils
mindestens eine extra ping zeit gebraucht wird.

Für den lokalen Import von dateien oder bei local connections ist das aber meistens korrekt,
das parametrisierte Queries der bessere Weg sind (solange man dabei je nach plattform den
prepare nicht ignoriert).

tkhandel 8. Dez 2022 09:45

AW: Interbase currency und sql insert
 
Danke für eure Antworten das Problem konnte ich mit eurer Hilfe lösen!


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