44 messaggi dal 21 settembre 2001
Ciao a tutti,
Ho questo problema da un form recupero due stringhe di dati es. 1,2,3,4,5,6,7,8,9,10,e 0,1,0,0,1,0,1,1,1,1, devo scomporre le stringhe e inserirle nel db posto il codice:
Dim strIdrisposte, strRisposta, arrIdrisposte, arrRisposta, strOraIDrisposte, strOraRisposta
Dim objconn, Sql, rs, conn
set conn = Server.CreateObject("ADODB.Connection")
conn.open MM_connConstato_STRING
SQL = "SELECT * FROM Risposte_Utente"
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, MM_connConstato_STRING, 1, 3
rs.AddNew
rs("IDUtente") = Session("IDUtente")
strIdrisposte = Request.Form("IDRisposte")
strIdrisposte = Trim(strIdrisposte)
arrIdrisposte = Split(strIdrisposte, ",", -1, 1)
For Each strOraIDrisposte in arrIdrisposte
rs("IDRisposta") = strOraIDrisposte
Next
strRisposta = Request.Form("Risposta")
strRisposta = Trim(strRisposta)
arrRisposta = Split(strRisposta, ",", -1, 1)
For Each strOraRisposta in arrRisposta
rs("Risposta") = strOraRisposta
Next
rs.Update
rs.moveFirst
rs.Close
Sicuramente sbaglio nel modo in cui passo la variabile dell?array.
Aiutatemi
Ciao e grazie
2.584 messaggi dal 14 maggio 2001
Un campo non può contenere un array:

In questo modo non fai che ogni volta cambiare il valore del campo
For Each strOraRisposta in arrRisposta
rs("Risposta") = strOraRisposta
Next

Ti conviene salvare sul Db la stringa con le virgole e spezzarla in visualizzazione....
Il tutto dipende da qual è esattamente il tuo problema e cosa devi fare...
44 messaggi dal 21 settembre 2001
La cosa è un po complessa io ho una pg che carica delle domande e relative 2 possibili risposte da un db essendo il db relazionato la pg carica i dati facendo un move.next ora l'utente mi darà delle risposte si o no dove il primo è = a 1 e il secondo = 0 e le invia tramite forminsieme a un campo nascosto che sareppe l'id della risposta è per questo che avrò 2 stringhe una con 1,2,3,4,5, corispondenti all'id della domanda e 1,0,0,0,1 a secondo delle risposte e queste risposte dovranno essere memorizate su un tabella in quanto poi dovrò compararle con quelle giuste e dare una risposta all'utente.
Ora per far si di inviare le risposte dell'utente sulla tabella devo prendere il suo IDUtente poi dividere la srtinga IDRisposte e dividere la stringa Risposte a questo punto dovrei creare un recordset che mi fa un ciclo e carica l'IDUtente L'IDRisposta e La Risposta per quante risposte sono state date.
Spero di essere stato chiaro ora secondo te come faccio per fare cio?
Ciao e grazie
879 messaggi dal 09 luglio 2002
www.i-studio.it
Puoi anche usare la tecnica della stringa unica con le domande e le risposte divise da virgole ma devi comunque fare una serie di inserimenti, non uno solo:
...
SQL = "SELECT * FROM Risposte_Utente" 
set rs = Server.CreateObject("ADODB.Recordset") 
rs.Open SQL, MM_connConstato_STRING, 1, 3 
strIdrisposte = Request.Form("IDRisposte") 
strIdrisposte = Trim(strIdrisposte) 
arrIdrisposte = Split(strIdrisposte, ",", -1, 1) 
strRisposta = Request.Form("Risposta") 
strRisposta = Trim(strRisposta) 
arrRisposta = Split(strRisposta, ",", -1, 1) 
For i=0 to ubound(arrIdrisposte)
rs.AddNew 
rs("IDUtente") = Session("IDUtente") 
rs("IDRisposta") = arrIdrisposte(i) 
rs("Risposta") = arrRisposta(i) 
rs.Update
Next 
...

Questo codice funzione se strIdrisposte e strRisposta contengono lo stesso numero di elementi.

Ciao
Alex

Internetworking Studio Srl
www.i-studio.it
44 messaggi dal 21 settembre 2001
Grazie Alex Funziona PERFETTAMENTE

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.