Newsgroup: it.comp.lang.delphi
Titolo: Cosa è meglio tra...?

  Ciao a tutti ;-)
Sono un novizio, ho appena scaricato una versione trial di Delphi 7;
subito mi sono messo a lavoro e mi sono cimentato con una piccola
applicazione che dovrebbe interfacciarsi con db Access.
  Credo di aver capito che esistono molti modi per collegarsi ad un db 
(BDE, dbExpress, Ado, ... Altri?), correggetemi se sbaglio.
  Il mio primo problema ha un duplice risvolto: uno 'politico', l'altro
prettamente funzionale (nel senso: funziona? SI/NO).
 
  Risvolto politico.
  Essendo già iscritto da tempo alla newsletter della Borland, ricevo, in
data 18 Marzo 2003, una mail di informazione, che cito parzialmente:
"A Maggio 2002 Borland ha comunicato la propria decisione di rendere il
BDE una tecnologia obsoleta e di non continuarne lo sviluppo.
Comprendendo il possibile impatto di questa decisione sulla comunità
degli sviluppatori il BDE sarà comunque presente per qualche tempo nei
prodotti Borland. In un'ottica di dismissione della tecnologia Borland
ha realizzato un nuovo framework dal nome dbExpress con l'obiettivo di
minimizzare i disagi derivanti da una migrazione" [...]
e poi:
"Poichè dbExpress non offre supporto a database di tipo file-based, come
dBASE, Paradox, Access, Borland consiglia di migrare le proprie basi
dati verso InterBase in quanto ritenuto la naturale evoluzione per
Paradox e dBASE."
segue elogio delle prestazioni di Interbase 7 che non riporto
(personalmente lo considero un ottimo prodotto di fascia medio-alta).
Insomma: ancora non ho cominciato, è già vogliono tagliarmi le gambe
costringendomi a migrare tecnologia DB? Non potremo più sviluppare
prodotti con db di fascia bassa (tipicamente file-based)? Non hanno
considerato che Access risultata molto comodo sia per noi sviluppatori,
che per i nostri (potenziali) clienti? E qui vorrei un vostro parere
'politico'.
  Risvolto funzionale.
Lurkando sul newsgroup, ho notato qualche sfogo perché a quanto pare, per
la tecnologia ADO (ed é quella che sto usando e imparando) "se la
centesima cifra della versione MDAC che usi tu differisce da quella del
cliente, va in crash". Esiste un modo per uscirne indenni rimandendo
nell'ovattato recinto di zio Billy?
Grazie a tutti
 -Alx-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

nell'ovattato recinto di zio Billy?
Si, tenere aggiornato al centesimo service 
pack.il
 s.o.
Ora, sara' vero che microzozz continua a rilasciare moltissime patch, ed e'
difficile tenere aggiornato un intero parco macchine clienti, magari sotto
contratto di assistenza. Pero' bisogna anche tenere conto del fatto che un
sistema operativo non puo' uscire perfetto  e pretendere che non abbia
difetti, per cui dobbiamo anche noi professionisti abituarci a considerare che
gli aggiornamenti sono materia importante.
Conoscere lo stato degli aggiornamenti e delle varie importanze degli stessi,
imho e' principio basilare per lavorare bene.
L'altro giorno mi ha telefonato un acquirente di un mio software, lamentandosi
di vari malfunzionamenti, poi ho scoperto che la societa' che gli fa
manutenzione alle macchine gli ha lasciato un winzozz 95 version A (si,95
prima versione!!!) con adobe acrobat reader 2.1 (si!!! 2.1 !!!) .
La mia prima risposta e' stata: le sugggerisco di farsi aggiornare il sistema
operativo.
La mia seconda (a telefono chiuso) non posso riportarla per non offendere la
pubblica decenza.
Come vedi, anche noi professionisti a volte ci rendiamo la vita difficile non
aggiornando i sistemi sui quali poi vendiamo i nostri software.
Ciao!!!!
--
Morde. 
morde[at]programmer[.]net

 sistema operativo.
