Visualizzazione dei risultati da 1 a 7 su 7

Discussione: transazioni sql

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    27

    transazioni sql

    ho bisogno di effettuare delle registrazioni multiple sul database.
    Ho utilizzato conn.begintrans all'inizio e Conn.CommitTrans
    alla fine del blocco utilizzando quindi la stessa connessione conn
    per tutte le execute sul db.(in totale sono 4).
    Mi da errore alla seconda registrazione..
    Forse ho sbagliato l'apertura della connessione.
    Come devo fare?

    Grazie mille

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Che errore ti dà?
    Posti un po' di codice...?
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    27
    ho aperto la connessione con una sub:
    public sub connectDB()
    Connstring = "la stringa di connessione"
    set Conn=SERVER.CreateObject("AdoDB.Connection")
    Conn.Open ConnString

    end sub

    poi metto
    call connectDB()
    conn.begintrans
    set rsx=conn.execute(sql)

    'e fin qui tutto bene...
    set rsY=conn.execute (sql1)
    mi scrive il seguente errore:

    Microsoft OLE DB Provider for SQL Server error '80004005'

    Impossibile creare una nuova connessione perché è attiva la modalità di transazione manuale o automatica.


    Spero di essermi spiegata bene..
    Grazie

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Se le query sono di aggiornamento, non scrivere:

    set rsx=conn.execute(sql)

    ma semplicemente

    conn.execute sql (senza le parentesi)

    In questo modo eviti di creare altri oggetti (set rs) che non ti servono...
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    27
    apro il recordset perchè mi servono delle informazioni..
    non credo che questo influisca sull'errore..
    se metto la sql fuori dalle parentesi mi da errore.
    Una domanda: si possono racchiudere più execute nella stessa transazione?
    Grazie

  6. #6
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Quindi sono query di selezione.

    Allora apri il recordset, ti memorizzi le informazioni che ti servono e lo chiudi, così per ogni recordset.
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    27
    grazie mille!
    così funziona

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.