Visualizzazione dei risultati da 1 a 8 su 8

Discussione: DATABASE access

  1. #1

    DATABASE access

    Ciao problema...non riesco ad aggiungere i dati al database access per questo messaggio...

    Tipo di errore:
    ADODB.Recordset (0x800A0CB3)
    Il set di record corrente non supporta l'aggiornamento. Potrebbe trattarsi di una limitazione del provider o del tipo di blocco selezionato.


    Cosa posso fare?

    ''''''''
    <form method="post">

    <H1>Aggiungi nuova voce</H1>

    Nome: <input type="text" name="nome">

    Telefono: <input type="text" name="telefono">

    <input type="submit" value="Aggiungi">
    </form>

    <%

    if len(Request.Form) > 0 then

    dim conn, strConn

    strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " &_
    Server.MapPath("rubrica.mdb")

    Set conn = Server.CreateObject("ADODB.Connection")
    Conn.Open StrConn

    SQL = "SELECT * FROM Rubrica"

    ' creo il recordset
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open SQL, Conn, 1, 3

    ' aggiungo una voce

    rs.AddNew
    rs("nome") = request.Form("nome")
    rs("telefono") = request.Form("telefono")
    rs.Update

    ' libero risorse
    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing

    Response.write "<H2>Inserimento effettuato con successo</H2>"

    End if

    %>
    ''''''

  2. #2
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    usa :

    rs.Open SQL, Conn, 1, 1

  3. #3
    Niente mi da lo stesso problema

  4. #4

  5. #5
    Utente di HTML.it L'avatar di luck
    Registrato dal
    Oct 2004
    Messaggi
    550
    hai controllato i permessi sulle cartelle?

    e poi (perchè a me ogni tanto succedeva), non è che stai testando in locale e hai la tabella che devi aggiornare aperta con Access?

    ciao
    Luck!

  6. #6
    Originariamente inviato da luck
    hai controllato i permessi sulle cartelle?

    e poi (perchè a me ogni tanto succedeva), non è che stai testando in locale e hai la tabella che devi aggiornare aperta con Access?

    ciao
    Luck!
    Non è un problema di permessi sulla cartella, ma di "permessi" sul recordset aperto e che tenta di aggiornare con un .addNew e .update.
    Il problema sta nel tipo di bloccaggio del recordset.
    Leggi il file adovbs.inc che hai nel tuo pc windows e trova il corrispondente valore numerico da mettere come tipo di Lock.

  7. #7
    Continua a darmi questo mess:


    Il set di record corrente non supporta l'aggiornamento. Potrebbe trattarsi di una limitazione del provider o del tipo di blocco selezionato.


    come si modificano i permessi del database?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Non credo sia un problema di permessi di file e cartella.
    Infatti avrebbe dato questo errore:
    'C:\Inetpub\wwwroot\dominio\cartella\database.mdb' . Il file è già aperto con accesso esclusivo da un altro utente o è necessario disporre dell'autorizzazione per visualizzare i dati.

    Comunque, per rispondere alla tua domanda:

    1. controlla i permessi del file .mdb:
    Li controlli cliccando con il pulsante destro del mouse per fare apparire il menù contestuale, te la rendo semplice, e clicca su Proprietà appare una finestra vai su Proprietà e controlla se c'è la voce nell'elenco USERS(nomeServer\Users) se così non fosse devi aggiungerlo, cliccando su aggiungi (AGGIUNGI\AVANZATE\TROVA, scorri nell'elenco e trova USERS con il del server accanto).

    2. Controlla i permessi della cartella che contiene il database:
    Deve essere spuntata la voce LETTURA in Protezione sempre sotto la voce USERS(Server\Users). Se non presente aggiungi la voce, come per il passo 1.

    MEMS ha ragione è un problema di cursor type e lock type, visto che restituisce:
    Il set di record corrente non supporta l'aggiornamento. Potrebbe trattarsi di una limitazione del provider o del tipo di blocco selezionato.

    Ricorda di default il recordset è settato così:
    Cursor type: adOpenForwardOnly oppure 1 - Forward-Only;
    Lock Type: adLockReadOnly oppue 1 - Read-Only.

    Invece per salvare devi modificare così:
    Cursor type: adOpenStatic oppure 3 - Cursore Statico;
    Lock Type: adLockOptimistic oppure 3 - Il provider blocca 'lock' il record solo dopo che lanci il metodo UPDATE.

    Prova a fare subito questo nello script:
    codice:
    rs.Open (SQL), Conn, adOpenStatic, adLockOptimistic
    'OPPURE
    'rs.Open (SQL), Conn, 3,3
    
    rs.ADDNEW
    ....
    rs.UPDATE
    Ti consiglio per l'inserimento o per la cancellazione di un record il metodo EXECUTE dell'oggetto Connection. Facile, veloce e con meno impostazioni (IMHO).

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 © 2026 vBulletin Solutions, Inc. All rights reserved.