Gambas-it
Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: EnzoCurky - 03 Febbraio 2010, 11:56:35
-
ciao a tutti... :) :)
Ho un DB contenenti due campi codice e cognome rispettivamente string, solo ke nel campo codice inserisco solo valori numerici.Il problema nasce quando eseguo le query xke se la eseguo ordinando x cognome va tutto bene,mentre se la eseguo ordinando x il campo codice mi succede questo:
select * from clienti order by codice
codice = 1 cognome = rossi
codice = 10 cognome = bianchi
codice = 2 cognome = di lauria
codice = 3 cognome = baggio
mentre deve essere:
codice = 1 cognome = rossi
codice = 2 cognome = di lauria
codice = 3 cognome = baggio
codice = 10 cognome = bianchi
come posso fare?
-
imposta i codici con lo stesso numero di cifre es 01 02 ...10 11 ecc oppure 001 002 003 10
oppure il campo codice durante la creazione della tabella lo imposti come numerico
-
dichiarando il campo codice integer ho riscontrato dei problemi nell'inserimento dei dati in quanto nn posso inserire un dato ke scelgo io ma in automatico viene incrementato da solo....
oltre a integer come posso dichiarare il mio campo codice?...esiste numeric o qlks di simile ke nn continui a darmi lo stesso problema di integer?ho provato a dichiararlo string ma ho il problema ke ho spiegato sopra...
consigli?
-
puoi benissimo impostarlo come integer però in questo caso ti conviene anche dichiarare un altro campo integer primary key che si chiami id, per primo, in alternativa impostalo come NUMERIC
-
puoi benissimo impostarlo come integer però in questo caso ti conviene anche dichiarare un altro campo integer primary key che si chiami id, per primo, in alternativa impostalo come NUMERIC
chiedo scusa a fsurfing, ma anch'io ho avuto un problema di chiave primaria disordinata pur impostando il campo relativo INTEGER. Ho visto infatti che questo succede se gli inserimenti in tabella vengono effettuati non utlilizzando l'istruzione $Conn.EXEC("INSERT INTO nome-tabella values(" bla.. bla.. bla"), ma l'istruzione NomeRec.Update di Gambas.
Utilizzando però la suddetta $Conn.exec, ho notato che la tabella viene vista sempre ordinata per chiave primaria. Naturalmente, come dici tu, occorre definire il type del campo come INTEGER.
Ciao.