Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101

    errore inserimento record con AddNew

    Ciao a tutti,
    stò tentando di inserire dei record nel database con un ciclo
    ecco il codice
    codice:
    <%@ LANGUAGE = JScript %>
    <%            
      var orders = String (Request.QueryString("ordini"));
      var arr = orders.split("|");
      var record = String (Request.QueryString("righe"));
      var ncol = 5;
      
      // Istanzio l'oggetto Connection
      var ADOConn = new ActiveXObject("ADODB.Connection");
      
      // Creo la STRINGA DI CONNESSIONE
      var strConn = "";
      strConn += "driver={Microsoft Access Driver (*.mdb)};";
      strConn += "dbq=" + Server.MapPath("ordine.mdb");
      
      // Apro la connessione al database selezionato
      ADOConn.Open(strConn);
      
      // Istanzio Recordset
      var RecSet = new ActiveXObject("ADODB.Recordset");
      
       // Collego Recordset alla connessione aperta
       RecSet.Open("dettagli",ADOConn,3,3);
    
      //Aggiungo record con un ciclo
      for (i=0;i<record;i++) {
    
       	qta = arr[i*ncol]; 
    	cod = arr[i*ncol + 1]; 
    	descr = arr[i*ncol + 2]; 
    	tav = arr[i*ncol + 3]; 
    	rif = arr[i*ncol + 4];
    	
    	// Formulo il nuovo record
        RecSet.AddNew();
        RecSet("Quantita") = qta;
        RecSet("Codice") = cod;
        RecSet("Descrizione") = descr;
    	RecSet("Tavola") = tav;
    	RecSet("Riferimento") = rif;
    	
    	// Aggiorno la tabella
        RecSet.Update();
    }
    	// Chiudo Recordset
        RecSet.Close();
    	// Chiudo la connessione
        ADOConn.Close();
    	ADOConn = null;
    %>
    solo che mi dà il seguente errore

    Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
    [Microsoft][Driver ODBC Microsoft Access] Impossibile aggiornare. Database o oggetto di sola lettura.
    /interactive/interactive/lista.asp, line 44

    La riga 44 sarebbe RecSet.Update();

    Qualcuno sa dirmi dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178
    Hai controllato che il database non sia effettivamente in sola lettura e che l'utente che effettua l'operazione abbia permessi adeguati?
    Buji

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Ciao e grazie buji

    Ho fatto altre prove per capire se realmente si poteva scrivere nel db
    e con questo codice scrive
    codice:
    Quantita    ="allora"
    Codice    ="ciao"
    Descrizione    ="allora"
    Tavola    ="allora"
    Riferimento    ="ciao"
    
    SQL = "INSERT INTO dettagli (Quantita,Codice,Descrizione,Tavola,Riferimento)"
    SQL = SQL&"VALUES('"&Quantita&"','"&Codice&"','"&Descrizione&"','"&Tavola&"','"&Riferimento&"')"
    Conn.Execute(SQL)
    conn.Close
    Non capisco

    A tè il codice scritto nel primo post ti sembra corretto?

  4. #4
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178
    Personalmente per usare addnew faccio una query che ricava tutti i campi della tabella per id=0, in questo modo funziona sempre correttamente, francamente pure la tua procedura sembra a posto...
    Buji

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Ossia, come fai?
    magari mi risolve il problema.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Ho fatto altre prove e praticamente il codice del primo post funziona quando gli passo i dati di un solo record e fa il botto se ne passo più di uno.

    Forse adesso qualcuno ha capito dove stà l'errore?

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Proprio nessuno sa aiutarmi?

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    ok,
    il codice è corretto l'unica cosa è che non ho messo un controllo per i campi se sono vuoti.

    Non so come fare comunque adesso mi metto a cercare nelle guide.

  9. #9
    codice:
    If Len(Trim(nomestringadacontrollare)) > 0 Then
    'il campo non è vuoto
    End If

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    101
    Ciao Weppos,
    grazie mille

    Però se è vuoto cosa devo scrivere in quel campo?
    O forse devo fare una queri di inserimento a seconda dei campi non vuoti?

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.