Forum Delphi.cz

Databáze => MS SQL => Téma založeno: rob. 23-03-2015, 15:20:40

Název: ADO+SQL+TFieldType vs MSSQL datove typy - nvarchar(max) ad
Přispěvatel: rob. 23-03-2015, 15:20:40
Ahoj,
mam sql dotaz, napr.

adoquery.sql.text:='select * from nejakatabulka where udajxy=:pudaj';
adoquery.parameters.parambyname('pudaj').datatype:=ftstring;
adoquery.parameters.parambyname('pudaj').value:=nejakylabel.caption;
adoquery.open hodi chybu
"the datatypes nvarchar(max) and text are incompatibile in the equal operator"

coz sice chapu, ze porovnavam vpodstate hrusky s jabkama (v databazi je dane pole typu nvarchar coz neni tak docela delphi string...) ale pak mi neni jasne jake tfildtype je pro sql server ekvivalentem nvarcharu...
ftmemo ? ne, ftwidestring ? ne, proste z tech co jsou v helpu zadne takze pokud to takto chci vyspecifikovat v parametrech tak co ?
neco jsem vygooglil, jako convert v sql ale moudry z toho nejsem, existuje nejake ciste reseni? Dekuji za rady.
Název: Re:ADO+SQL+TFieldType vs MSSQL datove typy - nvarchar(max) ad
Přispěvatel: pepak 23-03-2015, 15:38:00
Nebude stačit jen tomu parametru nastavit i maximální velikost, ideálně stejnou, jako je v databázi?
Název: Re:ADO+SQL+TFieldType vs MSSQL datove typy - nvarchar(max) ad
Přispěvatel: Radek Červinka 23-03-2015, 15:57:22
Podle všeho je to omezení MS SQL.
Kód: [Vybrat]
Comparison operators can be used on all expressions except expressions of the text, ntext, or image data types.

Máš použít prý LIKE.
Nebo něco jako convert(nvarchar(max), text) = :pudaj

Kdyz zadas do google the datatypes nvarchar(max) and text are incompatibile in the equal operator, tak ti to hodi x výsledků, s řešením s LIKE
Název: Re:ADO+SQL+TFieldType vs MSSQL datove typy - nvarchar(max) ad
Přispěvatel: rob. 23-03-2015, 18:18:34
s like to funguje, super, to by me nenapadlo a to s convertem jsem v google nasel a neprislo mi to moc elegantni spise mi pripadlo divny, ze k nejzakladnejsimu ze zakladnich datovych typu sql serveru neexistuje ekvivalent v TFieldType. Kazdopadne vyreseno, vsem diky moc.
Název: Re:ADO+SQL+TFieldType vs MSSQL datove typy - nvarchar(max) ad
Přispěvatel: Mi.Chal. 23-03-2015, 22:54:02
s like to funguje, super, to by me nenapadlo a to s convertem jsem v google nasel a neprislo mi to moc elegantni spise mi pripadlo divny, ze k nejzakladnejsimu ze zakladnich datovych typu sql serveru neexistuje ekvivalent v TFieldType. Kazdopadne vyreseno, vsem diky moc.

v db to máš jako co? text nebo ten varchar(max). S tím by to porovnání jít mělo.