webForumDet fria alternativet

Långa texter i SQL-server

5 svar · 972 visningar · startad av Addeladde

AddeladdeMedlem sedan jan. 20013 406 inlägg
#1

vilket fält ska man använda i SQL server när man för in information från asp sidor. Det ska gå att sätta in minst 1000 tecken.

jag använder nu ntext men det verkar inte fungera så bra för jag får felmeddelandet.

Microsoft OLE DB Provider for ODBC Drivers (0x80040E57)
[Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated.
/td/admin/kurser/hantera_kurser.asp, line 132

------------------
Adde

@ndersMedlem sedan juni 200032 969 inlägg
#2

det är lite slöseri att använda text/ntext om man inte måste.

jag hade valt varchar och satt maxstorleken till 8000 tecken.

är du säker på att det är ett ntext-fält som genererar felmeddelandet? hur ser tabellen ut?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>

AddeladdeMedlem sedan jan. 20013 406 inlägg
#3

Du verkar ju vara hejare på ASP och SQL server så det är lika bra att fråga lite gran.

Jag konverterade min access databas till
en SQL-server databas. Då blev alla fält som har kanske max 30 tecken nvarchar. Är detta ett bra val

Min databas har en maxstorlek på 10 mb
Datbasen ska vara för en e-handelssajt med användare på så det kommer nog bli en del rader i databasen.

de fält som ska ha mycket text blev Ntext

hela felmedelandet

Teknisk information (för supportpersonal)

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E57)
[Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated.
/td/admin/kurser/hantera_kurser.asp, line 132

Webbläsare:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Sida:
POST 611 bytes to /td/admin/kurser/hantera_kurser.asp

POST Data:
kursDatum=2001-05-24&kursBokningsdag=2001-05-21&kursTyp=Advanced&kursPris=3000&kursInfo=All+litteratur+%28fyrf%E4rgsbok%2C+fr%E5geh%E4ften%2C+dyktabell%2C+loggbok%2C+tygm%E4rke%2C+dekal%2C+diplom%2C+l . . .

det är när jag skriver för mycket text som felmeddelandet kommer. Om jag bara skriver några ord så fungerar det perfekt.

------------------
Adde

AddeladdeMedlem sedan jan. 20013 406 inlägg
#4

Kollade i databasen det var nvarchar med 50 tecken när jag ändrade det fungerade det.

Lite klantigt av mig själv att inte kolla först

------------------
Adde

@ndersMedlem sedan juni 200032 969 inlägg
#5

jag gillar inte nvarchar och ntext, för de är unicode. :) jag använder alltså alltid varchar / text.

och att fälten är nvarchar säger inte så mycket om du inte berättar för mig hur mycket data som får plats.

skriv ut din sql-fråga med response.write, ge mig den, samt även en ingående förklaring på hur din tabell är uppbyggd.

vad gäller storleken på databasen känns den lite liten. har du mycket disk kan du ju alltid sätta på 'unrestricted filegrowth'. det är i alla fall min rekommendation.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>

AddeladdeMedlem sedan jan. 20013 406 inlägg
#6

Vad är skillnaden på nvarchar och varchar

Du sa något om unicode men förstår inte riktigt det.

IF addKurs <> "" THEN

sqlString = "INSERT INTO kurser " &_
  "( kurs_datum, kurs_bokningsdag, kurs_pris, " &_
  "kurs_typ, kurs_info, " &_
  "kurs_status, kurs_platser ) VALUES ( " &_
  " '" & kursDatum & "', " &_
  " '" & kursBokningsdag & "', " &_
         kursPris & ", " &_
  " '" & kursTyp & "', " &_
  " '" & kursInfo & "', " &_
  " '" & kursStatus & "', " &_
  " '" & kursPlatser & "'   )"

Con.Execute sqlString

%>

Tabbelen består av
datum date
Bokningsdag date
kursPris currency
kursTyp nvarchar
kursInfo nvarchar med 4000 tecken
kursStatus int
kursPlatser int

------------------
Adde

140 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)