Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    Transazioni su db/400 con provider oledb

    ciao, il mio problema è che le transazioni non funzionano utilizzando il provider oledb per le connessioni ai file su as/400.
    Ho provato a settare tutti i tipi di IsolationLevel enumerati nella classe System.Data.IsolationLevel per il metodo BeginTransaction() di OleDbTransaction, ma niente.. il rollback non ne vuole proprio sapere di funzionare e mi scrive sui file (tabelle).
    Credo di scrivere correttamente il codice.. vi faccio vedere come faccio:
    codice:
    ......
    try{
    OleDbTransaction transaction = null;
    cmd.CommandText = "INSERT INTO LIB.FILE (CAMPO1,CAMPO2)  VALUES('ABC','DEF')";
                        cn.Open();
                        cmd.Connection = cn;
                        trasaction = cn.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);
                        cmd.Transaction = trasaction;
    cmd.ExequteNonQuery();
    
    //qui faccio partire una eccezione
    
    transaction.Commit();
    }
    catch(Exception ex)
    {
    MessageBox.Show(ex.Message.ToString());
    transaction.RollBack();
    }
    .......
    Nessun errore.. ma quando và in eccezione il record viene scritto ugualmente..
    Qualche esperienza in merito?

    Ciao

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Una domanda forse scontata... sei sicuro che sia il driver che il database siano in grado di supportare le transazioni?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da alka
    Una domanda forse scontata... sei sicuro che sia il driver che il database siano in grado di supportare le transazioni?
    bhè.. per quanto riguarda il driver non sono sicurissimo le informazioni in rete sono un pò sconclusionate ma sembra che la V4R5 porti con sè il driver odbc che supporta le transazioni, comunque se proprio il driver non le avesse supportate dubito che non avrei ricevuto nessun errore dal compilatore.
    Avevo anche qualche dubbio sul database.. ma ci sono andato mooolto in punta di piedi ad avere dubbi sul supporto alle transazioni di un db/400.. se non ce l'hanno loro chi cavolo deve averlo..
    Cmq mi sono documentato un pò e da un redbook della ibm (sg246440) è venuto fuori che i file (le tabelle) devono stare sotto journaling per poter supportare il rollback.
    Saprò qualcosa in più la settimana prossima

  4. #4
    Si ma normalmente nessuno mette in journaling dei files di dati se non ve ne è un' esplicita richiesta, questo perchè il journaling ciuccia risorse ...

  5. #5
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da raffaeu
    Si ma normalmente nessuno mette in journaling dei files di dati se non ve ne è un' esplicita richiesta, questo perchè il journaling ciuccia risorse ...
    eh lo sò che ciuccia risorse.. scusa ma tu dici che con oledb non hai mai provato.. e con quale provider hai provato? (o cmq stai utilizzando)

  6. #6
    Quello nuovo del nuovo Client Access

    DB2.Data .... è un Namespace creato AD HOC per NET.
    Dalla versione 5.7 di client access

  7. #7
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da raffaeu
    Quello nuovo del nuovo Client Access

    DB2.Data .... è un Namespace creato AD HOC per NET.
    Dalla versione 5.7 di client access
    l'ho provato.. non è esente da bug
    cmq anche sotto journaling le transactions non funzionano..

  8. #8
    Si ma io le transaction le faccio da SQL

  9. #9
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da raffaeu
    Si ma io le transaction le faccio da SQL
    ... e cioè ?

  10. #10
    Crei una Stored Procedure che implementa le transaction.
    Guarda qui :

    http://msdn2.microsoft.com/it-it/library/ms187844.aspx

    Ci sono alcune modifiche nella sintassi da SQL Server a DBII UDB ma quelle le puoi tranquillamente guardare nel RedBook.

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.