Scusa, ma il tuo sw fra i requisiti di sistema prevede un qualcosa di
specifico (sw o hw) o dice magari semplicemente Win32?
Nel secondo caso non vedo perche' l'utente debba aggiornare la sua
macchina (con quel che sappiamo bene comporta) che magari e' un 486 con
4 giga di HD e 32 M di ram.
Saluti
Paolo Arosio

nell'ovattato recinto di zio Billy?
Chi ha scritto quella frase è notoriamente prevenuto nei confronti di
Microsoft, quindi io non la terrei molto in conto.  Se vuoi usare ADO
fa pure, per *qualsiasi* motore DB vale la regola che la versione
utilizzata dal produttore sia la stessa utilizzata dal cliente.
-- 
Andrea Laforgia
www.geocities.com/andrealaforgia
"640kb of memory should be enough for anyone." -- Bill Gates.

gli aggiornamenti sono materia importante.
...e abituarsi a pensare che questo vale per _tutti_ i sistemi
operativi, anche per Linux, per il quale sono disponibili
aggiornamenti del kernel ogni 3 secondi ;-) ...


specifico (sw o hw) o dice magari semplicemente Win32?
L'unico requisito richiesto e' mdac 2.7, per viaggiare con ado+access db senza
problemi.
Al di la' di questo , volevo fare un esempio sulle situazione che ci si puo'
trovare ad affrontare, quando alcune societa' non mantengono i propri clienti
allineati agli aggiornamento del s.o.
ciao


 ha scritto nel messaggio
news:gnho8vgm123r9oq05...@4ax.com...

Scusate se mi intrometto.....qualcuno di voi sà darmi il link ESATTO al file
da scaricare sul sito della microsoft per scaricare l'mdac compreso il jet
engine? non ci capisco un tubo...è tutto incasinato....ci sono versioni
senza jet engine, e altre cose...non ci capisco proprio un tubo :(
Grazie.

senza jet engine, e altre cose...non ci capisco proprio un tubo :(
E' normale, purtroppo questa e' una delle cose che mi fa amara di meno
microsoft.
Vai sulla pagina
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/dataaccess.asp
E leggi, pazientemente, tutte le descrizioni.
Vale la regola che la versione piu' alta e' la piu' indicativa, ma leggi bene
la descrizione del contenuto.
Ciao


 "640kb of memory should be enough for anyone." -- Bill Gates.
Carina. Prendo nota ;-)


 aggiornamenti del kernel ogni 3 secondi ;-) ...
  Credo che il mestire del sistemista (Windows come anche *nix) non sia
limitato alla questione degli aggiornamenti (o delle patch) sempre
'freschi di giornata'. Si tratta di far convivere 'pacificamente' diversi
software, con esigenze diverse. 
  Poniamo il caso che l'applicazione X lavora con MDAC 2.6, e la nostra
applicazione Y con MDAC 2.7, cosa direste voi al cliente? 
1) Butta via X;
2) Fatti aggiornare X;
3) Torno dopodomani con una versione di Y che usa la 2.6;
4) Vediamo cosa succede se faccio lavorare X con la 2.7 ...
5) ....
  Queste questioni derivano dal fatto che non so a priori quale versione ha
già installata il mio cliente, perché il mio target di mercato non è
custom.


applicazione Y con MDAC 2.7, cosa direste voi al cliente? 
Ricordati che un assioma del versionamento e' la compatibilita' verso il
basso, cioe' installato MDAC 2.7, X continuera' a lavorare, non vedo il
problema.
Con i  miei software allego sempre l'MDAC che ho utilizzato per sviluppare.
(E' quello che diceva Laforgia sui versionamenti, quando parlava di motore db)
Ciao


custom.
Tra i requisiti del tuo programma, ci metterai ADO 2.7, non vedo dove
sia il problema.  Il tuo cliente si aggiornerà, se vuole usare il
programma.


2) Hai un solo cliente e sviluppi usando un motore della stessa versione?
I clienti della mia azienda sono diversi e, bè, sì, lo ammetto, nelle
scelte progettuali siamo piuttosto coerenti (sarà un nostro errore).
Ad esempio, ad IB 7 ci accediamo col client di IB 7, lo so siamo
strani...
-- 
Andrea Laforgia
www.geocities.com/andrealaforgia


