17 messaggi dal 01 luglio 2003
Ma esiste un limite massimo di campi per un db gestito con ASP?
Mi sembra assurdo ma non riesco proprio a capire cosa stia succedendo...
Ho creato una pagina ASP per gestire un database. La sto usando su diversi DB con successo e senza problemi.
Oggi l'ho utilizzata su un altro DB con più di 40 campi per ogni record, configurando quelle poche cose che dovevo fare e ricevo un errore: sembra che non riesco ad inserire più di 21 campi per ogni record!
Mi spiego meglio:
nel mio script ho fatto in modo che gli unici campi da inserire o modificare sono quelli diversi da vuoto ("").
Riesco ad inserire un nuovo record solo se do un valore a MASSIMO 21 campi (20 + ID) qualsiasi! I record hanno oltre 40 campi ognuno, quindi se li compilo tutti mi da l'errore. Se invece compilo da 1 campo a 20 lo inserisce.
Allo stesso modo se modifico un record che ha valori in meno di 21 campi me lo modifica. Se ad esempio ad un record con 20 campi+ID modifico il valore di un campo già presente mi prende la modifica, se invece inserisco un valore in un nuovo campo (diventano quindi 21+ID) mi da errore.
Che diavolo è? Sto diventando matto!
Avevo pensato fosse un problema del metodo GET (stringa troppo lunga) ma provando col POST ottengo lo stesso risultato.
AIUTATEMI!!!!!
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
posta il codice della insert, della update o della select SQL che utilizzi per aggiornare i dati, magari c'è un errore lì... qual è il testo dell'errore e in che riga lo ricevi?

Enjoy learning and just keep making
17 messaggi dal 01 luglio 2003
L'ho trovato... anche se non ho ben capito perchè...

L'errore era qui:
' crea stringa di ricerca nel db
Dim Sarray()
Redim Sarray(20)
i = 0
For Each Item In Request.form
strTempa = "Itema = Request.form(""" & Item & """)"
Execute(strTempa)
if Itema<>"" then
If (Item <> "Func") and (Item <> "Submit") then
Sarray(i)=Item &" LIKE '%"&Itema&"%'"
i=i+1
End if
End if
Next
If (diritti = "user") then
Sarray(i)="((userid='Null') OR (userid='"&userid&"'))"
i=i+1
End if
Redim preserve Sarray(i-1)
Stringa = join (Sarray," AND ")

In teoria tutto questo doveva servire per crearmi la stringa "Stringa" che utilizzo per visualizzare i record:
sql = "SELECT * FROM "&tablename&" WHERE " & Stringa &" ORDER BY ID"

Invece la visualizzazione era corretta ma mi dava problemi con insert e modify che però non utilizzano quello di cui sopra.
Evidentemente lascio aperto qualcosa...
Comunque ho sostituito il (20) con (50) e funziona perfettamente...
Grazie.
2.584 messaggi dal 14 maggio 2001
Ho notato anche io che se hai un Db con tanti campi non puoi aggiornarli tutti contemporaneamente ed ero stato costretto a spezzare l'Sql in più parti.... io usavo Access ed ho dedotto che sia un limite fisico....

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.