[MSSQL] String or binary data would be truncated.*

Pagina: 1
Acties:
  • 124 views sinds 30-01-2008
  • Reageer

  • barteke
  • Registratie: September 2002
  • Laatst online: 25-06-2023
Hoi,

Hoe is het mogelijk, dat als ik via een en hetzelfde formulier data invoer, dat allemaal perfect gaat en vervolgens bij het updaten het formulier (met exact dezelfde data) me verbaasd achterlaat met de volgende foutmelding:

"Microsoft OLE DB Provider for SQL Server error '80040e57'

String or binary data would be truncated."

Ik weet wat die fout betekend, maar het punt is dat je hem helemaal niet zou moeten krijgen. Ik heb de query op het scherm geprint en in queryanalyser werkt hij gewoon goed. Ook ben ik er toch echt zeker van dat de veldlengtes van de doeltabel groot genoeg zijn. Immers, bij een Insert gaat het wel goed!

dit is de sqlstring

SQL:
1
UPDATE bisAgendapunt SET OnderwerpKort='a', Vergaderingcode='RVB_2005-12-06', Onderwerp='d', VergaderingID='[2990]', BeginTijdstip='10:00', Volgorde=1.00, custfield001='[0]', Divisie='[5]', ExtraDeelnemers='[4][10][17]', Besluit='dfsdfsdfsdfdsfdsd' ,useable=1 ,dateContentChanged='2006-01-25 15:39:04', UIDContentChanged =1 WHERE AgendapuntID=5252


Dit is de structuur van de tabel:

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
CREATE TABLE [dbo].[bisAgendapunt] (
    [AgendapuntID] [int] IDENTITY (1, 1) NOT NULL ,
    [VergaderingID] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Vergaderingcode] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [DatumVergadering] [datetime] NULL ,
    [HoofdAgendapunt] [int] NULL ,
    [OnderwerpKort] [nvarchar] (512) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Onderwerp] [nvarchar] (512) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [BeginTijdstip] [nvarchar] (16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Chronologisch] [bit] NULL ,
    [SorterenOpDivisie] [bit] NULL ,
    [Volgorde] [int] NULL ,
    [Divisie] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [ExtraDeelnemers] [nvarchar] (512) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Besluit] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [custfield001] [varchar] (512) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [useable] [bit] NULL ,
    [tableID] [int] NULL ,
    [counter] [int] NULL ,
    [ActieOnderwerp] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [Actietekst] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [ActieDeelnemer] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [ActieDatumGereed] [datetime] NULL ,
    [ActieGereed] [bit] NULL ,
    [ActieToelichting] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [sort] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [dateContentCreated] [datetime] NULL ,
    [dateContentChanged] [datetime] NULL ,
    [UIDContentCreated] [int] NULL ,
    [UIDContentChanged] [int] NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


Iemand een idee?

I am a rock, I am an Island, and a rock feels no pain and an Island never cries


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:05
Ik denk dat het te maken heeft met die datetime velden.
Je zet er nl. strings in (hence de quotes).

Probeer dus eens dit :
code:
1
2
3
update tabel
 set datumveld = convert(datetime, '25/1/2006', 103)
where..

bv.
Zorg er wel voor dat je de goede style gebruikt (3de argument van de convert method). Check de books online voor de verschillende mogelijkheden.

Als je die query opbouwt vanuit een programma, maak dan gebruik van parametrized queries.

https://fgheysels.github.io/


  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

wat heb je zelf al gedaan om het probleem te verhelpen?

eerste hit in google op foutcode.
There may be another reason for this symptom, if you are seeing this error from ASP but do not see it in native tools; for example, Query Analyzer. You can alleviate this by making SET database options consistent. see KB #255765 for more information

  • barteke
  • Registratie: September 2002
  • Laatst online: 25-06-2023
CaptBiele schreef op woensdag 25 januari 2006 @ 15:58:
wat heb je zelf al gedaan om het probleem te verhelpen?

eerste hit in google op foutcode.


[...]
Ja, dat had ik al gezien ja. Maar dat levert toch nog geen verklaring voor m'n probleem?

I am a rock, I am an Island, and a rock feels no pain and an Island never cries


  • barteke
  • Registratie: September 2002
  • Laatst online: 25-06-2023
whoami schreef op woensdag 25 januari 2006 @ 15:56:
Ik denk dat het te maken heeft met die datetime velden.
Je zet er nl. strings in (hence de quotes).

Probeer dus eens dit :
code:
1
2
3
update tabel
 set datumveld = convert(datetime, '25/1/2006', 103)
where..

bv.
Zorg er wel voor dat je de goede style gebruikt (3de argument van de convert method). Check de books online voor de verschillende mogelijkheden.

Als je die query opbouwt vanuit een programma, maak dan gebruik van parametrized queries.
Dat kan het volgens mij niet zijn. Het is zo dat het om generieke formulieren gaat, dat veld "dateContentChanged" wordt altijd op dezelfde manier verwerkt en dat werkt verder altijd goed. Het is bij een specifiek formulier dat het niet goed gaat vreemd genoeg, terwijl die dus eigenlijk niet anders zou moeten zijn dan welk formulier binnen de applicatie ook.

I am a rock, I am an Island, and a rock feels no pain and an Island never cries


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:05
barteke schreef op donderdag 26 januari 2006 @ 08:16:
[...]


Dat kan het volgens mij niet zijn. Het is zo dat het om generieke formulieren gaat, dat veld "dateContentChanged" wordt altijd op dezelfde manier verwerkt en dat werkt verder altijd goed. Het is bij een specifiek formulier dat het niet goed gaat vreemd genoeg, terwijl die dus eigenlijk niet anders zou moeten zijn dan welk formulier binnen de applicatie ook.
Dan kan ik enkel zeggen: debug het geval, en kijk eens waarom en waar die error juist optreedt.


Iets anders, waarom sla je een tijdstip op als varchar ?

[ Voor 84% gewijzigd door whoami op 26-01-2006 09:01 ]

https://fgheysels.github.io/


  • barteke
  • Registratie: September 2002
  • Laatst online: 25-06-2023
whoami schreef op donderdag 26 januari 2006 @ 09:01:
[...]


Dan kan ik enkel zeggen: debug het geval, en kijk eens waarom en waar die error juist optreedt.


Iets anders, waarom sla je een tijdstip op als varchar ?
Heb ik gedaan, de sqlstring waar het om gaat heb ik in m'n eerste bericht gepost.

Wat dat varchar veld betreft. Ik ben niet de schepper van dit product. Ik weet niet waarom degene die het gemaakt heeft daarvoor heeft gekozen.

I am a rock, I am an Island, and a rock feels no pain and an Island never cries

Pagina: 1