Delphi, SQL Server a podivná chyba

1. 8. 2014, Vladimír Klaus, přečteno 3151x

Delphi
SQL Server

Při práci v Delphi a napojení na SQL Server databázi přes ADO můžete narazit na zajímavou a zavádějící hlášku:

Project xxxxxxxxx.exe raised exception class EDatabaseError with message 'Sloupec, ve kterém není povolena hodnota Null, nelze na tuto hodnotu nastavit'. 

Toto hlášení ve skutečnosti znamená, že se do pole typu ntext snažím přiřadit prázdný řetězec (což samozřejmě není totéž jako NULL). Bohužel SQL Server se takto chová a je třeba s tím počítat.

Asi nejlepším řešením je místo toho používat nvarchar(max), protože ntext je jednak "deprecated" a druhak - varchar se takto pitomě nechová.