e' cosi', 
Nel caso specifico, è così invece.


 non funzioni è piuttosto stupido e non fa il bene del tuo cliente.
 
  Non sono prevenuto, sono un novizio: quindi non ho ancora 'sperimentato'
di persona. Poi se leggo che qualcuno ha avuto dei crash, non posso che
assumerlo vero; anche se rimane da dimostrare. Per questo chiedo. 


 la versione 8...)
  Vedo che ci siamo capiti perfettamente: è proprio il tipo di disastro
che vorrei evitare!


 Nel caso specifico, è così invece.
  Scusa, a questo punto mi hai confuso... Nella prima risposta che mi hai
dato, scrivevi:
"Se vuoi usare ADO fa pure, per *qualsiasi* motore DB vale la regola che
la versione utilizzata dal produttore sia la stessa utilizzata dal
cliente."
  Devo correggere con "sia la stessa o inferiore", in modo da includere il
caso dell'applicazione X (con MDAC 2.6) di cui ho scritto sopra?
  Se l'affermazione viene così corretta, mi basta sviluppare con un
qualsiasi MDAC 2.0x ed essere sicuro che funzionerà fino a che non
interverrà, sul mercato, un MDAC 3.y (e probabilmente anche dopo). Giusto?


caso dell'applicazione X (con MDAC 2.6) di cui ho scritto sopra?
Benché esista il concetto di compatibilità all'indietro, il problema è
che non sai fino a che punto un prodotto nuovo sia compatibile con
quelli precedenti (e comunque è bene che sia esplicitamente
descritto).  A mano a mano che le vecchie caratteristiche diventano
obsolete e "deprecated", il livello di compatibilità diventa sempre
minore.  Generalmente, la compatibilità più sicura è quella tra una
versione e la precedente, ma per andare _veramente_ sul sicuro, io
userei la _stessa_ versione.


assumerlo vero
Il problema è che quanto hai letto è esageratamente sbagliato e
fondato su pregiudizi;  questo, per un novizio, può essere molto
fuorviante.


 
http://www.kylecordes.com/bag/listbytype.html
beeeellllaaa :))))) mo' me la studio per benino :)))
Ciao
Matteo

 Nel caso specifico, è così invece.
Purtroppo no. Non so se per problemi di MDAC o di motore Jet, ma finche' non
ho recuperato i sorgenti del dannatissimo software di gestione delle ore
lavorative della ditta in cui lavoravo l'anno scorso, e non li ho convertiti
da Delphi 2 a Delphi 6, non c'e' stato modo di far funzionare insieme, sulla
stessa macchina questo software insieme ad un altro (sviluppato in VC++
6.0). Una volta convertito il software (in pratica ho preso i report da
QuickReport 1.x e li ho ricomposti in QuickReport 3.5, e poi ricompilato,
quindi senza cambiare una virgola nei sorgenti), i 2 programmi sono
diventati magicamente compatibili.
Prima di questa operazione per far funzionare il primo software dovevamo
installare Microsoft Access 97, e per far funzionare il secondo dovevamo
disinstallarlo e installare Access 2000...


http://www.kylecordes.com/bag/listbytype.html
Alla quale, per completezza, aggiungerei TBetterAdoDataset
(
http://web.orbitel.bg/vassil/
) che sto utilizzando con soddisfazione nei miei
programmi.


disinstallarlo e installare Access 2000...
Mii... questa macchina elefantiaca che si chiama windows..... 
ALBERTONE (Salvati)!!  inserisci questa nella lista delle barzellette di
winzooz....
GULP!


