Avatar billede tblaster Nybegynder
18. august 2003 - 10:19 Der er 3 kommentarer og
1 løsning

Jeg har problemer med at opdater et felt i min ms sql database

Når jeg prøver at opdater et felt i min tabel får jeg følgende:

Cannot create a row of size 8222 which is greater than the allowable maximum of 8060.

Feltet jeg vil opdatere er sat til nvarchar med en længde på 4000. Den tekste jeg prøver at indsætte i feltet er følgende:

<br>&nbsp;</TD>
                <TD width=15 background="Data/Pics/2/Design/folder_54.gif">&nbsp;</TD>
  </tr>
  <tr>
                <TD vAlign=bottom background=Data/Pics/2/Design/folder_28.gif width="8"><IMG
                  height=14 src="Data/Pics/2/Design/folder_46.gif" width=16></TD>
                <TD width=15 background="Data/Pics/2/Design/folder_54.gif">&nbsp;</TD>
  </tr>
  <tr>
 
                <TD width="8" height="13"><IMG height=16 src="Data/Pics/2/Design/folder_55.gif"
                width=16></TD>
                <TD background=Data/Pics/2/Design/folder_56.gif width="28" height="13">&nbsp;</TD>
                <TD background=Data/Pics/2/Design/folder_56.gif width="77" height="16">&nbsp;</TD>
                <TD background=Data/Pics/2/Design/folder_62.gif width="41" height="16"><IMG height=16
                  src="Data/Pics/2/Design/folder_58.gif" width=16></TD>
                <TD background=Data/Pics/2/Design/folder_62.gif colSpan=4 width="174" height="16"><IMG
                  height=16 src="Data/Pics/2/Design/folder_62.gif" width=5></TD>
                <TD width="15" height="16"><IMG height=16 src="Data/Pics/2/Design/folder_63.gif"
                width=14></TD>
             
  </tr>
  </table>

Jeg opdater vha. følgende:
sql= "SELECT DesignBund FROM System WHERE SystemID = 2"
Conn.execute("UPDATE System SET DesignBund = '" & request.form("Tekst") & "' Where SystemID = 2")
Avatar billede tblaster Nybegynder
18. august 2003 - 10:21 #1
Hvis jeg ændre feltet til text så kan jeg fint opdater uden at få en fejl. Men jeg kan ikke se hvorfor den melder at jeg smider for meget ind i feltet. Så meget tekst er der jo heller ikke. Skal jeg virklig ændre mine nvarchar felter til text felter?
Avatar billede pierrehusted Nybegynder
18. august 2003 - 10:23 #2
Cannot create a row of size 8222 which is greater than the allowable maximum of 8060.


Det er fordi der ialt i alle felterne i posten er mere end 8060 tegn. Det kan SQL-server ikke håndtere.

En måde at omgå det er at ændre et af felterne teksten til et TEXT felt. Det vil gøre at der er masser af plads (nogle millioner tegns plads i feltet).
Men et TEXT felt giver så nogle andre problemer - især i forbindelse med IIS.
Avatar billede tblaster Nybegynder
18. august 2003 - 10:26 #3
Det er da latterligt at det er i alle felterne. Nå men så må jeg jo bare arbejde med et text felt ...

De problemer du omtaler hvad er det for nogle problemer? Nogle alvorlige?
Avatar billede pierrehusted Nybegynder
18. august 2003 - 10:32 #4
Ved nu ikke om det er latterligt - det er jo ikke for at genere dig, det er nu engang bare sådan SQL-Server er bygget.


Når du SELECTer TEXT felter, så skal du altid huske at have dem til sidst i SELECT sætningen.
D.v.s. bruger du SELECT *, så skal felterne ligge til sidst i tabellen.

Hvis du har flere TEXT felter i en SELECT, så skal du bruge dem i den rækkefølge de står i SELECT sætningen.
D.v.s. hvis du har en sætning der hedder: "SELECT felt1, felt2, text_felt1, text_felt1 FROM tabel", så skal du tage data fra text_felt1 før du tager data fra text_felt2.

Når du skal bruge data fra et TEXT felt, så bør du hente dataene over i en variabel og arbejde videre med dataene derfra.

Overholder du ikke de regler, så får du kun sjældent data i felterne.
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
Computerworld tilbyder specialiserede kurser i database-management

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