+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 7 su 7

Discussione: TADOConnection e problemi rete Lan

  1. #1
    Monti non è in linea Scolaretto
    Luogo
    Lecce
    Post
    87

    TADOConnection e problemi rete Lan

    buongiorno a tutti,
    vi sottopongo un problema che credo sia relativo al funzionamento della rete Lan:
    Quando da un posizione Client si lancia una 'transazione' per aggiornare il file Access
    su Server

    codice:
       with PmMasterData do begin
       WaitingSplashForm.Position := PoDesigned;
       WaitingSplashForm.Top := TabelleForm.Top + ((TabelleForm.Height div 5) * 4);
       WaitingSplashForm.Left := TabelleForm.Left + ((TabelleForm.Width div 2)-(WaitingSplashForm.Width div 2));
       WaitingSplashForm.Show;
       WaitingSplashForm.Update;
    
       ADORemConnection.BeginTrans;
       try
    
          //...................TESTATA Ec
          ADOEcCliente.Insert;
          ADOEcCliente['IDEC'] := Generico['NUMBER01'];
          ADOEcCliente['ANNOEC'] := Generico['NUMBER02'];
          ADOEcCliente['NEC'] := Generico['NUMBER03'];
          ADOEcCliente['DESCRIZIONEEC'] := Generico['TEXT02'];
          ADOEcCliente['CLIENTE'] := Generico['TEXT03'];
             //................etc, etc
             //........aggiornando più campi e più tabelle
    
          ADOecCliente.UpdateBatch(arAll);
       
          ADORemConnection.CommitTrans;
    
          WaitingSplashForm.Hide;
          WaitingSplashForm.Update;
    
          beep;
          MessageDlg('Emissione ESTRATTO CONTO eseguita con successo...!', MTiNFORMATION, [MBoK], 0);
       except
          ADORemconnection.RollbackTrans;
    
         WaitingSplashForm.Hide;
         WaitingSplashForm.Update;
    
          beep;
          MessageDlg('Emissione ESTRATTO CONTO FALLITA...!'+#13+
                     '...verificare i collegamenti di rete con il SERVER DATABASE...', mtError, [mbOk], 0);
       end;
    quindi appare una finestra di 'waiting' e contemporaneamente si avvia l'upload
    che a volte può essere anche 'pesante';
    A volte accade che non scompaia la finestra di 'waiting' oppure (peggio)
    non passa il 'commitTrans' e il database resta 'loocked' da quella macchina e inaccessibile
    dalle altre fino al riavvio dell'applicazione !!!
    Può servire a qualcosa modificare il valore 'ConnectionTimeout' della TADOConnection
    che al momento è impostato a 15 ??

  2. #2
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,133
    Quando il programma è impegnato a svolgere un'operazione e non viene creato un thread separato per gestirla, i messaggi in arrivo all'applicazione - compresi quelli che riguardano il disegno dell'interfaccia (es. WM_PAINT) - non vengono gestiti fino a quando l'operazione non è terminata.

    Questo è il motivo per cui spesso capita di non vedere aggiornamenti visuali (es. aumento di una progress bar) fino a quando l'operazione non ha avuto termine, a meno di non forzare il refresh.

    Sul fatto che la transazione e il database rimanga bloccato, bisogna tenere presente l'architettura con cui si sta lavorando: si tratta di un database Access, quindi non siamo in presenza di un sistema client/server bensì "file based", e questo comporta che il file venga letto e scritto quasi interamente facendolo viaggiare tutto nella rete LAN quando si fanno ricerche, inserimenti e aggiornamenti; se poi la cosa riguarda più utenti, la situazione può anche diventare drammatica.

    Se inizi a usare massivamente la base dati e a dover gestire una multi utenza, forse vale la pena iniziare a pensare un porting verso un database tipo SQL Server (per citare il prodotto più "compatibile" con Access attuale) in modo da snellire queste operazioni e soprattutto renderle più sicure e stabili grazie al fatto che c'è un server che se ne occupa.

    Per ulteriori approfondimenti, bisognerebbe analizzare anche la bontà dei collegamenti e l'efficienza della LAN, ma sono cose che puoi verificare solo tu avendone un accesso fisico.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  3. #3
    Monti non è in linea Scolaretto
    Luogo
    Lecce
    Post
    87
    Immagino tu mi suggerisca il Windows SQL server ?
    ...Lo stavo già analizzando da tempo, ho provato anche a 'importare' l'MDB con
    la funzione presente nella versione 2008, che mi pare
    sia la più adatta al mio scopo, e già questa operazione mise in risalto alcuni
    'difetti' del file originario....
    Mi sa che sia arrivato il momento.
    Grazie per i consigli.

    Antonio

  4. #4
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,133
    Quote Originariamente inviato da Monti Visualizza il messaggio
    Immagino tu mi suggerisca il Windows SQL server ?
    Se intendi Microsoft SQL Server, allora confermo il suggerimento.
    Suggerirei anche di partire da una versione più recente della 2008.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  5. #5
    Monti non è in linea Scolaretto
    Luogo
    Lecce
    Post
    87
    si scusa, ovviamente Microsoft..
    pensavo alla 2008 per questioni di redistribuibilità, o sono male informato ?
    Ho letto un poco di documentazione e mi pare di aver capito che sulla macchina
    SERVER vada installato l'intero pacchetto e sui client solo una parte di esso, e che
    questa versione non abbia costi di installazione.

  6. #6
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,133
    Quote Originariamente inviato da Monti Visualizza il messaggio
    si scusa, ovviamente Microsoft..
    pensavo alla 2008 per questioni di redistribuibilità, o sono male informato ?
    Ho letto un poco di documentazione e mi pare di aver capito che sulla macchina
    SERVER vada installato l'intero pacchetto e sui client solo una parte di esso, e che
    questa versione non abbia costi di installazione.
    Per tutte le versioni mi risulta sia disponibile una versione Express che si può scaricare e installare, limitata in termini di massima RAM/CPU/n. core.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  7. #7
    Monti non è in linea Scolaretto
    Luogo
    Lecce
    Post
    87
    Ok, grazie.
    ci provo

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi