Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    UPDATE che non funziona

    Ho questo aggiornamento da fare:
    codice:
    Set RsArticolo = Server.CreateObject("ADODB.Recordset")
    	RsArticolo.ActiveConnection = MM_connection_STRING
    	RsArticolo.CursorType = 1
    	RsArticolo.CursorLocation = 2
    	RsArticolo.LockType = 3
    	rsArticolo.source="SELECT max(IDArticoloMenu) AS Ultimo FROM articoli"
    	rsArticolo.open
    	ultimo=rsArticolo("ultimo")
    	strSql = "UPDATE articoli SET IDArticoloMenu = "& ultimo+1 & " WHERE IDArticoloMenu <> "& ultimo & ""
    	rsArticolo.execute (strSql)
    	rsArticolo.close
    Mi da questo errore:
    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A01B6)
    Proprietà o metodo non supportati dall'oggetto: 'Execute'
    /admin/admin_ins_articoli.asp, line 166

    dove alla linea 166 c'è il comando: rsArticolo.execute (strSql)
    Perchè mi fa così
    Se non sono ancora impazzito è merito Vostro e di questo forum.
    Non vorrei essere nei panni della Marcuzzi, se dentro non c'è la Marcuzzi.

  2. #2
    perchè il metodo EXECUTE è un metodo dell'oggetto CONNECTION e non dell'oggetto RECORDSET
    byluciani.com - Soluzioni ASP/VBScript freeware

    bylucianiUpload 2.0

  3. #3
    Perchè non puoi far eseguire un'update da un recordset, puoi usare .Execute con una connessione...
    Sono fermamente convinto che sia possibile fare ogni cosa. Tutto sta a capire come.

  4. #4
    Prova così:

    codice:
    Set RsArticolo = Server.CreateObject("ADODB.Recordset")
    	RsArticolo.ActiveConnection = MM_connection_STRING
    	RsArticolo.CursorType = 1
    	RsArticolo.CursorLocation = 2
    	RsArticolo.LockType = 3
    	rsArticolo.source="SELECT max(IDArticoloMenu) AS Ultimo FROM articoli"
    	rsArticolo.open
    	ultimo=rsArticolo("ultimo")
    	strSql = "UPDATE articoli SET IDArticoloMenu = "& ultimo+1 & " WHERE IDArticoloMenu <> "& ultimo & ""
    	MM_connection_STRING.execute (strSql)
    	rsArticolo.close

  5. #5
    Originariamente inviato da Dirk Pitt
    Prova così:

    codice:
    Set RsArticolo = Server.CreateObject("ADODB.Recordset")
    	RsArticolo.ActiveConnection = MM_connection_STRING
    	RsArticolo.CursorType = 1
    	RsArticolo.CursorLocation = 2
    	RsArticolo.LockType = 3
    	rsArticolo.source="SELECT max(IDArticoloMenu) AS Ultimo FROM articoli"
    	rsArticolo.open
    	ultimo=rsArticolo("ultimo")
    	strSql = "UPDATE articoli SET IDArticoloMenu = "& ultimo+1 & " WHERE IDArticoloMenu <> "& ultimo & ""
    	MM_connection_STRING.execute (strSql)
    	rsArticolo.close
    Mi da ancora errore:
    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A01A8)
    Necessario oggetto: 'Provider=Microsoft.J'
    /admin/admin_ins_articoli.asp, line 166
    Se non sono ancora impazzito è merito Vostro e di questo forum.
    Non vorrei essere nei panni della Marcuzzi, se dentro non c'è la Marcuzzi.

  6. #6
    E' un errore nella connessione.
    Posta il codice della connessione al db.

    Soprattutto nella riga 166 cosa c'è scritto?

  7. #7
    Originariamente inviato da Dirk Pitt
    E' un errore nella connessione.
    Posta il codice della connessione al db.

    Soprattutto nella riga 166 cosa c'è scritto?
    Eh, adesso ho modificato tutto e non so più com'era prima.
    Comunque come si potrebbe far fare l'aggiornamento tramite recorset, ho visto in giro il comando: rs.addnew, non c'è uno anche per l'aggiornamento?
    Se non sono ancora impazzito è merito Vostro e di questo forum.
    Non vorrei essere nei panni della Marcuzzi, se dentro non c'è la Marcuzzi.

  8. #8
    Sì che c'è, rs.update.
    Però te lo sconsiglio, più lento e non funziona con tutti i db (MySql ad esempio non lo digerisce bene, forse solo la versione 5 lo accetta correttamente).

    Ma non vedo la difficoltà nell'usare la query di update, è anche più semplice da scrivere con un bel po' di codice in meno (infatti non devi creare il recordset e aprirlo).
    Praticamente il codice che ti avevo mandato faceva tutto. L'errore è probabilmente nella connessione, ma se non mandi il codice aiutarti diventa impossibile.

  9. #9
    Originariamente inviato da Dirk Pitt
    Sì che c'è, rs.update.
    Però te lo sconsiglio, più lento e non funziona con tutti i db (MySql ad esempio non lo digerisce bene, forse solo la versione 5 lo accetta correttamente).

    Ma non vedo la difficoltà nell'usare la query di update, è anche più semplice da scrivere con un bel po' di codice in meno (infatti non devi creare il recordset e aprirlo).
    Praticamente il codice che ti avevo mandato faceva tutto. L'errore è probabilmente nella connessione, ma se non mandi il codice aiutarti diventa impossibile.
    questa è la connessione:
    codice:
    Dim MM_connection_STRING
    MM_connection_STRING =  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/database/dati.mdb")"
    Nella 166 mi pare c'era: MM_connection_STRING.execute (strSql)
    Se non sono ancora impazzito è merito Vostro e di questo forum.
    Non vorrei essere nei panni della Marcuzzi, se dentro non c'è la Marcuzzi.

  10. #10
    Io uso per Access questa stringa di connessione (ODBC):

    codice:
    set objConn = Server.CreateObject("ADODB.CONNECTION") 
    
    objConn.open "DRIVER={Microsoft Access Driver (*.mdb)};" &_
    "DBQ="& Server.MapPath("database/database.mdb")
    Tu invece usa una connesisone OLEDB come questa:

    codice:
    set objConn = Server.CreateObject("ADODB.CONNECTION")
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;"
    Quale delle due sia migliore non so.

    Prova però a scrivere così:

    codice:
    MM_connection_STRING =  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/database/dati.mdb")
    Ma almeno la apri la connessione?

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.