Titolo: Calcolo lunghezza massima dei testi nei campi
Categoria: Codice |
|
Ultimo Aggiornamento: 11/12/05 |
Quando si importano in 4d file di testo la creazione delle tabelle viene fatto in automatico le lunghezze dei campi Alpha è di default 80. Ecco un metodo da usare per analizzare il contenuto di tutte le tabelle di un database per trovare per i campi testo o alpha la stringa più lunga (con l'esempio più lungo) e quante volte il campo è usato.
`Nexus srl www.nexusonline.it
`Umberto Migliore 29 nov 2005
READ ONLY(*)
$doc:=Create document("")
If (ok=1)
$cr:=Char(Carriage return )
$tab:=Char(Tab )
For ($t;1;Count tables)
$table_ptr:=Table($t)
DEFAULT TABLE($table_ptr->)
SEND PACKET($doc;Table name($t)+$tab+String(Records in table)+" recs"+$cr)
$quanti:=Count fields($t)
ARRAY LONGINT($quantiUsati_al;$quanti)
ARRAY LONGINT($maxLun_al;$quanti)
ARRAY TEXT($maxTesto_at;$quanti)
For ($f;1;$quanti)
$quantiUsati_al{$f}:=0
$maxLun_al{$f}:=0
$maxTesto_at{$f}:=""
End for ALL RECORDS
While (Not(End selection))
If (Mod(Selected record number;100)=0)
MESSAGE(Table name($t)+": "+String(Selected record number)+"/"+String(Records in table))
End if For ($f;1;$quanti)
$field_ptr:=Field($t;$f)
If ((Type($field_ptr->)=Is Alpha Field ) | (Type($field_ptr->)=Is Text ))
$text:=u_EliminaSpazi ($field_ptr->)
$len:=Length($text)
If ($len>0)
$quantiUsati_al{$f}:=$quantiUsati_al+1
If ($len>$maxLun_al{$f})
$maxLun_al{$f}:=$len
$maxTesto_at{$f}:=$text
End if End if Else $maxLun_al{$f}:=-1
End if End for NEXT RECORD($table_ptr->)
End while For ($f;1;$quanti)
SEND PACKET($doc;Field name($t;$f)+$tab+String($quantiUsati_al{$f})+$tab+String($maxLun_al{$f})+$tab+$maxTesto_at{$f}+$cr)
End for End for CLOSE DOCUMENT($doc)
End if
Inviato da: Umberto Migliore |
|
Visite: 12214 |
Se accedi con utente e password, puoi aggiungere dei commenti.