disinstallarlo e installare Access 2000...
Non è necessario installare Access per far funzionare del software che
accede a db Access, basta che sulla macchina siano installati i driver
appositi.  


 appositi.
Non sapendo come installare i suddetti drivers, chi ha fatto il lavoro prima
di me aveva trovato questa soluzione empirica.
Va anche detto che, trattandosi di Windows 2000, anche il fatto di aver
individuato quale fosse la DLL che non funzionava nel modo giusto non era
sufficiente, perche' una volta cancellata la DLL e sostituita con la
versione funzionante, il sistema operativo diceva "ohibo', chi e' che mi
cambia le librerie? Meglio che rimetta a posto quella originale...", e senza
dire nulla, il file tornava com'era prima...

Mii... questa macchina elefantiaca che si chiama windows..... 
Io direi: questa incompetenza di chi scrive e installa i programmi....


di me aveva trovato questa soluzione empirica.
E se fosse stata leggermente più competente ne avrebbe trovata
un'altra.  Il tutto avrebbe avuto risvolti migliori, per esempio, oggi
tu non staresti qui ad accusare MDAC di colpe che non ha.


poiche buona parte del flame è partita da una mio post, mi sento obbligato a
intervenire.
1) Accedere ad un db server con un client di una versione diversa la ritengo
una cosa capace di far uscire sui monitor del pc anche delle ballerine che
fanno il can-can
Non ho mai parlato di questo, quanto di "diverse versioni di ADO".
2)Sarò polemico, prevenuto etc, ma vorrei che qualcuno mettese per iscritto
che aggiornando ADO viene garantita la compatibilità all'indietro,
assumendosi la responsabilità di quanto dice.
Non parlo di estensioni delle interfacce che rientrano nella normale
evoluzione di un qualsiasi software, ma del supporto per le cose
preesistenti e del loro identico funzionamento indipendentemente dalla
versione.
E non parlo solo di access, ma anche di SqlServer e magari di Oracle
3) Sarò ancora + polemico, prevenuto etc, ma vorrei che qualcuno facesse una
piccola indagine sui vecchi post di questo NG per stimare la percentuale di
post relativi a malfunzionamenti di ADO.
4) Ma dico di +, fare lo stesso per il BDE di mamma borland e vedere a
quanto ammonta la differenza, sperando che qualcuno non mi dica che il bde,
ben lungi dall'essere perfetto, non è usato o è poco diffuso.
Al solito, non parlo di paradox, ma di Sybase, Oracle, SqlServer interbase
etc
5) Vorrei anche che fosse presentata una stima del numero di fix per i
prodotti borland come delphi5 e bde comparandola con il numero di fix di ado
e di visual basic 6
Occhio: non parlo di sistemi operativi, ma di tools di sviluppo e tecnologie
di accesso ai dati
6) Cito una cosa che ho fatto personalmente:
porting da delphi1 con bde a 16 bit a delphi5 con bde a 32 bit.
Database: Sybase
Modifiche al codice: alcune uses.
Vorrei info da qualcuno che ha fatto una cosa del genere su una applicazione
basata su ADO
Dimenticavo: il tutto è stato conseganto al cliente in 3 gg lavorativi
dall'inizio.
Il 90% del tempo è stato usato per verifiche funzionali e test.
Per motivi di privacy, non posso ovviamente dire chi è il cliente, ma basta
dire che è una spa del ramo finanziario/assicurativo.
7) Vorrei che gli esperti di ADO condividesso la loro esperienza x cio che
riguarda il passaggio prossimo ad ADO.Net: entità delle modifiche,
differenze di interfaccia, la solita compatibilità all'indietro etc
Infine, visto che il post iniziale chiedeva consigli, diro cio che penso,
sperando di non essere considerato fuorviante.
Access lo userei se proprio dovessi, solo x app di cui so x certo, anzi di
+, che non saranno MAI usare in multiutenza e dove il numero di record
stimato non va oltre determintae soglie.
Anche il + volte citato archivio di cd, musicasette, vinile etc non è un
caso reale.
Ho amici che hanno collezioni tramandate di padre in figlio che contano
migliaia di supporti, autori etc.
Qui, pur essendo una delle app monoutente + diffuse, io ci penserei molto su
a usare access.
Per contro, usare firebird, di fatto ti cambia poco la vita nel caso della
monoutenza.
Anzi, avendo tutti gli strumenti tipici di un db client/server come stored
procedure e trigger, ti semplifichi un po alcune cose.
Poi, se un bel giorno il tuo cliente dice che vuole usare la tua app in
rete, se scritta bene basterà instalare il server firebird da qualche parte,
spostare i files del database e installare la tua app sui vari client.
Il tutto senza dover cambiare db o fare refactoring sulla applicazione
Se poi hai i soldini, un occhiata a interbase 7 desktop io la darei.
Bye
A

