Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Consiglio su inserimenti multipli.

Win98 SP1, VB6 Pro SP3, Office 97
Ciao,
vorrei chiedervi un parere:
supponiano di avere una tabella Libri e una tabella Autori relazionate.
Voglio offrire all'utente la possibilità di inserire n autori per un libro
tramite una DBGrid legata ad un DataControl
Il problema che ho incontrato è nella difficoltà di gestione della griglia per
esempio nel trattare gli errori di vario tipo (nome già presente, chiave doppia
ecc.).
Voi come fate ad offrire all'utente la possibilità di inserimenti multipli?
Quali altre alternative esistono alla DBGrid?
Al momento avevo pensato di aggirare il problema mettendo per esempio 5 textbox
per inserire gli autori. E' una soluzione ragionevole?
Grazie,
teddy...@hotmail.com
ICQ 7044062
Como - Italy

 ha scritto nel messaggio
news:38baaae...@news.tin.it...


 per inserire gli autori. E' una soluzione ragionevole?
Evitare che l'utente agisca direttamente sulla griglia può
semplificare il compito della gestione degli eventi correlati;
Ne consegue che dovrai preoccuparti tu di inserire
i dati nel database, aprendo la tabella, facendo le
verifiche di validità del record e in ultima ricordandoti
di effettuare il refresh del controllo data, che si occuperà
di ripopolare la griglia.
Ciao

 > Al momento avevo pensato di aggirare il problema mettendo per esempio 5
textbox  per inserire gli autori. E' una soluzione ragionevole?
comincio dalla fine.
no.
e se gli autori sono 6, 7, n ? p.e.: un convegno con 55 relatori, tutti
elencati in frontespizio. e poi cosa fai, una routine di controllo su ogni
txtAutore(i) ?
(chi ancora non lo sapesse, un'opera con piu' di tre autori la si cerca nei
cataloghi NON con "AAVV" ma sotto il titolo, che e' (in teoria) l'unica cosa
certa (tralascio cose tipo: "Atti del 20. Seminario di Radiologia dell'Ist.
Rad. di Thule: <<Le Lastre di Pluto e gli Ossi Scomparsi>>", in cui il
titolo e' molto meno certo del sesso angelico).
in questi casi si fa -- mi limito all'idea generale, non all'implementazione
concreta -- un bel form o simili "collega autore al titolo", e sotto puoi
grigliare (grand guignol?) la tabella autori, giusto perche' uno abbia
l'idea di cosa c'e' in zona. man mano che uno inserisce in un txtbox
"m-a-n-z-o-n-i" ecc., il cursore si sposta nella griglia lasciando
intravedere...
se l'autore non c'e', si deve dare *da li'* la possibilita' di inserirlo.
con *tutti* i controlli del caso, seno l'utente tipico ti impuffa:
-- cerca un autore ("manzoni, ridge")
-- non c'e'
-- preme "nuovo"
-- ne inserisce bellamente uno che c'e' ("manzoni, carlo").
ben che vada, il dbms sotto manda un messaggio abbastanza criptico in
inglese, "couldnt update table 'autori': duplicate key"... -- mal che vada,
ti crolla il prg, e nel db ti trovi del gran casino.
-- quindi, se lui mette "manzoni, carlo", tu controlli (con seek, select,
quello che vuoi, e if not .nomatch gli dici "CIPPERIMERLO!", annulli il
"nuovo" (che quindi non sara' prob un semplice addnew ma molto meglio un
form con variabili che colleghi al db solo in caso di ok da parte
dell'utente vistato dai tuoi controlli).
il concetto base di queste cose *e'* e *dev'essere*:
-- decidi qual e' l'oggetto principale (di solito, la tabella libri). E la
indicizzi sulla prima parola significativa. le regole vigenti non amano
affatto l'articolo, anche perche' seno' hai 899k libri con "il" e pochi di
meno con "lo" "la" "gli" "le". in compenso, non so perche', le preposizioni
+- articolate valgono come significative. quindi, tipo, *a topolina* e "da
paperopoli: ricordi di paperino" non vanno alla T o alla P...
-- a ogni entry di quella tabella assegni un bel _contatore_, ovviamente
univoco -- che l'utente lo veda o no, non gliene frega niente a nessuno.
*deve* vederlo o almeno esserne al corrente chi cataloga.
-- il quale colleghera' una o piu' entries dalle altre tabelle legando gli
id (di solito, altri contatori) di quelle all'id della principale. in questo
i contatori fanno tanto bene. se devi legare delle stringhe di 255
caratteri, con qualche mln di record tende a venirci del casino... oltre a
dover upgradare l'hw ogni tre inserimenti...
-- a questo punto, hai teoricamente risolto anche il problema di robe tipo:
*Pluto e l'Osso Introvabile* / Walt Disney, Piero Pelu' ; illustrazioni di
Altan. - Milano : Mondadori ; Torino : Einaudi, c1999. - [16], 444, [xxxii]
p. : ill. , tav. ; 31 cm. ((ed. rarissim.
questo e' lo spunto. se ci pensi un po', ti si aprono infiniti davanti...
tipo: e i titoli uguali ma di autore diverso ? ... *Poesie* / Friedrich
Hölderlin e *Poesie* / Fernando Pessoa, insomma ...
prima di partire magari dai un occhio al sito che ho segnalato oggi nel
thread query in visual basic. guarda bene le schede che ci sono. c'e' gente
che ci lavora da decenni... -- *poi* comincia.
ciao, a.