FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index All products support ADOFUNC.prg e SQLEXPRESS
Posts: 181
Joined: Thu Apr 17, 2008 02:38 PM
ADOFUNC.prg e SQLEXPRESS
Posted: Fri Mar 19, 2021 04:56 PM

Ciao a tutti

Ho deciso di provare ad usare MSSQL EXPRESS per fare ciò ho pensato di iniziare
utilizzando le funzioni presenti in ADOFUNC.PRG mi chiedevo :

1) Se è il modo migliore per iniziare o è meglio usare ADORDD

2) Come eseguire una Rlock o Flock per evitare che due utenti lavorino
sullo stesso record o gruppi di record.

3) Se c'è necessità di fare manutenzione sulle tabelle Compattazione, reindicizzazione

Grazie
Maurizio Menabue

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: ADOFUNC.prg e SQLEXPRESS
Posted: Fri Mar 19, 2021 06:49 PM
mauri.menabue wrote:Ciao a tutti

Ho deciso di provare ad usare MSSQL EXPRESS per fare ciò ho pensato di iniziare
utilizzando le funzioni presenti in ADOFUNC.PRG mi chiedevo :

1) Se è il modo migliore per iniziare o è meglio usare ADORDD


Personalmente preferisco usare direttamente ADO che è ben documentato, funzionante e pieno di esempi in tutti i linguaggi, piuttosto che nasconderlo dietro funzioni o classi di cui poi non ricordo l'uso, visto anche che ADO lo uso anche sul web. E non ritengo valido l'uso di SQL attraverso strumenti come ADORDD. SQL è un concetto completamente diverso rispetto ai DBF e rischieresti di non usarne appieno le possibilità.

mauri.menabue wrote:2) Come eseguire una Rlock o Flock per evitare che due utenti lavorino
sullo stesso record o gruppi di record.

3) Se c'è necessità di fare manutenzione sulle tabelle Compattazione, reindicizzazione


No, non servono né lock esplicito né manutenzione. SQL funziona diversamente.

EMG
Posts: 181
Joined: Thu Apr 17, 2008 02:38 PM
Re: ADOFUNC.prg e SQLEXPRESS
Posted: Sun Mar 21, 2021 08:16 AM
Ciao a tutti
Chiederei un ulteriore chiarimento riguardo questi aspetti :

1) E' possibile aprire più cursori (alias) per la stessa tabella ?

Code (fw): Select all Collapse
    Es. (x)Harbour LOCAL cALIAS1 := cGetNewAlias("CLIENTI")
                           LOCAL cALIAS2 := cGetNewAlias("CLIENTI")

                           USE CLIENTI NEW ALIAS (cAlias1)  ....
                           USE CLIENTI NEW ALIAS (cAlias2) ....


2) Per default non è necessario definire nessun tipo di lock, suppongo quindi che se due utenti
variano lo stesso record ed entrambe confermano la variazione l'aggiornamento del record
avvenga con una sequenza temporale, o meglio resta definitiva la variazione dell'ultimo
utente che conferma la transazione, mi chiedo se non esista una funzione che avverta un
utente che qualcuno (meglio che utente) sta già lavorando su quel record .
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: ADOFUNC.prg e SQLEXPRESS
Posted: Sun Mar 21, 2021 08:37 AM
mauri.menabue wrote:1) E' possibile aprire più cursori (alias) per la stessa tabella ?


Parliamo di DBF, giusto? Sì, certo che è possibile.

EMG
Posts: 181
Joined: Thu Apr 17, 2008 02:38 PM
Re: ADOFUNC.prg e SQLEXPRESS
Posted: Sun Mar 21, 2021 10:46 AM

ciao Enrico
No, chiedevo se era possibile anche in SQL aprire lo stesso recordset con due alias - variabili diverse cosi come si faceva con i DBF.
Siccome sei esperto mi piaceva un tua chiarificazione sull'aspetto lock punto 2 del mio intervento precedente.
Grazie

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: ADOFUNC.prg e SQLEXPRESS
Posted: Sun Mar 21, 2021 10:53 AM
In SQL non ha senso parlare di "alias", non esistono. Puoi aprire lo stesso recordset più volte senza alcun problema, visto che userai variabili diverse. Esempio in ADO:

Code (fw): Select all Collapse
oRs1 = CREATEOBJECT( "ADODB.Recordset" )
oRs2 = CREATEOBJECT( "ADODB.Recordset" )

oRs1:Open( "SELECT * FROM Clienti", ... )
oRs2:Open( "SELECT * FROM Clienti", ... )

oRs1:MoveNext()

oRs2:MoveNext()
oRs2:MoveNext()

? oRs1:Fields( "Cliente" )
? oRs2:Fields( "Cliente" )


EMG
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: ADOFUNC.prg e SQLEXPRESS
Posted: Sun Mar 21, 2021 10:55 AM

Riguardo il lock su SQL, io non l'ho mai usato, neanche in programmi web molto complessi. Quindi non ti so aiutare.

EMG

Continue the discussion