Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - compnoprofit

Pagine: [1]
1
Ti ringrazio, mi hai indicato la strada giusta  :D
Ciao grazie

Non c'è di che, sono contento che ti sia servito, io prenderó nota del tuo codice per implementare in Gambas la sentenza sqlite, mi servirá.
Ciao

2
grazie Ceskho
@Golia
prova con
Codice: [Seleziona]

CREATE TRIGGER cancellatutto
BEFORE DELETE ON costi

FOR EACH ROW BEGIN

    DELETE from analisi WHERE cod_costo = OLD.cod_costo;

END;


Cosí cancellando un record di costi si cancellano tutte le analisi con lo stesso cod_costo.
Il trigger precedente delete_costo fa l'opposto di quello che mi hai chiesto, ossia impedisce cancellare un costo se sono presenti analisi che lo utilizzano, quindi dovrai eliminarlo dal db, però è bene conoscerlo potrá servirti per altre tabelle.

3
Nel mio programma che iniziai a far con codeblocks e poi abbandonai facevo cosí:

dalla linea di comando mi creo il database
SQLITE3 prezzario.db3

creo le tabelle:

Codice: [Seleziona]
CREATE TABLE [costi] (
[id_costo] INTEGER  PRIMARY KEY NOT NULL,
[cod_costo] VARCHAR(40) UNIQUE NOT NULL,
[descr_costo] VARCHAR(255)  NOT NULL,
[costo_unit] REAL NOT NULL,
[genere] VARCHAR(40)  NOT NULL,
[unmis] VARCHAR(40)  NOT NULL
);

CREATE TABLE [analisi] (
[id_an] INTEGER  NOT NULL PRIMARY KEY,
[articolo] VARCHAR(255) NOT NULL,
[cod_costo] VARCHAR(40) NOT NULL,
[resa] REAL,
[costo] REAL
);


creo i triggers rispettivamente sulle operazioni di insert, update e delete:

Codice: [Seleziona]
CREATE TRIGGER edit_analisi before insert on analisi
for each row
begin
select case
when
(
(new.cod_costo is not null)
   and
 (
  ((select cod_costo from costi where
    cod_costo =new.cod_costo) is null)
)
)
then raise(abort,'violacion integridad')
end;
end;

CREATE TRIGGER upd_analisi before update on analisi

for each row begin
select case
when
(
((select cod_costo from costi where
 cod_costo = new.cod_costo) is null)
)
then raise(abort,'violacion integridad')
end;
end;

CREATE TRIGGER delete_costo before delete on costi

for each row begin
select case
when
((select cod_costo from analisi
 where cod_costo = old.cod_costo) is not null)
 then raise(abort,'violacion integridad')
 end;
 end;


Spero che possa esserti utile

4
Credo si possa fare con i triggers:
CREATE TRIGGER contatti before delete on fornitori
Una volta li utilizzai in un test, se nessuno ti risponde quando vado a casa cerco di recuperare il codice e lo posto

5
Programmazione (Gambas 2) / Re: read file
« il: 10 Gennaio 2010, 11:52:24 »
:evviva: ecco adesso mi avete davvero salvato, ignoravo gb.setting, grazie fsurfing. Il programma di computo metrico a cui sto lavorando non lo utilizzava.
Le dimensioni dei files di scambio in edilizia possono essere grandi perché c'è un file di testo .pwe molto utilizzato dove si riversa la contabilitá di un'opera, peró oggi esiste una versione piú moderna basata su xml, suppongo che si possa prescindere del pwe.
Grazie ai moderatori  :ciao:

6
Programmazione (Gambas 2) / Re: read file
« il: 10 Gennaio 2010, 10:58:23 »
Sono d'accordo con Leo72, mysql e sqlite sono lí per quello, peró non dimentichiamo che i files di testo saranno utilizzati sempre per alcune operazioni, ad esempio: un file di configurazione nascosto dove salviamo i dati per il login al database, un file per condividere dati fra programmi che usano formati e database diversi (in ingegneria quasi tutti i programmi hanno uscite in .csv .txt .pwe). In questi casi sarebbe piú snello e pulito a livello di codice l'accesso random o binario rispetto all'approccio di tipo sequenziale.

7
Programmazione (Gambas 2) / Re: read file
« il: 09 Gennaio 2010, 14:37:14 »
Anche a me servirebbe fare con Gambas quello che facevo con QBasic per Dos: aprire un file di testo con accesso casuale o binario, ció permette ad esempio di leggere o modificare solo il record nº12 conoscendo la lunghezza totale del file e la lunghezza del record (che è fissa per tutti i records).
Come ha detto Pastrano credo che si possa fare utilizzando l'approccio del file binario con le istruzioni READ e WRITE.
Esistono altri metodi per modificare una riga di un file di testo senza dover riscrivere l'intero file? se si sarei interessato a conoscerli

8
Progetti degli utenti / Re: Aedilis computo metrico
« il: 06 Gennaio 2010, 18:49:04 »
Grazie per la visita al sito personale, il programma che si appoggia su Excel credo sia RapidMeter, in effetti è una macro creata direttamente con l'editor VBA incorporato in  Autocad, quindi ho usato le librerie di excel che potevo controllare meglio, purtroppo sia Autocad che Excel sono software proprietari.
Peró sul sul sito del progetto Aedilis credo ci sia solo software libero.
Comunque inizieró a pubblicizzare anche sul mio sito Software open source.

P.s. Per le stampe se è piú facile va bene anche solo il pdf, visto che si possono stampare su carta in un secondo tempo, in ogni caso è indispensabile avere sempre l'anteprima su video prima di stampare.

9
Progetti degli utenti / Re: Aedilis computo metrico
« il: 06 Gennaio 2010, 17:46:00 »
:lol: Ottimo allora conto su di voi, in sintesi si tratta di migliorare le stampe, forse è piú facile iniziare da zero questa parte del programma e fare una cosa snella e semplice, ora mi organizzo per spiegarvi come è fatto il file di testo che contiene il computo e di che tipo di report abbiamo bisogno, siccome sono digiuno in tema di stampe con gambas ogni piú piccolo aiuto è il benvenuto.

10
Progetti degli utenti / Re: Aedilis computo metrico
« il: 06 Gennaio 2010, 09:46:02 »
Grazie mille resto in attesa

11
Progetti degli utenti / Aedilis computo metrico
« il: 05 Gennaio 2010, 11:54:41 »
Buongiorno e buona epifania a tutti.
Collaboro ad un programma per computo metrico edile chiamato "Aedilis", il sito dell'autore è http://www.sciallo.net, forse qualcuno di voi giá conosce il progetto.
Mi piacerebbe se qualche volontario si unisse alla programmazione, in particolare per fare ordine nelle stampe e rendere piú affidabile l'importazione dei prezzari da xml a mysql.
Gira su Ubuntu, i sorgenti sono su http://aedilis2.googlecode.com/svn/trunk
Per le istruzioni su come installarlo leggere il seguente post: http://www.softisteria.org/wp/?p=598
L'autore è un ottimo programmatore ma l'universitá lo occupa al 99,9%, io sono un geometra programmatore autodidatta per hobby quindi pasticcione, avremmo bisogno di un entusiasta di Gambas che ci illumini.
grazie a tutti in anticipo

Pagine: [1]