Avatar billede kennethv Nybegynder
03. august 2009 - 11:23 Der er 9 kommentarer og
1 løsning

Datatype problemer

with Query do
begin
  SQL.Clear;
  SQL.Add('Update StaffLeftCompany');
  SQL.Add('Set DateOfITUpdate = :DateOfITUpdate,');
  SQL.Add(' reminder = reminder + 1 ');
  SQL.Add('Where SecurityCode = :SecurityCode');
  Parameters.ParamByName('DateOfITUpdate').Value := DateOf(now);
  Parameters.ParamByName('SecurityCode').Value := ADOQuery1.FieldByName('SECURITYCODE').AsString;
  Prepared := true;
  ExecSQL;
end;
finally
  Query.Free;
end;

"The data type ntext and ntext are incompatible in the equal to operator"

Min SECURITYCODE har datatype: ntext

den havde før nvarchar(max) og der havde jeg så fejlen:

"The data type nvarchar(max) and ntext are incompatible in the equal to operator"
Avatar billede hrc Mester
03. august 2009 - 12:11 #1
Hvilken Delphi-version bruger du?
Avatar billede kennethv Nybegynder
03. august 2009 - 12:28 #2
Version 2005.

Jeg fik lavet min datatype om til nvarchar(50) så nu virker det.
Avatar billede arne_v Ekspert
03. august 2009 - 13:00 #3
NTEXT er til op til 1 milliard tegn i unicode tekst.

NVARCHAR er til op til 4000 tegn.

NVARCHAR(MAX) svarer til NTEXT, men det ignorerer vi lige.

Så du skal kun bruge NTEXT hvis du ved at du kan få brug for mere end 4000 tegn.

Og da det lyder som et password felt, så er det næppe tilfældet.
Avatar billede kennethv Nybegynder
03. august 2009 - 13:33 #4
Så hvis det er nvarchar(50) er det kun 50 tegn?
Findes der en boolean datatype i SQL db?
Avatar billede arne_v Ekspert
03. august 2009 - 17:19 #5
nvarchar(50) betyder max. 50 tegn - unicode tegn d.v.s. med support for alle mulige sprog.

Nyere SQLServer har type BIT som kan bruges. Ved ældre versioner skal du bruge TINYINT.
Avatar billede hrc Mester
04. august 2009 - 08:23 #6
Bit'en har været der noget længere end nvarchar(max) der kom med SQL-server 2005. NVarChar' og VarChar'ene betyder at der allokerer den plads som der er brug for, men max. 50 tegn. En Char(50) derimod, afsætter 50 tegn i databasen.
Avatar billede arne_v Ekspert
04. august 2009 - 22:18 #7
NVARCHAR(MAX) er ny i SQLServer 2005.

Jeg troede faktisk at BIT også var nyere, men den fandtes tilsyneladende allerede i version 6.5 som er over 12 år gammel, så det er vist rimeligt at antage at den er der.
Avatar billede kennethv Nybegynder
03. oktober 2012 - 20:49 #8
Er det lukketid?
Avatar billede arne_v Ekspert
03. oktober 2012 - 20:57 #9
var det en opfordring til svar?

:-)
Avatar billede kennethv Nybegynder
04. oktober 2012 - 08:29 #10
Jeps. Det var det. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester