Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: recordset.open 3,3???

  1. #1

    recordset.open 3,3???

    L'esempio di html.it in merito all'immissione dati da form asp a un db access è superlativa ma se io non ho 3 campi come nell'esempio ma ne ho 7? come manipolo questa stringa?

    ----------------- codice -----------------------

    dim strNome
    dim strCognome
    dim strEta
    dim strCell
    dim strEmail
    dim strUser
    dim strPsw
    strNome = Request.Form("myName")
    strCognome = Request.Form("mySurname")
    strEta = Request.Form("myAge")
    strCell = Request.Form("myCell")
    strEmail = Request.Form("myEmail")
    strUser = Request.Form("myUser")
    strPsw = Request.Form("myPsw")
    ' ----------------------------------------------------------------------


    ' ----------------- Mappaggio del Database -----------------------------
    Set Conn = Server.CreateObject("ADODB.Connection")
    strConn = "driver={Microsoft Access Driver (*.mdb)};"
    strConn = strConn & " DBQ=" & Server.MapPath("dati.mdb")
    Conn.open strConn
    ' ----------------------------------------------------------------------

    ' Stringa di interrogazione della tabella libri ------------------------
    sql = "SELECT * FROM utenti"

    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn,3,3
    ' ----------------------------------------------------------------------

    ' Preparazione e scrittura nuovo record --------------------------------
    rs.addnew
    rs(1) = strNome
    rs(2) = strCognome
    rs(3) = strEta
    rs(4) = strCell
    rs(5) = strEmail
    rs(6) = strUser
    rs(7) = strPsw
    rs.update
    ' ----------------------------------------------------------------------

    ' Chiusura del database ------------------------------------------------
    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing
    ' ----------------------------------------------------------------------
    Response.Write("Inserimento avvenuto con successo")
    %>
    </body>
    </html>

    ---------------- fine codice -----------------------

    Io ho pensato rs.Open sql, conn,3,3 perchè nell'esempio di html.it ci sono 3 campi allora io scrivo rs.Open sql, conn,7,7 e funziona? NOOOOOOOO

    mi dice : ADODB.Recordset error '800a0bb9'

    Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

    /dabase/registrazione/controllo.asp, line 40


    AIUTOOOOOOOOOOOOOOOOOOOOOOOOO!!!!

  2. #2

  3. #3

    grazie dell'imbeccata

    ora dovrò cercare qualcosa sui metodi ADO in italiano però perchè l'inglese lo mastico poco.

    Tuttavia la cosa strana è che se lascio 3,3 e commento i rs dal 4 al 7 mi funziona.

    Grazie comunque cercherò di capici qualcosa :-)

  4. #4
    quando tu fai

    rs(n)=qualcosa

    dici di aggiornare la colonna 'n' del recorset

    quindi se la tua

    SELECT * FROM tabella

    ti riporta (nell'ordine)

    ID, Nome, Cognome, Anni

    con

    rs(1)="Ciccio"

    vai ad aggiornare la colonna Nome (si parte da zero)


    medita!

  5. #5

    esatto :-)

    io però sullo 0 ho id nella tabella per cui iniziando con uno vado ad aggiornare la colonna nome che viene subito dopo id ... :-(

    Oh premetto ho inziato lunedi a vedere un po di asp, prima non sapevo manco cos'era per cui può essere che dico una marea di baggianate :-) ... meno male che sei un tipo paziente

  6. #6

    3,3

    secondo l'articolo che mi hai consigliato credo di aver capito che abbiamo questo tipo di situazione :

    objRecordset.Open source,actconn,cursortyp,locktyp,opt

    nel mio caso diventa

    objRecordset.Open = rs.Open

    source = sql

    actconn = Conn ( la variabile dell'oggetto ADODB.Connection )

    cursortyp = 3 perchè 3 corrisponde a :

    adOpenStatic ossia A static cursor. A static copy of a set of records that you can use to find data or generate reports. Additions, changes, or deletions by other users are not visible.

    locktyp = 3 perchè 3 corrisponde a :

    adLockOptimistic ossia Optimistic locking, record by record. The provider lock records only when calling update

    Quindi ora capisco che 3 non centra nulla con i recordset ma è solo un'opzione di ADO, ma allora per quale motivo se inserisco solo 3 rs lo script funziona?

    AIUTAMIIIIII :-)

  7. #7

    traduzione

    ho trovato il significato dell'articolo che mi hai proposto tradotto in italiano su html.it per cui avendo capito di cosa stiamo parlando sono sicuro che 3,3 sono i parametri corretti.

    E allora non mi spiego perchè mi va in errore :-(

  8. #8

    eseguita modifica

    sul sito di microsoft dice di provare a dichiarare le costanti

    Const adOpenStatic = 3
    Const adLockOptimistic = 3

    sql = "SELECT * FROM utenti"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, Conn, 3, 3

    ora il messaggio di errore che mi da é :

    Provider error '8002000a'

    Out of present range.

    /dabase/registrazione/controllo.asp, line 49


    dove la riga 49 è rs(4) = strCell

    ossia la riga che se tolgo insieme a tutti gli rs fino a (7) mi funziona lo script

    eppre ti giuro la tabella access ha 7 colonne e non 3 :-(

  9. #9

    <!--#include file="adovbs.inc"-->

    anche includendo il file di costanti il risultato non cambia :-(

  10. #10

    RISOLTOOOOOOOOOOOOO

    SIIIIIIIIIII CHE PRESTAZIONEEEEEEEE

    da solo senza google ho pensato, non so nemmeno perchè ... mettiamo a tutti i campi da access valore testo invece che numerico ed ora va...

    ora però ti prego spiegami perchè numerico mi dava errore e con testo va??? :-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.