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

Discussione: l'oggetto aperto.

  1. #1
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    419

    l'oggetto aperto.

    SALVE,ho questo script:

    <%
    Dim Recordset1
    Dim Recordset1_numRows


    Set Recordset1 = Server.CreateObject("ADODB.Recordset")
    Recordset1.ActiveConnection = MM_MERCATINO_STRING
    Recordset1.Source = "SELECT * FROM MERCATINOVENDI"

    Recordset1.CursorType = 0
    Recordset1.CursorLocation = 2
    Recordset1.LockType = 1
    Recordset1.Open()

    Recordset1_numRows = 0

    set elimina = Server.CreateObject("ADODB.Recordset")
    Recordset1.ActiveConnection = MM_MERCATINO_STRING 'linea 144"'
    elimina.CommandText = "DELETE * FROM MERCATINOVENDI WHERE DATADISCADENZA < now()"
    elimina.CommandType = 1
    elimina.CommandTimeout = 0
    elimina.Prepared = true
    elimina.Execute()
    perche mi scrive

    L'operazione non è consentita se l'oggetto è aperto.
    /prova/mercatinooggetti.asp, line 144?
    grazie

  2. #2
    Elimina la riga incriminata, la stessa connessione per lo stesso recordset l'hai già definita prima, non puoi rifarlo prima di averlo chiuso.
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  3. #3
    Penso che l'istruzione che volevi dare al posto di quella sia il source del recordset elimina, cioè

    elimina.ActiveConnection = MM_MERCATINO_STRING
    e non
    Recordset1.ActiveConnection = MM_MERCATINO_STRING
    Se sì, sostituisci.
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  4. #4
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    419
    Connessione chiusa o non valida in questo contesto. Impossibile utilizzarla per eseguire l'operazione.
    /prova/mercatinooggetti.asp, line 28


    elimina.Execute() linea 28 perche?

  5. #5
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    419
    invece in caso di sostituzione


    set elimina = Server.CreateObject("ADODB.Command")
    elimina.ActiveConnection = MM_MERCATINO_STRING
    elimina.CommandText = "DELETE * FROM [MERCATINOVENDI] WHERE scadenza < now()"
    elimina.CommandType = 1
    elimina.CommandTimeout = 0
    elimina.Prepared = true
    elimina.Execute()

    Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
    [Microsoft][Driver ODBC Microsoft Access] Too few parameters. Expected 1.
    /prova/mercatinooggetti.asp, line 28

  6. #6
    Non ho mai usato questa sintassi, penso che non possa eseguire elimina (elimina.execute()) prima di averlo aperto.

    Se è così, devi far precedere la riga

    elimina.execute()

    da

    elimina.open()

    Per cancellare dei record, comunque, è inutile istanziare un recordset, basta usare la sintassi

    codice:
    sql = "DELETE * FROM [MERCATINOVENDI] WHERE scadenza < now()" 
    conn.execute(sql)
    dove "conn" è la connessione attiva, che devi avere aperto in precedenza.

    Un breve script che istanzia la connessione, la apre, esegue l'eliminazione del (o dei) record e chiude e distrugge la connessione, nel tuo caso, potrebbe essere:

    codice:
    cString = MM_MERCATINO_STRING 'nb: MM_MERCATINO_STRING devi averla definita in precedenza
    Set objConn=Server.CreateObject("ADODB.Connection")
    objConn.Open cstring
    
    sql = "DELETE * FROM [MERCATINOVENDI] WHERE scadenza < now()"
    
    objConn.execute(sql)
    
    objConn.close
    set objConn = nothing
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  7. #7
    Se, usando questo script o modificando il tuo secondo le indicazioni, continui ad avere errore, verifica che esitano effettivamente dei record che realizzano la condizione richiesta.
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  8. #8
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
    [Microsoft][Driver ODBC Microsoft Access] Too few parameters. Expected 1.
    /prova/mercatinooggetti.asp, line 28
    significa che hai scritto male il nome di un campo.

    Ah, Jedis! I had no ideas! What can i do for you, honored Jedis?

    I'm not Jedi. I'm a guy with a lighsaber and a few questions.

  9. #9
    In effetti hai scritto prima

    DATADISCADENZA

    e dopo

    scadenza
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  10. #10
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    419
    grazie mille risolto!

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.