Autore Topic: Sviluppo Gestionale Rubinetto Felice  (Letto 22239 volte)

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #15 il: 06 Novembre 2015, 14:15:14 »
Oggi qualche passetto avanti nella comprensione dei database penso di averlo fatto.  :D

Bene.
Una cosa che non ho capito \dn a me mostra solo public e postgres come schema.
Devo pensare lo Schema come un contenitore in cui puoi creare oggetti del db da tenere separati da altri consentendone l'accesso a gruppi di utenti specifici. E' perfettamente lecito avere una tabella Cliente nello schema Public ed una tabella Cliente nello schema Gianluigi.
Per indirizare l'una o l'altra devi usare la sintassi schema.tabella  Public.Cliente o Gianluigi.Cliente. Ovviamnete i dati contenuti nelle due tabelle possonon differire o essere identici.
Lo schema Public è lo schema predefinito (postgres non è una schema ma il proprietario dello schema Public) e viene creato dalla configurazione iniziale.
Per creare un nuovo schema devi itulizzare il comando
Codice: [Seleziona]
CREATE SCHEMA nomeschema ...
Nel file di configurazione postgresql.conf la chiave search_path serve ad impostare la lista degli schemi in cui effettuare la ricerca degli oggetti.
Lo schema da utilizare può essere anche impostata al volo con l'istruzione sql SET SEARC_PATH nome

Un consiglio, per i valori monetari, laddove serve una corretta approssimazione, puoi usare il tipo Numeric, progettato appositamente per contenere valori monetari, tieni presente che le operazioni matematiche su questo tipo sono più lente rispetto agli Integer.
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #16 il: 06 Novembre 2015, 22:08:19 »
Ciao Sotema,
quindi non real ma numeric per precisione decimale sui soldi, grazie.  :ok:
Avevo un po guardato saltabeccando la sontuosa documentazione di PostgreSQL, peccato che sia in inglese che d'accordo che è un pochino più semplice di prima da capire visto il grande aiuto di Google Translator, però quando si affrontano concetti nuovi...  :rolleyes:
Davanti alle spiegazioni difficili che siano in inglese o italiano ormai tendo sempre di più ad assopirmi ho paura che l'età non mi aiuti proprio.  :sleepy:
Dicevo che guardando qui e la nelle spiegazioni avevo incontrato CREATE SCHEMA ma non avevo capito l'utilità degli schemi e temo ancora non mi sia del tutto chiara.
Il fatto è che qui siamo di fronte a un signor  database mentre io ho usato sempre piccoli database che erano dei file unici facili da comprendere, sapevi dove erano li copiavi e mandavi al cliente...

Come ho avuto già modo di dire ho necessità di raffigurare l'insieme in modo concreto per poter capire come funziona, io e l'astrazione viviamo in due dimensioni separate.

