Newsgroup: it.comp.lang.delphi
Titolo: Errore "Table/Procedure not found"

Sto cercando di realizzare, mediante dbXpress, una relazione molti a molti
con profondità 2 tra 3 tabelle (ovvero una tabella master collegata ad una
details, che a sua volta è la master di un'altra details) utilizzando il
fanstastico strumento dei Nested DataSet, ma nel tentativo di collegare le
tabelle a design time ottengo l'errore di cui sopra: "Table/Procedure not
found".
Cerco di rappresentare brevemente lo scenario:
- Nel DataModule Master:
 1 - inserisco un SQLDataSet in modalità table;
 2 - inserisco un DataSetProvider e lo collego all'SQLDataSet;
 3 - inserisco un ClientDataSet e lo collego al DataSetProvider.
- Nel DataModule Details (diciamo Primari):
 1 - inserisco un DataSource e lo collego all'SQLDataSet Master;
 2 - inserisco una SQLTable, impostando il MasterSource sul DataSource, e
cliccando sul pulsante a tre puntini della proprietà MasterFields imposto
le relazioni tra i campi della tabella master e della tabella details
primaria.
- Nel DataModule Details (Secondari)
 1 - eseguo le stesse operazioni del caso Details primario, con la
differenza che il DataSource di questo DatModule punta all'SQLTable
primaria invece che all'SQLDataSet Master.
- Nuovamente nel DataModule Master:
 4 - doppio click sul ClientDataSet per aprire il Fields Editor, tasto
destro e chiedo di aggiungere tutti i campi: compaiono tutti
correttamente, incluso il campo DataSet contenente i Details Primari
(chiamiamolo ClientDataSetSQLTableDetailsPrimari);
 5 - inserisco un nuovo ClientDataSet, che mi esponga il DataSet Details
Primari, impostando la sua proprietà DataSetField sul campo
ClientDataSetSQLTableDetailsPrimari;
 6 - doppio click su questo nuovo ClientDataSet per chiedere al Fields
Editor di aggiungere tutti i campi, tra cui l'ulteriore NestedDataSet
della tabella Details Secondari e, come annunciato, dopo alcuni secondi di
attesa durante la quale il puntatore del mouse si comporta in maniera
diversa dal solito, compare il fatidico messaggio "Table/Procedure not found".
Ho provato anche alcune varianti, ad esempio, nelle due DataModule
Details, sostituendo le singole SQLTable con triple di SQLDataSet,
DataSetProvider e ClientDataSet, e gestendo le relazioni mediante la
proprietà MasterSource e MasterFiels del ClientDataSet al posto
dell'SQLTable, ma ho ottenuto lo stesso risultato. Inutile precisare,
inoltre, che lo stesso errore compare (sempre con il solito comportamento
strano del puntatore del mouse) anche qualora utilizzi una
rappresentazione a query piuttosto che a table. Ammetto infine di non aver
provato via codice al posto dell'editor, ritenendolo inutile visti i
risultati e confidendo nella correttezza della logica.
Sono davvero disperato; ritengo di aver cercato ovunque, sia nei forum,
sia nelle guide ufficiali, sia nei vari manuali e libri (tra cui quelli di
Marco Cantù), sia nei repository di codice della Borland stessa, ma il
materiale che ho trovato riguarda soltanto casi di relazioni
master-details tra solo 2 tabelle. Sono arrivato anche al punto di pensare
che l'idea che mi sono fatto dei Nested DataSet sia errata, ma ritengo di
averne avuto smentita quando ho letto diversi articoli nei quali si diceva
che questa tecnica supporta fino a 15 livelli di annidamento.
La mia logica è corretta? Se lo fosse, in cosa sbaglio con l'Editor? In
attesa di una riposta mi impegno a provare via codice. Ringrazio in
anticipo per una eventuale riposta.
--- posted by geoForum on 
http://www.delphiedintorni.it

Ho dimenticato di aggiungere che ho fatto le stesse prove sia su Delphi
7.1 sia su Delphi 2006, con la differenza che Delphi 7.1 almeno mi da
l'errore finale, Delphi 2006 invece entra in deadlock...


Grazie comunque, ma ho risolto il problema