differenze di interfaccia, la solita compatibilità all'indietro etc
Parliamo di qualcosa di più interessante: condividiamo l'esperienza
nel passare da BDE a dbExpress...


 nel passare da BDE a dbExpress...
Lo so che non sarà molto facile fare questo salto, ma un conto è fare ciò
ogni 10 anni, un conto ogni 1/2 anni, non trovi?
Certo,  se borland avesse sfornato il dbx con delphi5 o magari con delphi4
saremmo stati tutti + felici, e dico tutti, me compreso.
Chi lavora in vb ha visto negli anni cambiare praticamente ad ogni nuova
release di vb la tecnologia di accesso dai dati.
In vb5 si usavano DAO e RDO
Poi, con vb6, venne introdotto ADO. Parentesi: i progetti vb4 non erano
compatibili con vb5.....
Credi che un cambio di paradigma di questo tipo all'anno possa influire in
modo positivo sulla qualità del software prodotto?
Certo, questa cosa può essere letta come un continuo migliorare.
Ma può anche essere letta come "dio mio, cosa abbiamo venduto a questi?
Buttiamo via tutto e ricomiciamo..." oppure, ANCORA PEGGIO, che quanto
usiamo è frutto di una errato studio del dominio del problema.....
Bye
A.

Perfetto non è, ma hai trovato cose per le quale una fix sarebbe priorità 1?
Difficilmente, nel lavoro di tutti i giorni, si trovano "bug",
comunque sui ng di Cantù si discuteva di alcuni aspetti di D7 che sono
ancora da mettere a posto (e con una certa urgenza).


 ancora da mettere a posto (e con una certa urgenza).
premesso che vao a vedere, almeno una indicazione di massima....?
A.

 A
Ciao
-Alx-


 di tutti (è giusto che io ricambi in qualche modo).
Uno studio comparativo , imho, dovrebbe approfondire in particolare
l'impatto sulle vs applicazioni di una sotituzione del db.
In termini di performances un confronto non ha molto senso, trattandosi di
prodotti di fascia diversa.
Uno è file-server l'atro è client/server.
Access non ha ne trigger ne stored procedure.
Le seconde in particolare permettono tra le altre cose di demandare al
server db alcune operazioni.
Bye
A.

 server db alcune operazioni.
  Dunque meglio mantenere il confronto sul terreno delle tecnologie
file-based. Ma quali? 
  Certo se la Borland fosse disposta a rendere opensource le tecnologie
che vuole abbandonare...


 che vuole abbandonare...
Non esiste solo Access... Su un numero recente di PC Professionale ho
trovato un confronto tra almeno 5 DB diversi, e il migliore era FileMaker
Pro 6.0.
Paradox, del resto, non e' morto, semplicemente non e' piu' supportato da
Borland, ma e' un prodotto Corel, e fa parte di Wordperfect Office.
Tra le altre possibilita', in questo gruppo si e' parlato piu' volte di
FlashFiler, anche Marco Cantu' lo consigliava in qualche suo articolo (ma
non so se sia un server o meno).
Quello che manca e' solo il supporto per BDE, si potra' sempre usare ADO,
ODBC o dbExpress, se esistono i drivers appositi...