Page 1 of 1

ADOFUNC.prg e SQLEXPRESS

PostPosted: Fri Mar 19, 2021 4:56 pm
by mauri.menabue
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

Re: ADOFUNC.prg e SQLEXPRESS

PostPosted: Fri Mar 19, 2021 6:49 pm
by Enrico Maria Giordano
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

Re: ADOFUNC.prg e SQLEXPRESS

PostPosted: Sun Mar 21, 2021 8:16 am
by mauri.menabue
Ciao a tutti
Chiederei un ulteriore chiarimento riguardo questi aspetti :

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

Code: Select all  Expand view

    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 .

Re: ADOFUNC.prg e SQLEXPRESS

PostPosted: Sun Mar 21, 2021 8:37 am
by Enrico Maria Giordano
mauri.menabue wrote:1) E' possibile aprire più cursori (alias) per la stessa tabella ?


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

EMG

Re: ADOFUNC.prg e SQLEXPRESS

PostPosted: Sun Mar 21, 2021 10:46 am
by mauri.menabue
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

Re: ADOFUNC.prg e SQLEXPRESS

PostPosted: Sun Mar 21, 2021 10:53 am
by Enrico Maria Giordano
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: Select all  Expand view
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

Re: ADOFUNC.prg e SQLEXPRESS

PostPosted: Sun Mar 21, 2021 10:55 am
by Enrico Maria Giordano
Riguardo il lock su SQL, io non l'ho mai usato, neanche in programmi web molto complessi. Quindi non ti so aiutare.

EMG