none
Linking Servers vs. Access 2000 -- funge? RRS feed

  • Domanda

  • Nell'attesa di riconvertire un'applicazione VB6 in C# e conseguente db access 2000, c'è bisogno di collegare tale db tramite VPN: gli utenti dovrebbero essere meno di 20. Ho pensato di collegare all'interno di sql-server 2008 un linked server da cui ricavare/scrivere informazioni. Nel db access esistono delle query parametrizzate. Le domande sono due:

    1. è la soluzione migliore? -- tenendo conto che è una situazione di emergenza

    2. tali query sono gestite da SQL Server?

    Potete consigliarmi altre soluzioni?

    ciao

    martedì 11 gennaio 2011 13:45

Risposte

  • Ciao, 

    allora avendo avuto esperienze simili in passato, posso garantirti che tutto dipende dall'applicazione e dalla sua complessità. Voglio dire... se l'applicazione fa MOLTE query (chatty) avrai un risultato disastroso. Infatti una WAN ha una latenza che è ordini di grandezza più elevata di una LAN. Inoltre, sapendo che poi riscriverai tutto (mi pare di capire)... direi che: 

    Dovresti considerare in primis i costi delle modifiche applicative che andresti a fare, e il costo nel sistemare eventuali side-effect che avrai facendo queste modifiche. I costi di banda per tenere in piedi la WAN su un'app client/server (fidati, non ti basterebbe una ADSL).

    Io mi darei 1-2 giorni al massimo di tempo per vedere cosa succede con delle modifiche sui punti "principali", e poi decederei se procedere o meno.

    La soluzione a mio avviso migliore sarebbe Terminal Services, così non fai alcuna modifica all'applicazione (probabilmente) e i tuoi utenti la potrebbero usare via internet/WAN come se fossero in LAN.

    Per capire se è una soluzione cost-effective devi mettere dunque sul piatto della bilancia:

    1) Il costo delle modiiche applicative/testing/bug fixing (sicuramente ne avrai) e problemi potenzilai di performance; molto dipende dall'applicazione appunto.

    2) Il costo delle licenze terminal che ti servirebbero per colmare la problematica. Verifica i costi, ma considera che dal tuo punto di vista basta capire se può oppure no girare in un ambiente di quel tipo... mi sento di dire che potrebbe farlo senza modifiche o quasi.

    CIAO


    Adriano
    • Contrassegnato come risposta cosmopsis lunedì 17 gennaio 2011 20:00
    venerdì 14 gennaio 2011 08:37
  • Ciao ti confermo che il passaggio di parametri tramite Linked Server è di per se una funzionalità possibile su SQL 2005/2008... 

    http://technet.microsoft.com/en-us/library/ms188095.aspx (sezione DYnamic Parameters)

    Ma dipende molto dal provider OLEDB e sinceramente non so dirti se quello Jet lo permette:

    http://technet.microsoft.com/en-us/library/ms187072.aspx

    ... ma sono comunque più sul no che sul si.

    HTH,

    CIAO


    Adriano
    • Contrassegnato come risposta cosmopsis lunedì 17 gennaio 2011 20:01
    sabato 15 gennaio 2011 08:57

