PDA

Visualizza la versione completa : [DELPHI] Ciclo di inserimento valori interi formattati in database


danz67
17-05-2007, 10:42
Ciao a tutti,

ho la necessità di fare un'inserimento multiplo di seriali in una tabella (nome tabella 'seriali' campo di tipo testo).

Ho creato un ciclo che mi permette di caricare un blocco di numeri, inseririsco un numero di partenza (EdPartenza.text) e la quantita' di seriali da inserire (EdQuantita.text).

[Code:]

var
i: integer;
begin
for i:= StrToInt(EdPartenza.Text) to StrToInt(EdQuantita.Text) do
begin
AqSeriali.SQL.Text := 'insert into Seriali (descrizione, seriale, disponibile)values('+QuotedStr(form8.AqArticoli.fi eldbyname('descrizione').AsString)+','+IntToStr(i) +','+BoolToStr(true)+')';
AqSeriali.ExecSQL;
end;
end;
end;

Funziona tutto alla perfezione, pero' adesso mi è nata un'altra necessità, cioè quella di inserire numeri che hanno di partenza uno 0, es. 000001 (numero di partenza) 20 (quantita di numeri da inserire)

Chiaramente cosi' non funziona, il risultato che ho è quello di eliminazione di tutti gli 0 antecedenti al numero.
Premetto che ho prima provato con il campo di tipo integer ma in'automatico mi toglie gli 0.

Un'aiutino.
Grazie :ciauz:

alka
17-05-2007, 10:52
Originariamente inviato da danz67
Funziona tutto alla perfezione
Sì, però fai uso di parametri per eseguire la query, senza inserire i valori direttamente nello statement SQL. E' più sicuro, più efficace e più rapido nell'esecuzione, oltreché più comodo (puoi definire la query a designtime).


Originariamente inviato da danz67
pero' adesso mi è nata un'altra necessità, cioè quella di inserire numeri che hanno di partenza uno 0, es. 000001 (numero di partenza) 20 (quantita di numeri da inserire)
Chiaramente cosi' non funziona, il risultato che ho è quello di eliminazione di tutti gli 0 antecedenti al numero.

Devi usare la funzione Format per personalizzare la formattazione della versione testuale (string) del numero.


Originariamente inviato da danz67
Premetto che ho prima provato con il campo di tipo integer ma in'automatico mi toglie gli 0.

E' chiaro: si tratta di un campo numerico intero, quindi gli zeri che inserisci alla fine vanno persi perché non sono significativi e non aggiungono alcuna informazione.

Ciao! :ciauz:

danz67
17-05-2007, 11:37
Originariamente inviato da alka
Sì, però fai uso di parametri per eseguire la query, senza inserire i valori direttamente nello statement SQL. E' più sicuro, più efficace e più rapido nell'esecuzione, oltreché più comodo (puoi definire la query a designtime).

Mi metto subito all'opera.



Devi usare la funzione Format per personalizzare la formattazione della versione testuale (string) del numero.

Mi documento e provo.


E' chiaro: si tratta di un campo numerico intero, quindi gli zeri che inserisci alla fine vanno persi perché non sono significativi e non aggiungono alcuna informazione.

Lo sapevo.

Grazie di tutto, sei un grande.

Ciao! :ciauz:

danz67
17-05-2007, 14:16
Originariamente inviato da alka
Devi usare la funzione Format per personalizzare la formattazione della versione testuale (string) del numero.
Ciao! :ciauz:

Ho risolto egregiamente cosi':

[Code]

var
Formattazione: string;
begin
Formattazione := Format('00000', [Edit1.Text]);
Edit1.Text:= Formattazione + Edit1.Text;
end;

Grazie :ciauz:

Loading