L'esempio era diretto a dimostrare come si setta il campo Text:
Code:
Nome Text(250) Null
![]()
L'esempio era diretto a dimostrare come si setta il campo Text:
Code:
Nome Text(250) Null
![]()
LM
eheheh scusa ma io continuo a nn capire! Ti prego abbi pazienza!
Che si setta così:
l'ho capito ma che ALTER TABLE devo usare?!?codice:Nome Text(250) Null
MODIFY mi da errore!!![]()
Non devi fare altro che integrare il codice che già conosci, cioè così:
Code:
Private Sub CmndInserisciNuovo_Click()
Dim Connes As New ADODB.Connection
Dim RST As New ADODB.Command
'Esegue la connessione con il DataBase:
Connes.ConnectionString = StringaConnessione
Connes.CommandTimeout = 15
Connes.Open
RST.ActiveConnection = Connes
RST.CommandType = adCmdText
RST.CommandText = "Alter Table TblDatiPersonali ADD Nome Text(250) Null"
RST.Execute
'Chiude la connessione:
Connes.Close
Set Connes = Nothing
LM
ehm mi sa che parliamo di 2 cose diverse!!![]()
Allora:
Col codice che mi hai scritto su creo un campo kiamato nome nella tabella e con lunghezza 255! Sin qui ci sono!
Io però sto chiedento come posso modificare la lunghezza di un campo che esiste già!
Ho una versione vekkia del mio programma ke ha il difetto di aver i campi di 50 char! Vorrei con la patch ke sto creando modificare la lunghezza di sti campi CHE ESISTONO GIA' (e contengono anke dati!).
Se uso il codice che mi hai scritto su ovviamente mi da errore dicendomi che il campo esiste già (usando ADD).
Spulciando online ho visto che per la modifica si mette MODIFY invece ke ADD solo ke mi da errore di sintassi se uso modify...![]()
GRAZIE PER L'INTERESSE CONTINUO!![]()
Ho trovato questo articolo. Non ho esperienze dirette nel modificare i campi di un DB, percui non posso inviarti del codice. L'articolo mi sembra ben fatto e credo possa soddisfare le tue esigenze. Saluti.
L'istruzione ALTER TABLE consente di modificare una tavola esistente. Fra le altre cose e' possibile:
Aggiungere colonne
Ridefinire le colonne (tipo, dimensione)
Modificare i parametri relativi allo spazio allocato per la tabella
Aggiungere constraint
Abilitare, disabilitare ed eliminare constraint
Per quanto riguarda il primo punto, si utilizza la parola chiave ADD:
ALTER TABLE nome-tabella
ADD (nuovacol1 number(10) null, nuovacol2 varchar2(20) null);
Con questa istruzione vengono aggiunte alla tabella due nuove colonne, una di tipo number e l'altra di tipo varchar2.
Se la tabella non e' vuota, ovvero se contiene gia' dei record, le nuove colonne devono essere obbligatoriamente null, altrimenti i record gia' presenti avrebbero dei valori nulli in presenza di una colonna not null.
Quindi per inserire una nuova colonna not null in una tabella che non e' vuota si deve prima inserire la colonna definita come null. Successivamente si devono modificare i record assegnando loro un valore per la colonna nuova (tramite l'istruzione update, che sara' trattata in articoli successivi).
A questo punto e' possibile trasformare la colonna in not null, utilizzando la parola chiave MODIFY:
ALTER TABLE nome-tabella
MODIFY (nuovacol1 number(10) not null);
Questa permette anche di modificare la dimensione di una o piu' colonne:
ALTER TABLE nome-tabella
MODIFY (nuovacol1 number(15) null, nuovacol2 varchar2(30) null);
Con questa istruzione, le due colonne sono state ampliate. In questo caso non si hanno restrizioni, proprio perche' le colonne vengono ampliate.
E' possibile anche ridurre le dimensioni di una colonna e cambiarne il tipo, ma solo se la colonna e' vuota:
ALTER TABLE nome-tabella
MODIFY (nuovacol1 varchar2(10) null, nuovacol2 varchar2(10) null);
Quindi questa istruzione va a buon fine solo se le due colonne sono vuote.
Concludo sottolineando che l'unico caso in cui e' possibile ridurre le dimensioni di una colonna anche se non e' vuota, e' quello in cui si riducono le posizioni decimali di una colonna number.
Ad esempio e' sempre possibile passare da un number(8,4) ad un number(8,2); ottenendo un arrotondamento su quei numeri composti da piu' di due cifre decimali.
LM
esatto anke le cose ke ho letto io sono così!
Ma se fai una prova vedrai ke nn funziona!VVoVe:
Da errore:
ERRORE DI SINTASSI!
Ti posto lo screenshot!
nessuno ha provato?
Solo per vedere se son io ke sbaglio!
Sì ho provato, e a lungo, ed hai ragione. Credo che ci sia qualche limitazione di ALTER TABLE - Modify, però non sono riuscito a trovarla.
![]()
LM
Prova a fare così mettendo il simbolo `:
codice:ALTER TABLE `miaTabella` MODIFY `campoDaModificare` text(255)
Nada... nn va nemmeno col simbolo!![]()
E poi ADD funziona è solo MODIFY ke nn va... -.-
Credo ke nn ci sia speranza...