Lo so capita sempre dopo l'euforia iniziale arrivano le prime delusioni in concomitanza alle difficoltà a comprendere e poi non siamo tutti uguali, il fatto di essere troppo ignorante e non particolarmente intelligente di certo non mi aiuta.  :'(

Ti chiedo alcune cose, ma sia chiaro che è senza impegno alcuno, intendo dire che se non hai tempo o voglia non mi rispondi e io rimango contento di te in uguale misura, lo giuro davvero.
Già hai spiegato che PostgreSQL può lavorare sia in locale che in rete e la tua guida mi ha permesso di creare un database di prova ecc..., potresti ora delineare un po meglio il quadro:
Dove sono i vari file di PostgreSQL?
Come lo/li spedisci a un cliente?
Crei il database da codice al momento del primo avvio? Se si o a volte, dove lo inserisci?
Io mi sono limitato a crearlo come da tue indicazioni e poi l'ha trovato Gambas in localhost, ma in una realtà lavorativa?
Crei sempre uno schema per ogni utilizzatore o gruppo? Serve per separare il grado di conoscenza fra i vari livelli degli operatori e il loro grado di accesso ai dati?
Che postgres fosse il proprietario dello schema public lo avevo capito, scusa mi sono spiegato malissimo.
Oltre agli schemi, nella tua bella guida ci mostri le sequenze, rispondo come il finto generale di Quella sporca dozzina a proposito dello stato del Missouri, mai sentito e non è che la documentazione mi abbia illuminato.
Per ora mi sembra possa bastare, se però hai cose da aggiungere ti giuro che le leggerò con attenzione.
 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #17 il: 07 Novembre 2015, 12:56:03 »
Ciao a tutti, progetto interessante a cui mi piacerebbe dare un contributo.
Inizio col descrivere brevemente la struttura del gestionale, basato su DB2, che utilizzo in azienda.

Prendo in esempio la tabella anagrafica dell'articolo:
La tabella riporta tutti gli attributi legati all'articolo come codice, descrizione, peso, unità di misura, codice merceologico ecc..
a sua volta un attributo dell'articolo, può avere una propria tabella, ad esempio l'unità di misura viene gestita dalla sua tabella dalla quale possiomo selezionarne il tipo desiderato.

La tabella articolo credo abbia un legame con oltre 50 tabelle "minori", fra le quali scegliere i vari attributi.

Le tabelle "minori", in realtà non sono gestite in maniera individuale, ma fanno parte di un'unica tabella.
Questa ha una colonna che funge da identificativo per tutte le tabelle "minori" mentre le altre colonne riportano i dati veri e propri.

Faccio un paragone con la tabella articolo creata da Gianlugi,
dove abbiamo id_art, art_nome, art_prezzo mentre da me il prezzo, che varia periodicamente, ha una sua tabella dedicata in cui trovo il codice articolo, le date di validità e il prezzo.

Oltre alle tabelle anagrafiche, ci sono le tabelle su cui vengono inseriti giornalmente i dati provenienti da le varie mansioni degli uffici,
ad esempio l'entrata merce al magazzino, la spedizione della merce ai clienti, gli ordini in arrivo dai fornitori, le registrazioni contabili ecc.

Tutte queste attività, sono gestite da molteplici tabelle dedicate, ad esempio tutte le attività di uscita merce giornaliere, vengono memorizzate su una prima tabella, successivamnete in notturna, delle routine analizzano tutti i dati e quelli che superano tutta una serie di controlli, vengono memorizzati in una seconda tabella che quindi conterrà solo i movimenti corretti, arrichhendoli di ulteriori informazioni.

Il campi delle tabelle hanno una nomenclatura che segue questa logica, i primi due caretteri riportano i primi due caretteri della tabella di appartenenza, i restanti, identificano il campo vero e proprio, in questo modo il campo XXART sappiamo che appartiene alla tabella dell'anagrafica articolo, mentre il campo YYART appartiene alla tabella delle uscite merci.
Questo torna utile in fase di progettazione perchè permette di poter idenficare meglio le tabelle e perchè al netto del prefisso, il campo ha lo stesso nome in tutto il db.

A disposizione per qualsiasi chiarimento, ciao.

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #18 il: 07 Novembre 2015, 15:47:55 »
Ciao Sotema,
quindi non real ma numeric per precisione decimale sui soldi, grazie.  :ok:
Avevo un po guardato saltabeccando la sontuosa documentazione di PostgreSQL, peccato che sia in inglese che d'accordo che è un pochino più semplice di prima da capire visto il grande aiuto di Google Translator, però quando si affrontano concetti nuovi...  :rolleyes:
http://docs.itpug.org/

Ti chiedo alcune cose, ma sia chiaro che è senza impegno alcuno, intendo dire che se non hai tempo o voglia non mi rispondi e io rimango contento di te in uguale misura, lo giuro davvero.
Già hai spiegato che PostgreSQL può lavorare sia in locale che in rete e la tua guida mi ha permesso di creare un database di prova ecc..., potresti ora delineare un po meglio il quadro:
Dove sono i vari file di PostgreSQL?
se ti riferisci ai vari database la loro locazione è determinata dalla variabile d'ambiente PGDATA, può variare a seconda del SysOp in uso (Linux, Win, BSD...), su linux può variare a seconda della distribuzione , in genere sono nella cartella /var/lib/postgresql/9.4/main/base ma sono identificati da un codice numerico e non è immediato associare un cluster, questo è il termine esatto, al nome del DB.

Come lo/li spedisci a un cliente?
Tra le varie utilità a disposizione vi è l'applicazione pg_dump che esegue il backup di un intero database; dispone di molte opzioni (a te la ghiotta occasione di studiarle). Per effettuare la copia della struttura di un DB vuoto da trasferire al cliente puoi usare la sintassi:
Codice: [Seleziona]
pg_dump -f rubifelix -U test -s -C -d rubinettofelice
che crea un file di testo contenente le istruzione SQL per creare il database. Tale file può essere dato in pasto a pg_restore (non mi chiedere a cosa serve perché ti licenzio  ;D) oppure puoi farlo leggere dal client psql con il comando \i nomefile

Crei il database da codice al momento del primo avvio? Se si o a volte, dove lo inserisci?
In linea di principio preferisco creare una classe specializzata per creare il db, nel caso questi non esista, al primo avvio del programma.

Ora vado a farmi delle caldarroste... :ciao:
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #19 il: 07 Novembre 2015, 17:43:52 »
Ciao a tutti, progetto interessante a cui mi piacerebbe dare un contributo.
Inizio col descrivere brevemente la struttura del gestionale, basato su DB2, che utilizzo in azienda.
Grande Berserker79,
se ti unisci a noi ci renderai felici.  :D
Magari non mi crederai ma un po invidio il tuo lavoro, beati voi che sapete cosa significa “gestionale” e avete la capacità di lavorarci su.

Citazione
Prendo in esempio la tabella anagrafica dell'articolo:
La tabella riporta tutti gli attributi legati all'articolo come codice, descrizione, peso, unità di misura, codice merceologico ecc..
a sua volta un attributo dell'articolo, può avere una propria tabella, ad esempio l'unità di misura viene gestita dalla sua tabella dalla quale possiomo selezionarne il tipo desiderato.

La tabella articolo credo abbia un legame con oltre 50 tabelle "minori", fra le quali scegliere i vari attributi.

Le tabelle "minori", in realtà non sono gestite in maniera individuale, ma fanno parte di un'unica tabella.
Questa ha una colonna che funge da identificativo per tutte le tabelle "minori" mentre le altre colonne riportano i dati veri e propri.
Vuoi dire che una grande tabella fa da base a delle viste di supporto, intendi questo quando parli di tabelle minori?

Citazione
Faccio un paragone con la tabella articolo creata da Gianlugi,
dove abbiamo id_art, art_nome, art_prezzo mentre da me il prezzo, che varia periodicamente, ha una sua tabella dedicata in cui trovo il codice articolo, le date di validità e il prezzo.
La mia tabellina ordini era solo per provare, l'ho estrapolata da un piccolo esempio che avevo tirato giù per parlare di Pragma in SQLite con Picavbg non ha nessuna pretesa di rappresentare una vera tabella, mi incuriosisce molto il fatto che, se capisco bene, nella tua azienda avete lo stesso listino con prezzi diversi distinti solo dalle date differenti. Ho capito bene? Ma se così fosse non c'è rischio di errori? Questo non si scontra con l'univocità nelle relazioni? Pensandoci bene forse è indispensabile un periodo di transazione fra i listini che permetta di smaltire il vecchio sul fronte della contabilità prima di entrare a regime. È per questo motivo che ci sono listini uguali con date e prezzi diversi? Immagino quindi che la chiave primaria preveda incorporata la data oppure la chiave è composita?

Citazione
Oltre alle tabelle anagrafiche, ci sono le tabelle su cui vengono inseriti giornalmente i dati provenienti da le varie mansioni degli uffici,
ad esempio l'entrata merce al magazzino, la spedizione della merce ai clienti, gli ordini in arrivo dai fornitori, le registrazioni contabili ecc.

Tutte queste attività, sono gestite da molteplici tabelle dedicate, ad esempio tutte le attività di uscita merce giornaliere, vengono memorizzate su una prima tabella, successivamnete in notturna, delle routine analizzano tutti i dati e quelli che superano tutta una serie di controlli, vengono memorizzati in una seconda tabella che quindi conterrà solo i movimenti corretti, arrichhendoli di ulteriori informazioni.
Pensavo che con i moderni computer un'attività “notturna” potesse essere evitata e si potesse controllare immediatamente. Se questo lo si potesse evitare io lo auspicherei, se il futuro è la vendita elettronica c'è bisogno di risposte immediate. Anche qui però pensandoci bene si può fare un primo controllo per la risposta immediata ( tipo lo abbiamo o no a magazzino), quindi il controllo più approfondito che coinvolga tutte le componenti interessate in fase successiva (tipo il controllo sulla carta di credito o solvibilità).

Citazione
Il campi delle tabelle hanno una nomenclatura che segue questa logica, i primi due caretteri riportano i primi due caretteri della tabella di appartenenza, i restanti, identificano il campo vero e proprio, in questo modo il campo XXART sappiamo che appartiene alla tabella dell'anagrafica articolo, mentre il campo YYART appartiene alla tabella delle uscite merci.
Questo torna utile in fase di progettazione perchè permette di poter idenficare meglio le tabelle e perchè al netto del prefisso, il campo ha lo stesso nome in tutto il db.

A disposizione per qualsiasi chiarimento, ciao.
Ho momentaneamente sospeso la compilazione dei protocolli di lavoro anche perché essendo io quello che ne sa di meno sui gestionali, devo prima chiedere a voi.
Appena capisco un po di più di PostgreSQL ho intenzione di rimettermi al lavoro.

Riguardo la nomenclatura se proponessi ad esempio:
1. I nomi delle tabelle devono sempre essere plurali se un nome di tabella deve riportare un nome composto tipo AliquoteIva lo si rovescerà per ottenere un chiaro finale plurale e cioè IvaAliquote.
2. I nomi di campo devono sempre essere singolari si potranno abbreviare la dove non è possibile fraintenderne il significato.
3. I nomi di campo saranno preceduti dalle prime tre lettere del nome della tabella più il tratto di sottolineatura fatto salvo il punto 2 e cioè fraintendere a quale tabella ci si riferisce.
4. Le chiavi primarie inizieranno sempre con ID_ e le prime tre lettere del nome della tabella fatto salvo il punto 2.
5. Le chiavi esterne saranno nominate come le loro chiavi di origine.

Se ho capito quanto dici questo non andrebbe bene?

Bene arrivato  :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #20 il: 07 Novembre 2015, 17:50:38 »
...

Ora vado a farmi delle caldarroste... :ciao:

Buone le caldarroste! Da bambino avevo messo a perdere mia madre che si era dovuta attrezzare con tanto di padella forata.

Dopo, satollo del sublime cibo, se ti va di rispondere anche a quello che hai lasciato in sospeso...   :rotfl:


Dai che scherzo è Berserker79 che mi ha messo di buon'umore.  :D Sembra che abbiamo imbarcato un nuovo avventuriero  :ok:

 :-*  :ciao:

nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #21 il: 08 Novembre 2015, 14:48:23 »
Citazione
Vuoi dire che una grande tabella fa da base a delle viste di supporto, intendi questo quando parli di tabelle minori?

Si tratta di una tabella che nella prima colonna ha inserito il codice/nome della tabella minore, mentre nel secondo campo sono inseriti tutti i dati degli altri campi della tabella minore.
Faccio un esempio:
la tabella minore TBEAN, gestisce il tipo ean, al suo interno troviamo le colonne "TIPO EAN", "CODICE EAN", "EAN ABILITATO".
Nella tabella reale troveremo i dati in questo modo
CODICE_TABELLA  DATI_TABELLA
TBEAN                       E1234567890123S

il dato presente nella colonna "DATI_TABELLA" contiene il carattere E che va associato alla colonna "TIPO EAN", i caratteri 1234567890123 da associare alla colonna "CODICE EAN"
e il carattere S che va associato alla colonna "EAN ABILITATO".

Citazione
La mia tabellina ordini era solo per provare, l'ho estrapolata da un piccolo esempio che avevo tirato giù per parlare di Pragma in SQLite con Picavbg non ha nessuna pretesa di rappresentare una vera tabella, mi incuriosisce molto il fatto che, se capisco bene, nella tua azienda avete lo stesso listino con prezzi diversi distinti solo dalle date differenti. Ho capito bene? Ma se così fosse non c'è rischio di errori? Questo non si scontra con l'univocità nelle relazioni? Pensandoci bene forse è indispensabile un periodo di transazione fra i listini che permetta di smaltire il vecchio sul fronte della contabilità prima di entrare a regime. È per questo motivo che ci sono listini uguali con date e prezzi diversi? Immagino quindi che la chiave primaria preveda incorporata la data oppure la chiave è composita?
la tabella dei listini, ha due colonne che servono a stabilire i periodi di applicazione del listino, inizo periodo e fine periodo.
Questi due campi ti permettono di avere uno storico del listino, mentre se io aggiornassi il prezzo sempre sullo stesso record non potrei fare dei controlli a ritroso sulle variazioni del prezzo.
Ad adempio, oggi ordino al fornitore x, l'articolo y al prezzo z. Successivamnete il fornitore mi comunica un cambio prezzo, che vado a sovrascrivere al prezzo precedente.
Al momento della consegna dalla merce che avevo ordinato, come faccio a verificare se il prezzo che mi ha applicato è quello corretto alla data del mio ordine, tenendo anche conto che la fattura può arrivare anche diverso tempo dopo la data del mio ordine?
Per quanto riguarda la gestione della tabella, ovviamente le date fanno parte della chiave primaria, in modo che il listino non possa avere a partire dalla stessa data due prezzi differenti.

Citazione
Pensavo che con i moderni computer un'attività “notturna” potesse essere evitata e si potesse controllare immediatamente. Se questo lo si potesse evitare io lo auspicherei, se il futuro è la vendita elettronica c'è bisogno di risposte immediate. Anche qui però pensandoci bene si può fare un primo controllo per la risposta immediata ( tipo lo abbiamo o no a magazzino), quindi il controllo più approfondito che coinvolga tutte le componenti interessate in fase successiva (tipo il controllo sulla carta di credito o solvibilità).

Quindi diciamo che ci sono tabelle che chiamo di "lavoro" che subiscono modifiche continumente, da parte degli utenti che svolgono le loro mansioni, mentre ci sono tabelle che chiamo "di consolidamento" che vengono gestite esclusivamente dalle routine notturne, e che contengolo solo dati validi.

Facciamo un esempio:
Faccio un ordine al fornitore di 30 articoli. Questo ordine si trova nella tabella di lavoro A e fino a quando non arriverà la consegna, non passerà sulla tabella di consolidamento B.
Al momento della consegna, rispetto al mio ordine originale, il fornitore non ha consegnato n articoli e di alcuni, ha consegnato delle quantità inferiori alla mia richiesta.
Sulla tabella di lavoro A avrò articoli ordinati, quantità ordinata, quantità ricevuta, mentre sulla tabella di consolidamento B, passeranno solo i movimenti validi perdendo di conseguenza gli articoli che il fornitore non mi ha consegnato. Perderò anche il campo della quantità ordinata, trovando solo la quantità ricevuta insieme ad altri dati come il numero fattura del fornitore.

Se devo realizzare per l'ufficio commerciale un report che mostri tutti gli ordini in consegna futura, ovviamente attingero dalla tabella A.
Mentre se devo realizzare un report che mostri l'analisi delle merci ricevute, attingo alla tabella B che risultà più indicata rispetto alla tabella A (che contiene anche lei i dati della merce ricevuta) in quanto è assente dalle righe superflue della merce non consegnata.
Se devo realizzare un report che mi indica il livello di servizio del fornitore, dovro necessariamente attingere alla tabella A in quanto è l'unica ad avere il dato di orinato e di consegnato.
Se devo realizzare un report sugli ordini consegnati in attesa di ricezione della fattura, dovrò puntare necessariamente alla tabella B che contiene questo dato.

Spero di aver spiegato bene la differenza fra le due tipologie di tabelle, come puoi vedere non è legato ad un discorso di risposta immediata alle richieste utente.

Citazione
Ho momentaneamente sospeso la compilazione dei protocolli di lavoro anche perché essendo io quello che ne sa di meno sui gestionali, devo prima chiedere a voi.
Appena capisco un po di più di PostgreSQL ho intenzione di rimettermi al lavoro.

Riguardo la nomenclatura se proponessi ad esempio:
1. I nomi delle tabelle devono sempre essere plurali se un nome di tabella deve riportare un nome composto tipo AliquoteIva lo si rovescerà per ottenere un chiaro finale plurale e cioè IvaAliquote.
2. I nomi di campo devono sempre essere singolari si potranno abbreviare la dove non è possibile fraintenderne il significato.
3. I nomi di campo saranno preceduti dalle prime tre lettere del nome della tabella più il tratto di sottolineatura fatto salvo il punto 2 e cioè fraintendere a quale tabella ci si riferisce.
4. Le chiavi primarie inizieranno sempre con ID_ e le prime tre lettere del nome della tabella fatto salvo il punto 2.
5. Le chiavi esterne saranno nominate come le loro chiavi di origine.

Se ho capito quanto dici questo non andrebbe bene?

Per quanto riguarda i nomi delle tabelle io utilizzerei solo caratteri maiuscoli, non so perchè ma quando programmo in sql mi piace utilizzare solo maiscuolo  :rolleyes:.
Per quanto riguarda i campi chiave, io sposterei alla fine _ID.
Purtroppo di postgresql non conosco nulla, volevo utilizzarlo ma ho fatto un passo indietro perchè non sono riuscito e non so se sia possibile, collegargli un database esterno (nel mio caso il db del gestionale). Anzi se quancuno di voi sa se è possibile collegare un db esterno allo stesso modo dei linked server su sql server sarebbe bellissimo.
Ciao.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #22 il: 08 Novembre 2015, 16:17:08 »
Ciao Berserker79,
ti ringrazio molto per le tue dettagliate spiegazioni  :ok:, certo è che più mi parlate di gestionale e più mi rendo conto in che bel ginepraio vi sto attirando  :D
...
(un sacco di notizie  :D )
...
Purtroppo di postgresql non conosco nulla, volevo utilizzarlo ma ho fatto un passo indietro perchè non sono riuscito e non so se sia possibile, collegargli un database esterno (nel mio caso il db del gestionale). Anzi se quancuno di voi sa se è possibile collegare un db esterno allo stesso modo dei linked server su sql server sarebbe bellissimo.
Ciao.

Allora devi proprio approfittare dell'occasione per cimentarti con lui.
Nel guazzabuglio di informazioni che ho in testa in questo momento ricordo di aver letto che è possibile collegare PostgreSQL a basi di dati esterne, cosa abbastanza recente credo.
Sono andato a cercare dove avevo letto questo ma non sono riuscito a recuperare l'informazione.  :rolleyes:
Mi sembrava fosse nella documentazione ufficiale ma non ci giurerei.  :-\
Confido in sotema per avere notizie certe. Comunque continuo con le ricerche...

a proposito...

Caro Sotema,
ho scoperto una cosa che mi ha lasciato di stucco: Nella mia home c'è un file (.pgpass) che mostra in chiaro la password dell'utente giangi ma non l'avevamo criptata in md5?  :rolleyes:

È forse dovuto al fatto che per brevità l'ho inserita direttamente nel codice?
 :ciao:  :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #23 il: 08 Novembre 2015, 16:30:08 »
Ciao Berserker79,
ho trovato dove avevo letto la notizia, spero ti sia utile.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #24 il: 08 Novembre 2015, 18:47:25 »
Bravo Gianluigi, vedo che ti stai impegnando.  ;D

Precedentemente a FDW era possibile linkare un database SQL Server tramite ODBC driver; la configurazione era più complessa e richiedeva l'installazione del driver odbc come componente aggiuntivo.
Ciao Berserker79,
ti ringrazio molto per le tue dettagliate spiegazioni  :ok:, certo è che più mi parlate di gestionale e più mi rendo conto in che bel ginepraio vi sto attirando  :D
Caro Sotema,
ho scoperto una cosa che mi ha lasciato di stucco: Nella mia home c'è un file (.pgpass) che mostra in chiaro la password dell'utente giangi ma non l'avevamo criptata in md5?  :rolleyes:
Mai successo.

È forse dovuto al fatto che per brevità l'ho inserita direttamente nel codice?
 :ciao:  :ciao:

dovrei vedere il codice...
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #25 il: 08 Novembre 2015, 19:51:04 »
Bravo Gianluigi, vedo che ti stai impegnando.  ;D
L'impegno ce lo metto, purtroppo il cervello è quello che è  :mad:

Citazione
Mai successo.
dovrei vedere il codice...

Ho creato l'utente come da tue istruzioni salvo cambiare test in giangi e la password.
(Mi è venuta in mente una cosa la prima volta che ho usato pgAdminIII ho salvato la password ma poi mi sono accorto che quando accedevo al database da terminale con psql -U giangi -d template1 non mi veniva più chiesta la password e allora sono andato di nuovo su pgAdminIII e ho tolto la spunta e adesso è tornato a chiederla. Che sia dovuto a questo?)

Poi ho aperto il database, ho creato le tabelle e le ho popolate al solito come ho sempre fatto con SQL, questo il codice di accesso al database:

Codice: [Seleziona]
Public $Conn As New Connection
Public sNomeDB As String = "rubinettofelice"

Public Sub AproDB()

  With $Conn
    .Close()
    .Type = "postgresql"   
    .Host = "localhost"
    .Login = "giangi"
    .Password = "CippaLippa"
    .Name = sNomeDB
    .Open()   
  End With
 
  Catch
    Print Error.Text

End
Public Sub ChiudoDB()
 
  $Conn.Close
 
  Catch
    Print "Incredibile errore su Close"
     
End

Ciao e grazie dell'attenzione
 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #26 il: 08 Novembre 2015, 21:13:20 »
Bravo Gianluigi, vedo che ti stai impegnando.  ;D
L'impegno ce lo metto, purtroppo il cervello è quello che è  :mad:

Citazione
Mai successo.
dovrei vedere il codice...

Ho creato l'utente come da tue istruzioni salvo cambiare test in giangi e la password.
(Mi è venuta in mente una cosa la prima volta che ho usato pgAdminIII ho salvato la password ma poi mi sono accorto che quando accedevo al database da terminale con psql -U giangi -d template1 non mi veniva più chiesta la password e allora sono andato di nuovo su pgAdminIII e ho tolto la spunta e adesso è tornato a chiederla. Che sia dovuto a questo?)
 :ciao:
Hai ragione, il file .pgpass viene creato da pgadmin3 se decidi di salvare la password. la cosa mi era sfuggita perchè non utilizzo mai questa funzione.
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #27 il: 09 Novembre 2015, 17:57:26 »
...
Hai ragione, il file .pgpass viene creato da pgadmin3 se decidi di salvare la password. la cosa mi era sfuggita perchè non utilizzo mai questa funzione.

è vero, il bello è che ti avvisa pure ma io davanti agli avvisi mi comporto sempre in modo irragionevole, se sono in inglese spesso non li leggo perché quasi mai li comprendo alla prima a volte mi succede anche con quelli in italiano di non capirli.
Speriamo mi serva da lezione.

Mi è venuta un'idea forse per essere tutti alla pari e non avere differenti comportamenti dovremmo compilare l'ultimo stabile?

Sai mi sto rendendo conto di che bestia è PostgresSQL rispetto ai giocattoli da me usati fino ad ora ho dato il comando template1=> \h ALTER e... mi sono spaventato del risultato.
Veramente straordinario quello che può fare questo database, più ne leggo e più mi accorgo di quel niente che so e pensare che ho solo iniziato e che una buona parte di quello che ho letto non l'ho neanche capita...  :rolleyes:

È interessantissimo e continuo a “picchiarmi” con lui il divertimento, almeno il mio, prosegue...  :D

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #28 il: 09 Novembre 2015, 20:00:43 »
Ciao Berserker79,
ho trovato dove avevo letto la notizia, spero ti sia utile.

 :ciao:

Grazie per il link, appena posso faccio qualche prova e vi faccio sapere.

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re:Sviluppo Gestionale Rubinetto Felice
« Risposta #29 il: 09 Novembre 2015, 20:53:56 »
Sai mi sto rendendo conto di che bestia è PostgresSQL rispetto ai giocattoli da me usati fino ad ora ho dato il comando template1=> \h ALTER e... mi sono spaventato del risultato.
Veramente straordinario quello che può fare questo database, più ne leggo e più mi accorgo di quel niente che so e pensare che ho solo iniziato e che una buona parte di quello che ho letto non l'ho neanche capita...  :rolleyes:

È interessantissimo e continuo a “picchiarmi” con lui il divertimento, almeno il mio, prosegue...  :D
 :ciao:

Hai dato un'occhiata al link che ti ho segnalato? Contienela documentazione, versione 9.1, quasi completamente tradotta in italiano.
 :ok:
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein