Newsgroup: it.comp.lang.visual-basic
Titolo: ADO & ADOX

Ciao a tutti,
Forse ho un po' di confusione in testa. Mi spiego:
In una applicazione in VB 6 acceto ai dati con ADO e tutto va bene.
In alcuni casi, quando le SELECT sono molto complicate, ho pensato 
(dalla esperienza con ACCESS) di usare una query (VIEWS) su cui, poi, 
apro un recordset in cascata. Anche qui tutto bene.
Dovendo generare le query a Run time in quanto si devono adattare a 
situazioni diverse ho utilizzato il metodo Views.append dell'oggetto 
Catalog di ADOX.
L'applicazione funziona su diversi computer tranne che su uno che 
apparentemente non ha nulla di particolare di diverso dagli altri (vi 
posso accedere solo per teleassistenza essendo in un'altra sede) fatto 
sta che non vengono create le query da parte di Catalog e quindi appena 
dopo l'apertura del recordset da errore.
Non so cosa fare di preciso:
Pensavo di eliminare l'uso di ADOX ma non trovo nulla di ADO che possa 
sostituire il Catalog per generare le query, mi sembrava di aver capito 
che le stored procedure fossero qualcosa del genere ma, allo stato 
attuale delle mie conoscenze, non mi pare che generino query nel database.
Vorrei discutere la cosa in modo da trovare una via di uscita al problema.
Grazie in anticipo
Lino

 Vorrei discutere la cosa in modo da trovare una via di uscita al problema.
come linea guida, per lavorare con un vero database client-server (sql
server, msde, oracle, mysql, quellochetipare) mi sento di suggerire di
dimenticare cio` che si fa abitualmente con access e di ragionare come
si fa con i veri db: tabelle, viste, stored procedures, triggers,
utenti, permessi, transazioni, agenti, manutenzione lato server.
-- 
ciao, hal

 devi fare.
E' evidente che la mia esperienza fatta su ACCESS si dimostra una 
...palla al piede.
Approfitto della tua competenza e pazienza. Ho letto e provato un po' di 
cose sulle stored procedures (non troppo a dir la verità), ho copiato 
esempi e provato ad adattarli a casistiche mie. Mi sono divertito.
Non ho trovato però un'idea (o forse non l'ho vista) da applicare al mio 
problema.
Vedo di spiegarlo più chiaramente dell'altra volta:
Da un lato ho una tabella piuttosto complessa e dall'altro un'OCX (che 
non ho sviluppato io quindi non ci voglio metter mano) per mostrare i 
dati in modo tabellare (credo usi un DATA GRID), gestire i totali di 
colonna e cambiare l'ordine e altre cose. Queso accetta stringhe SQL 
che, però, devono essere semplici se no ha dei problemi ad eseguire le 
funzionalità per cui è stato creato.
Ma io devo interrogare le tabelle con stringhe SQL contenenti JOIN e 
GOUP che non vengono ...digerite dall'OCX.
Col sistema delle query generate a RunTime avevo risolto il problema, ma 
siamo entrambi daccordo sull'eliminazione di ADOX.
Dato che non penso si possa interrogare un recordset con stringhe SQL 
come se fosse una tabella (se è possibile dimmi cosa devo studiare per 
impararlo), potrei usare tabelle temporanee, ma ho paura che aumentino 
troppo i tempi di attesa dovendo lavorare su disco, o è possibile 
crearle su un database in RAM? Potrebbe essere una soluzione.
Ti sarei grato se volessi darmi un tuo parere.
Grazie. Ciao.
Lino

 crearle su un database in RAM? Potrebbe essere una soluzione.
se almeno l'ocx usasse la stessa connessione che usi tu (ma, a questo punto,
ho qualche dubbio, se ho capito la testa di chi l'ha progettato) potresti
creare una tabella temporanea visibile solo alla tua connessione.
si tratta di tabelle il cui nome inizia con #.
in tal caso non hai vincoli di nome anche se piu` utenti eseguono la stessa
interrogazione e chiusa la connessione essa viene distrutta.
in ogni caso puoi sempre prevedere delle viste statiche sulle quali applicare
l'istruzione sql da passare all'ocx. 
quindi: vista con tutti i garbugli del caso e all'ocx passi
SELECT <lista_campi> 
FROM <nome_vista> 
WHERE <condizioni> 
ORDER BY <quello_che_vuoi>
oppure le viste non sono predicibili e possono essere qualsiasi?
-- 
ciao, hal

 oppure le viste non sono predicibili e possono essere qualsiasi?
E' esattamente cosě, in diversi casi le viste non sono predicibili!
Ciao, Lino