ADOFUNC.prg e SQLEXPRESS

Moderator: Enrico Maria Giordano

ADOFUNC.prg e SQLEXPRESS

Postby mauri.menabue » Fri Mar 19, 2021 4: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
User avatar
mauri.menabue
 
Posts: 146
Joined: Thu Apr 17, 2008 2:38 pm

Re: ADOFUNC.prg e SQLEXPRESS

Postby Enrico Maria Giordano » Fri Mar 19, 2021 6: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
User avatar
Enrico Maria Giordano
 
Posts: 8315
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: ADOFUNC.prg e SQLEXPRESS

Postby mauri.menabue » Sun Mar 21, 2021 8:16 am

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 .
User avatar
mauri.menabue
 
Posts: 146
Joined: Thu Apr 17, 2008 2:38 pm

Re: ADOFUNC.prg e SQLEXPRESS

Postby Enrico Maria Giordano » Sun Mar 21, 2021 8: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
User avatar
Enrico Maria Giordano
 
Posts: 8315
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: ADOFUNC.prg e SQLEXPRESS

Postby mauri.menabue » 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
User avatar
mauri.menabue
 
Posts: 146
Joined: Thu Apr 17, 2008 2:38 pm

Re: ADOFUNC.prg e SQLEXPRESS

Postby Enrico Maria Giordano » 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: 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
User avatar
Enrico Maria Giordano
 
Posts: 8315
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: ADOFUNC.prg e SQLEXPRESS

Postby Enrico Maria Giordano » 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
User avatar
Enrico Maria Giordano
 
Posts: 8315
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia


Return to All products support

Who is online

Users browsing this forum: No registered users and 22 guests