Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: kloskak w Marzec 29, 2019, 11:39:04

Tytuł: Polecenie UPDATE a bezpieczeństwo struktury
Wiadomość wysłana przez: kloskak w Marzec 29, 2019, 11:39:04
Witam,

Chciałbym aktualizować ceny w subiekcie za pośrednictwem exela. Wpadłem na pomysł by w exelu generować zapytania UPDATE, wklejać je do SQL Managmenta. Każdy wiersz w exelu tworzy swojego UPDATEa o odpowiednim ID. Czy takie rozwiązanie jest względnie bezpieczne. Chodzi mi dokładnie o poniższy kod:
UPDATE
tw_Cena
SET
tc_CenaNetto1 = '104.20',
tc_CenaBrutto1 = '128.16'

WHERE
tc_IdTowar = '1';

UPDATE
tw_Cena
SET
tc_CenaNetto1 = '40',
tc_CenaBrutto1 = '49.2'

WHERE
tc_IdTowar = '2';

Pozdrawiam,
Tytuł: Odp: Polecenie UPDATE a bezpieczeństwo struktury
Wiadomość wysłana przez: yemet w Marzec 29, 2019, 12:05:13
Na pewno nie będzie bezpieczne póki zamiast integerów i money będziesz podawał stringi.

Wypadałoby jeszcze zaktualizować pozostałe pola typu zysk, narzut, marża etc.

Zrób kopię bazy i potestuj sobie :)

Tytuł: Odp: Polecenie UPDATE a bezpieczeństwo struktury
Wiadomość wysłana przez: kloskak w Marzec 29, 2019, 15:16:39
Dzięki, a to nie jest tak że to baza narzuca typ na money?
Jeśli zrobić tak:
UPDATE
tw_Cena
SET
tc_CenaNetto1 = 't',
tc_CenaBrutto1 = '140.10'

WHERE
tc_IdTowar = '5';

Dostajesz błąd:
Cannot convert a char value to money. The char value has incorrect syntax.
Jak Twoim zdaniem powinno wyglądać to zapytanie?
Tytuł: Odp: Polecenie UPDATE a bezpieczeństwo struktury
Wiadomość wysłana przez: candy w Marzec 29, 2019, 15:19:57
Nie zrozumiałeś.
Skoro pole jest typu money to nie piszesz
SET tc_CenaNetto1 = '104.20'tylko
SET tc_CenaNetto1 = 104.20
'102.20' to ciąg znaków, a nie liczba
Tytuł: Odp: Polecenie UPDATE a bezpieczeństwo struktury
Wiadomość wysłana przez: kloskak w Marzec 29, 2019, 15:23:11
Dzięki
Tytuł: Odp: Polecenie UPDATE a bezpieczeństwo struktury
Wiadomość wysłana przez: yemet w Marzec 29, 2019, 15:26:20
Serwer sobie po cichu skonwertuje (tzw. implicit conversion) tam gdzie może stringi na integery czy money ale po co ryzykować, że ci jakiś potworek wyjdzie?