Tutte le risposte

  • Nessuno riesce a consigliarmi?

    ciao

    giovedì 13 gennaio 2011 14:31
  • Nessuno riesce a consigliarmi?

    Mi spiace, io non ho capito quali sono le ipotesi di partenza ed il risultato che vuoi raggiungere. Se provi a dettagliare meglio la situazione, probabilmente riceverai qualche parere.

    Ciao!


    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.microsoft.com/Forums/it-IT/sqlserverit
    giovedì 13 gennaio 2011 20:35
    Moderatore
  • Nessuno riesce a consigliarmi?

    Mi spiace, io non ho capito quali sono le ipotesi di partenza ed il risultato che vuoi raggiungere. Se provi a dettagliare meglio la situazione, probabilmente riceverai qualche parere.

    Ciao!


    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.microsoft.com/Forums/it-IT/sqlserverit
    Scusa per la poca chiarezza. Sitazione: applicazione VB6 con base dati Access 2000; l'applicazione gira in rete LAN. Obiettivo finale da raggiungere: applicazione "convertita" (leggi riscritta) in C# con base dati SQL-Server da usarsi in una WAN. Problema: per il momento, dato che si deve partira con la WAN, si è deciso di continuare ad utilizzare l'applicaziomne VB6 finquando non si è finito con la sua conversione. Per cui per il momento, il problema pare essere Access 2000 o per meglio dire i suoi driver -- incompatibili con una WAN (leggi: http://www.members.shaw.ca/albertkallal/Wan/Wans.html). Ho quindi pensato di collegare all'interno di sql-server un linked server al un db access da cui potere poter ricavare e/o scrivere informazioni. Non mi è possibile convertire l'intero DB perchè al suo interno ci sono delle query parametrizzate che lo strumento di importazione dell'SQLServer NON traduce. Quindi le mie domande sono: la soluzione che ho esposto è fattibile? se non lo è cosa mi consigliate per ovviare? tenendo presente -- ovviamente -- che la soluzione migiore sarà c# + SqlServer. Grazie per la risposta, mi sento meno solo ;)
    giovedì 13 gennaio 2011 21:53
  • Scusa per la poca chiarezza. Sitazione: applicazione VB6 con base dati Access 2000; l'applicazione gira in rete LAN. Obiettivo finale da raggiungere: applicazione "convertita" (leggi riscritta) in C# con base dati SQL-Server da usarsi in una WAN. Problema: per il momento, dato che si deve partira con la WAN, si è deciso di continuare ad utilizzare l'applicaziomne VB6 finquando non si è finito con la sua conversione. Per cui per il momento, il problema pare essere Access 2000 o per meglio dire i suoi driver -- incompatibili con una WAN (leggi: http://www.members.shaw.ca/albertkallal/Wan/Wans.html). Ho quindi pensato di collegare all'interno di sql-server un linked server al un db access da cui potere poter ricavare e/o scrivere informazioni. Non mi è possibile convertire l'intero DB perchè al suo interno ci sono delle query parametrizzate che lo strumento di importazione dell'SQLServer NON traduce. Quindi le mie domande sono: la soluzione che ho esposto è fattibile? se non lo è cosa mi consigliate per ovviare? tenendo presente -- ovviamente -- che la soluzione migiore sarà c# + SqlServer. Grazie per la risposta, mi sento meno solo ;)


    Fammi capire, una volta definito il linked server, il programma VB6 dove dovrebbe connettersi? A SQL Server?

    Se la risposta è affermativa, come puoi pretendere che lo faccia senza modificare l'applicazione VB6? :-)

    Ciao!


    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.microsoft.com/Forums/it-IT/sqlserverit
    giovedì 13 gennaio 2011 22:45
    Moderatore
  • Una volta definito il linked server, il programma VB6 dovrebbe connettersi a SQL Server.

    E'ovvio che l'applicazione VB6 subirà delle modifiche ma minimali e riguarderanno il modulo delle connessioni ADO oltreché piccole modifiche nelle SELECT eccetera.

    Spero di esere stato chiaro.

    ciao

    giovedì 13 gennaio 2011 22:48
  • Ciao, 

    allora avendo avuto esperienze simili in passato, posso garantirti che tutto dipende dall'applicazione e dalla sua complessità. Voglio dire... se l'applicazione fa MOLTE query (chatty) avrai un risultato disastroso. Infatti una WAN ha una latenza che è ordini di grandezza più elevata di una LAN. Inoltre, sapendo che poi riscriverai tutto (mi pare di capire)... direi che: 

    Dovresti considerare in primis i costi delle modifiche applicative che andresti a fare, e il costo nel sistemare eventuali side-effect che avrai facendo queste modifiche. I costi di banda per tenere in piedi la WAN su un'app client/server (fidati, non ti basterebbe una ADSL).

    Io mi darei 1-2 giorni al massimo di tempo per vedere cosa succede con delle modifiche sui punti "principali", e poi decederei se procedere o meno.

    La soluzione a mio avviso migliore sarebbe Terminal Services, così non fai alcuna modifica all'applicazione (probabilmente) e i tuoi utenti la potrebbero usare via internet/WAN come se fossero in LAN.

    Per capire se è una soluzione cost-effective devi mettere dunque sul piatto della bilancia:

    1) Il costo delle modiiche applicative/testing/bug fixing (sicuramente ne avrai) e problemi potenzilai di performance; molto dipende dall'applicazione appunto.

    2) Il costo delle licenze terminal che ti servirebbero per colmare la problematica. Verifica i costi, ma considera che dal tuo punto di vista basta capire se può oppure no girare in un ambiente di quel tipo... mi sento di dire che potrebbe farlo senza modifiche o quasi.

    CIAO


    Adriano
    • Contrassegnato come risposta cosmopsis lunedì 17 gennaio 2011 20:00
    venerdì 14 gennaio 2011 08:37
  • Grazie per la risposta. Prima di chiudere il thread ti volevo chiedere se la tua esperienza comprende linked server su access 2000 e se eventuali query parametrizzate (in Access) sono gestite dal SQL Server.

    ciao

    venerdì 14 gennaio 2011 22:05
  • Ciao ti confermo che il passaggio di parametri tramite Linked Server è di per se una funzionalità possibile su SQL 2005/2008... 

    http://technet.microsoft.com/en-us/library/ms188095.aspx (sezione DYnamic Parameters)

    Ma dipende molto dal provider OLEDB e sinceramente non so dirti se quello Jet lo permette:

    http://technet.microsoft.com/en-us/library/ms187072.aspx

    ... ma sono comunque più sul no che sul si.

    HTH,

    CIAO


    Adriano
    • Contrassegnato come risposta cosmopsis lunedì 17 gennaio 2011 20:01
    sabato 15 gennaio 2011 08:57