Newsgroup: it.comp.lang.visual-basic
Titolo: Nome campo tabella

Salve a tutti
In un progetto composto da molte tabelle , esiste , per un numero elevato di
tabelle , un campo Key che rappresenta il Codice univoco.
In prima battuta , nel tentativo di evitare di costruire metodi
personalizzati , č di chiamare il campo , per tutte le tabelle  , "Codice" ;
ma durante lo sviluppo mi accorgo che manca un collegamento alla tabella
proprietaria del campo.
Un nome completo es. "CodiceVettura" , "CodiceAccessorio" , "CodiceCliente"
, ecc. , anche se obbliga a scrivere piů caratteri, aiuta a tenere sotto
controllo il codice ; mi sembra che faciliti anche la lettura delle join.
Penso di assegnare il nome completo e di modificare il costruito.
Quale scelta di solito seguite ?
Grazie
giuseppeD

 Quale scelta di solito seguite ?
Generalmente utilizzo ID_ e un qualcosa che mi indichi di cosa si tratta,
tipo ID_Fattura, ID_Bolla, ecc...
Però non ne sono soddisfatto.
Spesso mi inchiodo proprio perchè riutilizzo lo stesso codice per cose
simili, e mi tocca riguardarmi tutte le query.
Allora ultimamente ho iniziato a usare il campo ID senza niente. Viceversa,
però, mi sono imposto di usare sempre la notazione 'Alias.Campo' all'interno
di qualunque query, anche senza join.
Siccome l'alias viene indicato nella clausola From, posso copiaincollare la
stessa query mille volte, cambiando solo il nome della tabella nel from.
Ciao
Alberto
--
E non so se avrò gli amici a farmi il coro,
o se avrò soltanto volti sconosciuti,
canterò le mie canzoni a tutti loro
e alla fine della strada
potrò dire che i miei giorni li ho vissuti...

 Alberto
Andrea

 ha scritto

normalmente il minor numero di caratteri possibile: a "idrecord" preferisco
"idrec" o "id".
se poi tanto devi usare una sintassi tipo vetture.codice, mettere
vetture.codicevettura ostacola la (ri)lettura della query.
imho :)
ciao

 stessa query mille volte, cambiando solo il nome della tabella nel from.
Concordo , una stringa significativa , anche se lunga , in particolare se il
proggetto è di dimensioni notevoli aiuta , fa risparmiare tempo nel proseguo
e in successivi interventi.
Necessita imporsi una specifica di lavorazione.
Salve
giuseppeD

 Quale scelta di solito seguite ?
una testimonianza "laterale" :-)
ultimamente sono passato a .net, e in molte situazioni, al posto del nome del
campo si può utilizzare la posizione della colonna, quindi ho risolto la cosa
utilizzando sempre la prima colonna come chiave, al di là del nome effettivo.
--
Salutoni
Sergio

 nome del campo si può utilizzare la posizione della colonna
Come in ADO?


 vetture.codicevettura ostacola la (ri)lettura della query.
La tentazione iniziale č quello di cercare di ridurre al minimo i caratteri
;
inizialmente ho seguito questa impostazione , ma nel rileggere , modificare
, intervenire verso la fine del proggetto ,
o interventi dopo mesi , quell' ID , che poteva ripetersi per piů tabbelle ,
mi portava a spendere tempo nella ricerca della radice.
Salve
giuseppeD

 Come in ADO?
Può darsi, in realtà ho una conoscenza piuttosto empirica di ADO.
Nella parte che conosco io (quindi elimina alla radice i command e i relativi
parametri) non mi pareva particolarmente utile utilizzare gli indici al posto
dei nomi.
Con 
ADO.NET
 sto adottando un approccio più studiato, con una maggior quantità di
routine generiche, e in questo contesto l'indice può svolgere un ruolo più
importante.
Comunque, stanotte, sono stato fino alle due a litigare con l'evento rowupdating
(o come diavolo si chiama) del dataadapter, e alla fine ha vinto ancora lui.
--
Salutoni
Sergio

 utilizzando sempre la prima colonna come chiave, al di là del nome
effettivo.
Ricordo ad una esposizione di un workshop della Microsoft , il relazioniere
spiegava che indicare la colonna con l'indice numerico , velocizzava
l'esecuzione.
Se ho una decina o più di campi , come risalgo al nome e al tipo del campo ?
Inizialmente usavo gli indici numerici , mi sto ravvenendo:
es.
1-
For i = 0 To dt.Rows.Count - 1
    it = LV.Items.Add(dt.Rows(i)(0))
    it.SubItems.Add(dt.Rows(i)(1))
    it.SubItems.Add(dt.Rows(i)(2))
    ..........
    ..........
    ..........
Next
2-
For i = 0 To dt.Rows.Count - 1
    it = LV.Items.Add(dt.Rows(i)("CodiceModello"))
    it.SubItems.Add(dt.Rows(i)("Descrizione"))
    it.SubItems.Add(dt.Rows(i)("CodiceGruppo"))
    ..........
    ..........
    ..........
Next
Penso che la seconda dia una risposta immediata a qualsiasi problema si
presenti.
Salve
giuseppeD

[Giuseppe] scrisse:
(riassunto: è meglio utilizzare i nomi dei campi piuttosto del loro indice)
Concordo sicuramente.
Come ho scritto all'inizio del mio post, era un suggerimento laterale. Se hai
una routine generica, non collegata ad una specifica tabella, può essere comodo
sapere che comunque la prima colonna contiene la chiave, ma effettivamente è un
suggerimento di una banalità tale che non meritava nemmeno di essere scritto (la
frase precedente è scritta senza alcuna ironia)
--
Salutoni
Sergio

 gli indici al posto dei nomi.
Beh, che sia utile non saprei (tranne quando devi fare un select count, dove
non sai come il dbms chiamerà il campo calcolato, per cui usi 0 e ti ritorna
il valore).
Che si possa fare però è sicuro.
La sintassi corretta per ottenere il valore di un campo di un record è:
Valore= Recordset.Fields.Item("nome_Campo").Value
ma si può usare (anzi dovrebbe essere leggerissimamente più veloce, anche se
assolutamente non leggibile):
Valore= Recordset.Fields.Item(Indice_Campo).Value
