Newsgroup: it.comp.www.asp
Titolo: asp e aggiornamento database... AIUTO

questo è il codice ke genera questo errore ke sono 2 gioni ke tento "invano"
di risolvere!!!
ERRORE:
Tipo di errore:
ADODB.Connection (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in
conflict with one another.
/aggiornadb.asp, line 8
CODICE:
è un banalissimo aggiornamento di un db.. tutti i campi devono essere
aggiornati allo stesso valore
<%
' dichiaro la variabile che conterrà l'oggetto Connection
Dim conn
Dim conta
'creo l'oggetto Connection
Set conn = Server.CreateObject("ADODB.Connection")
'apro la connessione con la fonte di dati
conn.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("/mdb-database/arena.mdb")
' dichiaro la variabile che conterrà l'oggetto Recordset
Dim rs
'creo l'oggetto Recordset
Set rs = Server.CreateObject("ADODB.Recordset")
'Eseguo la query SQL SELECT
rs.Open "arena", conn, 0, 3
'response.write Request.Form("T1")
'response.write "<br>"
If not rs.eof then
rs.movefirst
for conta = 0 to rs.fields.count -1
rs.fields(conta) = Request.Form("T1")
next
Else
response.write "db vuoto!"
End if
rs.close
conn.close
%>

 rs.Open "arena", conn, 0, 3
che tipo di query e'?
-- 
Lino Mari [mod - it.economia.e-commerce]
http://www.ebow.it
 - e-business on web!
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004
Se le aziende pensano che i loro mercati online siano gli stessi che
guardavano le loro pubblicità in televisione, si stanno prendendo in
giro da sole

 rs.Open "arena", conn, 0, 3
Meglio così: rs.Open "arena", conn, 1, 3

 ha scritto nel messaggio news:5dxSa.3342
grazie... fortunatemente.... nel frattempo avevo risolto!! cercavo di
aggiornare una kiave primaria contatore con una stringa ti testo!! ke
pirla!!!!
ora il problema è ke mi servirebbe ke al clik di una immagine uno script
java mi associa ad una variabile un valore ke poi devo passare allo script
asp.... è fattibile?
xiao
davide
** Articolo inviato tramite i servizi gratuiti di 
www.x-privat.org
 **

asp.... è fattibile?
qualcosa del genere?
<input type="image" src="tua immagine1" value="0"
onclick="document.forms[0].campo-hidden.value=this.value">
<input type="image" src="tua immagine2" value="1"
onclick="document.forms[0].campo-hidden.value=this.value">
<input type="image" src="tua immagine3" value="2"
onclick="document.forms[0].campo-hidden.value=this.value">
<input type="image" src="tua immagine4" value="3"
onclick="document.forms[0].campo-hidden.value=this.value">
<input type="hidden" name="campo-hidden">
--
Ciao!
Davide
Armorgod Troll Sciamano - Midgard Vortigern

 <input type="hidden" name="campo-hidden">
mmm... potrebbe...
ma poi questo campo-hidden non credo posso passarlo ad una istruzione asp
del tipo:
rs.fields(campo-hidden).value = "nome mia immagine2"
io carico un record di 150 campi in una tabella... in questi campi ci sta il
nome di una img da visualizzare:
<img scr="\images\ <%= rs("campo1") %>" onClick="cambia immagine">
ora non ricordo la sintassi corretta ma funge....
in pratica a me servirebbe ke al click catturassi il nome del campo ke
visualizza quella immagine in modo da poter cambiare il nome dell'immagine
nel db in modo ke al prossimo refresh la tabella sia aggiornata con le
immagini al posto giusto...
è una cosa un pò strana... ma è per un gioco online 1 contro 1 e non ho le
conoscenze adatte di flash o activex e quindi mi devo accontentare di ASP e
refresh
xiao
davide
leryn... kierico gnomo di 7° livello.
Lathander ci protegge. Ave a lui.


refresh
1 contro 1 su due client devi per forza usare asp :)


 io carico un record di 150 campi in una tabella... 
COOOOSA?
150 campi in un access?
E funziona?

 E funziona?
infatti dipende da quanto è lunga la stringa ke carico nel campo.... io
volevo metterci un'intera stringa con dei TAG HTML (40 caratteri circa), ma
così non funziona..(errore: record troppo grande); se xò ci carico una
stringa di 10 caratteri funziona benissimo.
esiste un limite teorico per la gestione dei db in asp?
e cmque non potrei utilizzare le transizioni... o non cambia nulla?
xiao
davide


e cmque non potrei utilizzare le transizioni... o non cambia nulla?
transAzioni.  che c'entrano?

 transAzioni.  che c'entrano?
emh... non vorrei dire una cavolata... io le usato in vb5 per fare modifike
sul db per poi aggiornarle quando era il momento....
begin trans.... ecc ecc...
solo ke non le uso da qualke anno e quindi non ricordo + il funzionamento e
la sintassi!!
1000 grazie.. mi sei stato utilissimo!


