[Lugge] Fwd: Svelato il Mistero !

  • From: "robang@xxxxxxxxx" <robang@xxxxxxxxx>
  • To: lugge@xxxxxxxxxxxxx
  • Date: Tue, 2 Apr 2002 09:43:09 +0200

Il ven, 2002-03-29 alle 23:54, Giorgio Andreoletti ha scritto:
> Ciao,
> 
> se non ho capito male il tuo problema è che vuoi un indice autoincrementante
> in modo da identificare univocamente i vari records, giusto ?
> Se è così, allora la soluzione è molto semplice, in quanto PostgreSQL mette
> a disposizione le SEQUENCE che sono fatte apposta per questo. Esempio:
> 
> CREATE SEQUENCE "ricette_seq" start 1 increment 1 maxvalue 2147483647
> minvalue 1  cache 1 ;
> 
> CREATE TABLE "ricette" (
>     "id_ricette" int4 DEFAULT nextval('ricette_seq'::text) NOT NULL,
>     "nome_farmaco" text,
>     PRIMARY KEY ("id_ricette")
> );
> 
> in questo modo, ad ogni record inserto nella tabella ricette verrà assegnato
> un campo "id_ricette" intero autoincrementante; nota che quando fai le
> insert NON devi passare il campo "id_ricette" in quanto se lo deve generare
> da solo (ovviamente!)
> Il campo PRIMARY KEY non è obbligatorio, ma ti consiglio di metterlo sempre
> in quanto rende più snelle le ricerche fatte dalle SELECT.
> 
> spero di esserti stato di aiuto
> ciao
> Giorgio

  Ciao Giorgio, grazie per l' attenzione, la soluzione che mi proponi mi
piace tantissimo e vorrei che tu mi chiarissi meglio il significato di
quel "text", .. si riferisce alla colonna nome farmaco ?

  Mi fai l' esempio sulla mia tabella ?

 res = PQexec(connessione,"CREATE TABLE rct_db_dia (Rc_Nr    int4,
                                                 Prodotto varchar(40),
                                                 Quantita     int4,
                                                 Impo         real,
                                                 Prezzo       real,
                                                 Iva          int4,
                                                 Flag    varchar(4),
                                                 Record varchar(4));
  Questa soluzione mi piace tanto per l' autoincremento del record,
mentre non va bene per la prograssione della ricetta, li ho bisogno di
sapere qual' è l'ultima inserita per visualizzare la prima utile per
l' inserimento ogni volta che apro la finestra di tariffazione, comunque
ho capito perchè max() non funzionava.

  ... Ho cominciato a provare SELECT max( ...)  con i record da 10 in
poi e funzionava, l' unica differenza che mi è saltata agli occhi è che
i numeri da 1 - 9 erano inseriti con una sola cifra, così li ho inseriti
a mano con "psql" usando "01, 02, ... 09" .. rifaccio la select e vedo
che funziona, .. basterà inserire con un "%02d".

  Non sono iscritto alla vostra lista dunque se ritenete che possa
essere di interesse postate voi questo messaggio.

 Ho chiesto infine a Roberto se tra i vostri Tomi Informatici mi trovate
qualcosa che mi aiuti a implementare una funzione che riceve una
sequenza di numeri (data, nel fornato ggmmhh ) ne confronta la validità
con il calendario interno e se corretta mi stampa la data nella entry
nel classico formato gg/mm/hh, questa seconda parte è facile, mentre al
momento non saprei come controllare la validità della data, non voglio
usare il calendario grafico di GTK perchè prende troppo tempo in fase di
input ... sai se si può fare con SQL ?

 Grazie ancora e un abbraccio a Roberto.

 Paolo Bongiorno
 Main Programmer of Mente_Confusa@xxxxxxxxxxxx  :)

 http://digilander.iol.it/pbongy





|&kpt%*LS0NCiAgICxfXyAgICAsXyAgICAgLF9fXyAgICAuLS0tLS0tLT0tPS09LT0tPS09LT0tPS09>¸¦iجr¸¯z·¢?ib²Ú^­ö¯¢·¥z"?ZÞ??Z?éí¢m§ÿåºÎ*¹×Z?ë²?"þf§?÷¬¶?m?X¬´*+²?â?ìAjǦj»^w^tÓ_4Ð?Ü¢{k¢)ìy׬i¶­£Ýô×mô

Other related posts:

  • » [Lugge] Fwd: Svelato il Mistero !