2 messaggi dal 23 marzo 2006
Ciao a tutti,
questo è il mio primo messaggio, visto che ho iniziato da poco a sviluppare qualche pagina asp.
Ho incontrato un grosso problema quando inserisco dati in un db Access; il dato da inserire viene immesso nel campo con uno spazio a sinistra.

ecco il codice

strsql = "INSERT INTO db_nome"
strsql = strsql & "(cognome,nome,indirizzo)"
strsql = strsql & " VALUES "
strsql = strsql & " (" & " ' " &ltrim(request.form ("cognome")) & " ',"
strsql = strsql & " ' " &ltrim(request.form ("nome")) & "',"
strsql1 = strsql1 & " ' " &ltrim(request.form ("indirizzo")) & " ')"

set rs=conn.execute (strsql)

ho provato ad utilizzare trim() rtrim() ltrim() in tutte le maniere, ma senza risultati. Continuo ad avere i dati inseriti nel campo con lo spazio a sinistra.

Ho anche provato a fare una select in lettura sempre utilizzando ltrim con lo stesso risultato negativo.

Non so più come andare avanti.

Grazie dell'aiuto
Ciao
Lo spazio non è nel campo del form (che giustamente stai "trimmando") ma tra l'apice singolo di quotatura del testo ed il valore testuale che accodi. Sostituisci:

strsql = strsql & " (" & " ' " & ltrim(request.form ("cognome")) & " '," 


con:

strsql = strsql & " (" & "'" & trim(request.form ("cognome")) & "'," 


(ovviamente in tutti i campi) e tutto si sistema.

N.B.: non appendere mai direttamente quello che ricevi da un form ad un'istruzione SQL!!!! Almeno una Replace di "'" con "''"...

Matteo Casati
GURU4.net
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Ciao,
il tuo problema risiede unicamente nel modo in cui costruisci la stringa SQL.

Intanto, a scanso di equivoci, ti consiglio di utilizzare in ogni caso TRIM(stringa) per "pulire" tutti gli spazi (prima e dopo) tranne che tu non abbia una necessità particolare di eliminare solo a destra o solo a sinistra.

Venendo ora al tuo problema, quando construisci la stringa SQL, EVITA di mettere spazi fra gli apici singoli e la variabile che passi poichè, se lo fai, necessariamente otterrai l'inserimento di una stringa con spazi vuoti all'inizio e alla fine.
Gli apici singoli, infatti, delimitando la stringa da inserire, se contengono spazi li assegnano alla stringa; per cui la stringa (ripeto: la parte di testo contenuta all'interno degli apici) diventa: spazio-valore-spazio.

Correggi pertanto così:
strsql = "INSERT INTO db_nome " 
strsql = strsql & "(cognome,nome,indirizzo)" 
strsql = strsql & " VALUES " 
strsql = strsql & "(" & "'" &ltrim(request.form ("cognome")) & "'," 
strsql = strsql & "'" &ltrim(request.form ("nome")) & "'," 
strsql = strsql & "'" &ltrim(request.form ("indirizzo")) & "')" 


Ciao

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
2 messaggi dal 23 marzo 2006
Grazie per i consigli,
ho modificato il codice come indicato ed infatti ora funziona tutto correttamente.
Mi avete salvato da un bel problema
Grazie ancora

Buona giornata

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.