Come confrontare timestamp di sql server in locale?

di il
4 risposte

Come confrontare timestamp di sql server in locale?

Frontend sql server; stò cercando di emulare il comportamento dei recordset disconnessi di vb.net in Access su una serie di form complesse: (con una query passthrough trasferisco i record in locale) poi li elaboro e restituisco solo i modificati in sql server e cercavo un metodo comodo per gestire la concorrenza e speravo di confrontare il campo "timestamp" che è già stato trasferito nella tabella locale (e quindi già pronto all'uso se qualcun'altro modifica il record del frontend).
Ho difficoltà però a confrontare il campo timestamp della tabella locale con quello già presente in sql server, in quanto i due tipi di campo non sono confrontabili (in access= binario e in sql=timestamp)
In internet non ho trovato pressochè nessun aiuto.
Per caso è una strada sbagliata o esiste un modo?
Grazie a tutti

4 Risposte

  • Re: Come confrontare timestamp di sql server in locale?

    Hai pensato di usare ADO invece di DAO...?
    Carichi il rs lo disconnetti settando a Nothing la connection e poi la ripristini e fai UpdateBatch...

    Sempre io abbia capito il tuo intento, prova a vedere questi 2 link:
    https://www.devguru.com/content/features/tutorials/DisconnectedRecordsets/tutDisconnRS.html
    https://xcelanz.com/how-to-create-disconnected-ado-recordsets/
  • Re: Come confrontare timestamp di sql server in locale?

    Sinceramente non ho mai usato i "recordset disconnessi", quindi le tabelle in locale mi sembravano la strada più sicura e più facilmente gestibile e oltremodo maggiormente duttili dei recordset disconnessi..
    Avevo fin dall'inizio in mente di usare il timestamp di sql per la gestione della concorrenza ma se non funziona, l'alternativa potrebbe essere di aggiungere un campo personalizzato allo scopo, ma si perde la semplicità ed allora il tuo consiglio potrebbe essere il giusto punto di arrivo.

    Grazie
  • Re: Come confrontare timestamp di sql server in locale?

    In pratica adesso con due funzioni generiche: "InsertLocalSQLTable cTMPTABLELOC, sSql" e "CreateLocalSQLTable cTMPTABLELOC, sSql" porto i dati di qualunque query, sp di sql in locale.
    Le form hanno l'origine dati connessa con questa tabella locale
    Quando ho finito l'editing nelle form, rimando i dati a sql server con una nuova Insert/update.
    Tutto funziona a meraviglia.
    Per gestire la concorrenza, pensavo di confrontare i campi Timestamp (tabella locale) e Timestamp (tabella sql) per stabilire se il recordset di destinazione è stato modificato nel frattempo.
    Ed è qui che c'è nasce il problema
  • Re: Come confrontare timestamp di sql server in locale?

    Ciao


    Domanda stupida: se il controllo diretto non funziona, perchè non converti entrambi in stringa e poi controlli le due stringhe? In fondo entrambi i DB hanmo funzioni per convertire i dati in stringhe
Devi accedere o registrarti per scrivere nel forum
4 risposte