Toon posts:

[MSSQL] VARCHAR(4000) value via stored procedure

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer een VARCHAR door te geven via een stored procedure.
Het veld staat in MS SQL gedefinieerd als VARCHAR(4000). Ik weet echter niet welk DataTypeEnum value ik moet gebruiken bij het volgende stukje code:
ASP:
1
com.Parameters.Append com.CreateParameter("@opmerkingen", 200, 1, 4000, opmerkingen)


Ik krijg nu (in ASP) de volgende foutmelding:
Microsoft OLE DB Provider for ODBC Drivers error '80040e57'
[Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated.


Heeft iemand een suggestie?

  • SKiLLa
  • Registratie: Februari 2002
  • Niet online

SKiLLa

Byte or nibble a bit ?

Die foutmelding houdt volgens mij gewoon in dat je meer dan 4000 tekens aan data probeert te inserten. Je type 200 is idd. adVarChar en lijkt me correct ...

'Political Correctness is fascism pretending to be good manners.' - George Carlin


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Gaan varchars wel zo ver? Moet je geen long varchar hebben? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Long varchars bestaan niet in MSSQL, varchars hebben een maximumlengte van 8000 karakters.

De waarde in @opmerkingen lijkt inderdaad te lang te zijn.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
De waarde in @opmerkingen is welgeteld 577 karakters...

Wellicht is er een alternatief? Bijvoorbeeld door TEXT te gebruiken ipv VARCHAR(4000)?
Alleen dan zou ik een ander DataTypeEnum moeten gebruiken (welke?)...

Verwijderd

Topicstarter
-NMe- schreef op woensdag 31 januari 2007 @ 14:48:
Gaan varchars wel zo ver? Moet je geen long varchar hebben? :)
Ook DataTypeEnum 201 (adLongVarChar) werkt niet trouwens...

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

Wat zit er in opmerkingen? Zit daar toevalligerwijs ook Unicode in?

Zelf ook een aantal keer op mijn bek gegaan met VarChar. Vanaf die valpartijen definieer ik dit soort zaken altijd als nVarChar (adVarWChar)

Edit: Bedenk me nu net dat die dan niet met een truncated melding zou moeten komen imo.

[ Voor 17% gewijzigd door TeeDee op 31-01-2007 15:37 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Het is inderdaad iets om rekening mee te houden.
Maar het heeft geen effect op die truncated melding.

Ik ben er inmiddels achter dat ik tot 250 karakters kan inserten. Zodra ik er > 250 insert krijg ik de truncated melding...

Moet ik het misschien toch zoeken in een alternatief voor de DataTypeEnum waarde (die ik getest heb op 200, 201, 202, ?

Ik zal 't sowieso eens proberen door in de database VARCHAR(4000) om te zetten naar TEXT en als DataTypeEnum 203 te gebruiken...

Verwijderd

Topicstarter
Ook met VARCHAR(4000) veranderd naar TEXT en met de volgende code:
ASP:
1
com.Parameters.Append com.CreateParameter("@opmerkingen", 203, 1, 10000, opmerkingen)

krijg ik de foutmelding:
[Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated.... :(

...help?

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Kan je eens de SQL Server Profiler aanzwengelen, en kijken wat er naar de DB gestuurd wordt ?

https://fgheysels.github.io/


  • __fred__
  • Registratie: November 2001
  • Laatst online: 29-11 20:34
Is de parameter van je stored procedure ook 4000 karakters. Anders dan pakt ie de default.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
__fred__ schreef op woensdag 31 januari 2007 @ 19:40:
Is de parameter van je stored procedure ook 4000 karakters. Anders dan pakt ie de default.
Dat is het natuurlijk!

De parameter in je stored proc is niet goed gedefinieerd!

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1