tabelle... quindi non ci sono problemi!
guarda, se una tabella ha più di una ventina di campi...  è segno che
c'è qualcosa che non va nel progetto del db... :-) .  cerca in rete o
su qualsiasi manuale dedicato informazioni su normalizzazione e
relazioni, cos'è un db relazionale ecc..  vedrai che poi la cosa ti
sarà più chiara e progetterai db migliori.
ti faccio solo un breve esempio.  metti che devi fare un db per la tua
rubrica telefonica.
potresti pensare ad una tabella con questi campi: nominativo, telcasa,
telufficio, fax, cellulare.
ok, magari c'è una persona che ha due cellulari.  un'altra che sta
spesso a casa della fidanzata.  un'altra ha tre telefoni fissi.
un'altra ha un solo telefono ma due indirizzi email ecc..
mica puoi fare una tabela con tanti campi quanti ad occhio ne
servirebbero in questo caso.  per molti record ci sarebbero inutili
campi vuoti e comunque non sarai mai sicuro di averne messi abbastanza
e coprire tutti i casi possibili.
allora fai due tabelle:
tNominativi
idNominativo, Nominativo
tRecapiti
idNominativo, DescrizioneRecapito, Recapito
le due tabelle sono relazionate uno a molti per mezzo del campo
idNominativo: ad un record identificato dal campo idNominativo di
tNominativi corrispondono (possono corrispondere) un numero indefinito
di record identificati dal campo idNominativo di tRecapiti.
tNominativi.idRecapito sarà un contatore, tRecapiti.idNominativo un
long-
in pratica fai quello che nell'ambiente di access viene chiamato
maschera e sottomaschera.

:-))
grazie...
ma il db deve avere 150 campi xkè corrispondono alle caselle ke compone
un'arena... cioè una area di gioco (11*14) dove 2 utenti collegati muovono i
loro personaggi...
e l'unico metodo ke ho trovato per far vedere ai 2 utenti gli stessi dati è
quello di caricare tutto in un db e ogni colta  fare il refresh della pagina
così da visualizzare i dati aggiornati dal db..
detta così non rende molto l'idea.... a lavoro finito vi manderò il link...


 così da visualizzare i dati aggiornati dal db..
Eh...e il refresh ogni quanti secondi avverrà?
E quanti utenti attaccati contemporaneamente al sito prevedi di avere?

 E quanti utenti attaccati contemporaneamente al sito prevedi di avere?
utenti connessi sempre e solo 2 alla volta... e una sorta di gioco a turni
l'utente A muove il suo personaggio e quando finisce l'utente B aggiorna e
vede come dove l'altro utente ha spostato il suo personaggio.. e così via...
ho previsto una chat dove i giocatori oltre a dikiarare le loro azioni (si
tratta di D&D, per ki non sa cosa sono: dungeons & dragon.... un gioco di
ruolo) dikiarano anke il fine turno così da non aggiornare ogni x secondi la
pagina...
in ogni caso i vs consigli saranno utilissimi!!!!
xiao
davide

 a me non viene in mente nulla di meglio!!
Guarda, non conosco sti giochi, non capisco cosa devi fare.
MA COMUNQUE: sicuro che non puoi fare 150 RECORD (casella, valore), 
raggruppati da un identificatore (IDutente, sessionID....)?

vediamo se riesco a rendere l'idea..
se tu dovessi fare un gioco tipo gli scakki online utilizzando asp come
faresti?
io l'unico modo ke ho trovato è caricarmi la skakkiera in un db... (ecco il
perkè dei 150 campi) e ogni volta ke un giocatore fa una mossa:
1-aggiorno il db
2-refresho la pagina per far vedere ai giocatori la skakkiera aggiornata
forse sto prendendo una cantonta assurda... ma non ho trovato (per le mie
conoscenze) nulla di meglio!!


 
Sì ma insisto, forse prendo io la cantonata, non riuscendo a capire.
Nominiamo le posizioni della scacchiera per numero
1 2 3 4  5   6
7 8 9 10 11 12
(adesso non so neanche quante sono...ma il concetto è questo)
Probabilmente puoi anche usare una roba tipo battaglia navale, "H7", 
"A1"....
----------
CREATE TABLE scacchiera 
(
IDscacchiera integer,
posizione integer,
contenuto varchar
)
-----------
All'apertura del gioco DEVI create sti 150 RECORD, con i contenuti 
inizializzati per l'inizio del gioco.
-----------
INSERT INTO scacchiera(IDscacchiera, posizione, contenuto) VALUES("
VALUES(1, 1, 'cavallobianco')
VALUES(1, 2, 'cavallonero')
VALUES(1, 3, 'reginanero')
.....(li puoi fare in un loop da 1 a 150)
-----------
Ora, per "leggere" la scacchiera
-----------
SELECT posizione, contenuto FROM scacchiera WHERE IDscacchiera=1
apri RS....
while not Rs.EOF
-----------
popoli la scacchiera, sempre tenendo conto che "posizione" indica 
proprio il quadratino della posizione.
Quando uno va una mossa, basta che rilevi la posizione prima e dopo, e 
fai un update per entrambe
-----------
UPDATE scacchiera SET contenuto='... WHERE IDscacchiera=1 AND 
posizione=....[iniziale]
UPDATE scacchiera SET contenuto='... WHERE IDscacchiera=1 AND 
posizione=....[mossa]
Può andare?

 Sì ma insisto, forse prendo io la cantonata, non riuscendo a capire.
[cut]
hai perfettamente ragione... la scakkiera è di 154 caselle....e io avevo
avuto la malsana idea di farmi 154 campi pensando ke fosse + facile gestire
gli spostamenti dei giocatori... e invece stavo facendo una cappellata
atomica!!! ;-)
ho modificato il codice e infatti ho già risolto la parte + dura
dell'applicazione... :)
1000 grazie
finalmente possiamo ritenere kiuso sto 3d!!!! :o)))
xiao
davide

 hai perfettamente ragione... la scakkiera è di 154 caselle....e io avevo
non 64? un quadrato di 8 caselle per lato!

 non 64? un quadrato di 8 caselle per lato!
no no..la skakkiera è solo la base... poi mi serve per un altro gioco su
un'area di 14*11