Autor Wątek: Polecenie UPDATE a bezpieczeństwo struktury  (Przeczytany 2090 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline kloskak

  • Nowy użytkownik
  • *
  • Wiadomości: 17
  • Reputacja +0/-0
  • Wersja programu: 1.25
Polecenie UPDATE a bezpieczeństwo struktury
« dnia: 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,

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1249
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Polecenie UPDATE a bezpieczeństwo struktury
« Odpowiedź #1 dnia: 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 :)


Offline kloskak

  • Nowy użytkownik
  • *
  • Wiadomości: 17
  • Reputacja +0/-0
  • Wersja programu: 1.25
Odp: Polecenie UPDATE a bezpieczeństwo struktury
« Odpowiedź #2 dnia: 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?

Offline candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4875
  • Reputacja +172/-11
Odp: Polecenie UPDATE a bezpieczeństwo struktury
« Odpowiedź #3 dnia: 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
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Offline kloskak

  • Nowy użytkownik
  • *
  • Wiadomości: 17
  • Reputacja +0/-0
  • Wersja programu: 1.25
Odp: Polecenie UPDATE a bezpieczeństwo struktury
« Odpowiedź #4 dnia: Marzec 29, 2019, 15:23:11 »
Dzięki

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1249
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Polecenie UPDATE a bezpieczeństwo struktury
« Odpowiedź #5 dnia: 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?

Forum Użytkownikow Subiekt GT

Odp: Polecenie UPDATE a bezpieczeństwo struktury
« Odpowiedź #5 dnia: Marzec 29, 2019, 15:26:20 »