[ASP] Update query met meer dan 255 chars ?

Pagina: 1
Acties:

  • Tommel
  • Registratie: November 2000
  • Niet online
Ik heb de volgende code:
code:
1
2
3
4
5
6
7
8
SQL_STRING = "UPDATE NIEUWS SET 
Tekst='" & Tekst & "', 
Kop='" & Kop & "',
Plaatser='" & Plaatser & "',
Bron='" & Bron & "',
Actief=" & Actief & " 
WHERE NieuwsId=" & NieuwsId     
DB_CONN.Execute SQL_STRING

Wanneer nu Tekst meer dan 255 chars is krijg ik de volgende foutmelding: Syntax error (missing operator) in query expression
Het database (Access 2000) veld is van het type MEMO dus daar ligt het niet aan.
Kan het zo zijn dat wanneer je niet via een recordset werkt dat de update query max 255 chars aankan ??
Waar ligt dit aan ??

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16:30

Janoz

Moderator Devschuur®

!litemod

hmm .. ik denk dat het stringtype (in ASP dus) dat jij gebruikt neit meer dan 255 chars aankan.. Mischien moet je ff kijken of je ook een ander stringtype oid.. Ik zou het zelf niet weten.. Weet niet zoveel van ASP...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Onno
  • Registratie: Juni 1999
  • Niet online
Zet eens response.write SQL_STRING oid voordat je de query probeert uit te voeren, dan kun je zien of het opbouwen van de query in je script fout gaat, of dat de query goed is, maar je db 'm gewoon niet lust. :)

  • Tommel
  • Registratie: November 2000
  • Niet online
Op dinsdag 18 december 2001 14:20 schreef Onno het volgende:
Zet eens response.write SQL_STRING oid voordat je de query probeert uit te voeren, dan kun je zien of het opbouwen van de query in je script fout gaat, of dat de query goed is, maar je db 'm gewoon niet lust. :)
Dit had ik al gedaan en de query is verder goed :?
code:
1
2
3
4
5
6
UPDATE NIEUWS SET Tekst='hier staat dan de tekst met meer dan 255chars', 
Kop='Kopie',
Plaatser='Webmaster',
Bron='www.bla.nl',
Actief=1 
WHERE NieuwsId=1

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 15-09 11:04

Basszje

Reisvaap!]

Schijnt een ADO probleem te zijn.
Interbase kan ook makkelijk textvelden van 255+ chars aan, maar wil dat ook niet. Is heel erg vervelend.

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Mja, de fout moet toch ergens anders zitten. Als 't veld type memo is in Access dan kan je d'r een hele meuk text in stoppen, zeker meer dan 255 chars.

Verwijderd

Een artikel van een collega:
Ondanks het feit dat ADO netjes in COM geprogrammeerd is en dat het gebruikte VB string type (BSTR* voor de techneuten onder ons) erg veel tekens achter elkaar kan bevatten, heeft ADO toch zijn limitaties. Dit kan gevaarlijk worden op het moment dat je een erg groot record gaat inserten of updaten.

Er zijn in wezen twee manieren om in ADO een update uit te voeren. De eerste manier (die binnen het Internet Center niet zo veel in gebruik is) is, om Rs.AddNew() van een recordset object te gebruiken.
code:
1
2
3
4
5
6
7
8
9
objConn= new ActiveXObject("ADODB.Connection");
objRs = new ActiveXObject("ADODB.Recordset");

objConn.Open(strConn);
strSQL = "SELECT blablabla ...." 
objRs.Open(strSQL, objConn); 
objRs.AddNew(); 
objRs.Field("naam")=".. maximaal 255 karakters.." ;
objRs.Update();

Voor de fields property geld dat de veldlengte maximaal 255 is.

De andere manier is met objConn.Execute(). Hiervoor geldt dat de query in zijn geheel niet groter mag worden dan 1024 tekens.
code:
1
2
3
4
5
6
objConn= new ActiveXObject("ADODB.Connection");
objRs = new ActiveXObject("ADODB.Recordset");

objConn.Open(strConn);
strSQL ="UPDATE ... query tot maximaal 1024 karakters" ;
objConn.Execute(strSQL,strConn);

  • Tommel
  • Registratie: November 2000
  • Niet online
Eingelijk wil bovenstaande zeggen dat het niet kan ??

Verwijderd

Op dinsdag 18 december 2001 14:14 schreef Tommel het volgende:
Ik heb de volgende code:
code:
1
2
3
4
5
6
7
8
SQL_STRING = "UPDATE NIEUWS SET 
Tekst='" & Tekst & "', 
Kop='" & Kop & "',
Plaatser='" & Plaatser & "',
Bron='" & Bron & "',
Actief=" & Actief & " 
WHERE NieuwsId=" & NieuwsId     
DB_CONN.Execute SQL_STRING

Wanneer nu Tekst meer dan 255 chars is krijg ik de volgende foutmelding: Syntax error (missing operator) in query expression
Het database (Access 2000) veld is van het type MEMO dus daar ligt het niet aan.
Kan het zo zijn dat wanneer je niet via een recordset werkt dat de update query max 255 chars aankan ??
Waar ligt dit aan ??
Vreemd, Ik gebruik bij mn forum ook memo's (access) en daar gaat het nooit mis

Ik gebruik een stapsgewijze update ipv een insert dus

rs.open"select * From tabel where id="&nummer,objConn
rs("veldnaam")=request.form("tekst")
rs.update
rs.close

Op deze manier kan het ook niet fout lopen met de ' in de string en hoef je niets te replacen

Verwijderd

Op dinsdag 18 december 2001 16:48 schreef Tommel het volgende:
Eingelijk wil bovenstaande zeggen dat het niet kan ??
Natuurlijk kan het wel! waarom zou je anders memovelden kunnen gebruiken?

  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 15-09 21:06

BlackBurn

One Ring To Rule Them All

Op dinsdag 18 december 2001 22:00 schreef j30a6n75 het volgende:

[..]

Vreemd, Ik gebruik bij mn forum ook memo's (access) en daar gaat het nooit mis

Ik gebruik een stapsgewijze update ipv een insert dus

rs.open"select * From tabel where id="&nummer,objConn
rs("veldnaam")=request.form("tekst")
rs.update
rs.close

Op deze manier kan het ook niet fout lopen met de ' in de string en hoef je niets te replacen
Same here, ik doe het ook stapgewijs en werkt perfect :) en natuurlijk kan het wel !

If it is broken, fix it. If it ain't broken, make it better!

Pagina: 1