Příkazy SET při spouštění programu

PříspěvekNapsal: 24.08.2012 10:55
od jiri.dolezal
Helios Orange si při spouštění programu nastavuje následující vlastnosti připojení (session) na MS SQL Serveru:

Kód: Vybrat vše
SET NOCOUNT ON
SET ANSI_NULLS ON
SET ANSI_NULL_DFLT_ON ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET QUOTED_IDENTIFIER ON
SET CURSOR_CLOSE_ON_COMMIT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET IMPLICIT_TRANSACTIONS OFF
SET DATEFORMAT dmy
SET DATEFIRST 1
SET XACT_ABORT ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET DEADLOCK_PRIORITY LOW
SET LOCK_TIMEOUT -1

Aktualizace k verzi: 2.0.2012.0610

Doporučujeme toto nastavení používat také při externích řešeních, která jsou spouštěná mimo program (např. importy z e-shop).

[chyba] Cannot insert the value NULL into column SazbaDPHpro

PříspěvekNapsal: 24.08.2012 11:01
od jiri.dolezal
V externích řešeních, při spouštění uložené procedury hp_VypCenOZPolozek_IDDokladu pro kalkulaci cen dokladu, se můžete setkat s následující chybovou hláškou:

Cannot insert the value NULL into column 'SazbaDPHproPDP', table 'tempdb.dbo.#TabPolozkyOZ...; column does not allow nulls. INSERT fails.

Je to projev odlišného nastavení připojení k MS SQL Serveru oproti výchozímu nastavení programu.

Kód: Vybrat vše
-- vyžaduje Helios
SET ANSI_NULL_DFLT_ON ON

-- pravděpdoobně platné pro externí řešení - spouštěné mimo program
SET ANSI_NULL_DFLT_OFF ON

Formát data

PříspěvekNapsal: 18.07.2018 08:03
od jan.zocek
V Management studiu se nejčastěji zapisují datumy ve formátu „YYYY-MM-DD“, takže třeba '2018-05-18' .
Pokud se ale takový datum pošle do HeO, tak volání skončí s chybou, protože HeO očekává prohozený měsíc a den. Takže správný formát by měl být „YYYY-DD-MM“, takže třeba : '2018-18-05'

Ideální je formát s pomlčkami vůbec nepoužívat a pak platí „YYYYMMDD“, takže třeba '20180518', což funguje správně jak v management studiu, tak v Heliosu.