La segnalazione "La connessione è occupata dai risultati di un altro comando/statement" è determinata dalla presenza di record con chiave duplicata in una o più tabelle della base dati di SIGLA (potrebbe anche accadere che la segnalazione non sia direttamente visibile e si ottenga solo un errore generico di protezione).
La prima cosa da fare in questo caso ("connessione occupata") è un'analisi approfondita dei dati al fine di determinare se in una certa tabella esistono dei duplicati (record doppi rispetto alla chiave univoca della tabella). Inoltre l'utilizzo di database con una collating sequence di tipo CASE INSENSITIVE può aumentare la probabilità di incorrere nella presenza di record doppi.
Per l'analisi è necessario operare direttamente sulla base dati con gli strumenti messi a disposizione dal DBMS.
Lo script sotto riportato permette di controllare tutte le tabelle dei dati comuni e ditta per verificare se ci sono dei record doppi.
Script per record doppi
mercoledì 30 aprile 2014
domenica 27 aprile 2014
Link utili per Spesometro 2013/2014 ecc.
Home page su Agenzia Entrate - Link
Provvedimento 2013/94908 del 02/08/2013 - Link
Modello e istruzioni - Link
Stati Membri Cee
http://www.comunitaeuropea.com/statimembri/
http://assistenza.agenziadogane.it/KnowledgeBases/Tel_Dogane_Procedura/attach/sistema_intrastat.pdf
Stati in black list
http://www.guidafisco.it/paesi-black-list-elenco-aggiornato-773
Codici Attività
http://www.istat.it/it/archivio/17888
Lista e codici Paesi
http://www.agenziaentrate.gov.it/wps/content/Nsilib/Nsi/Strumenti/Modelli/ModulisticaAP/Modelli+di+dichiarazione/2007/Unico+PF+2007/Fascicolo_1/6_Elenco_paesi_dei_territori+esteri1/Elenco_dei_paesi_e_dei_territori_esteri.html
https://s3.amazonaws.com/FILE-PDF/SERVIZI/BLACK-LIST/A2-ELENCO-PAESI-TERRITORI-ESTERI.pdf
Provvedimento 2013/94908 del 02/08/2013 - Link
Modello e istruzioni - Link
Stati Membri Cee
http://www.comunitaeuropea.com/statimembri/
http://assistenza.agenziadogane.it/KnowledgeBases/Tel_Dogane_Procedura/attach/sistema_intrastat.pdf
Stati in black list
http://www.guidafisco.it/paesi-black-list-elenco-aggiornato-773
Codici Attività
http://www.istat.it/it/archivio/17888
Lista e codici Paesi
http://www.agenziaentrate.gov.it/wps/content/Nsilib/Nsi/Strumenti/Modelli/ModulisticaAP/Modelli+di+dichiarazione/2007/Unico+PF+2007/Fascicolo_1/6_Elenco_paesi_dei_territori+esteri1/Elenco_dei_paesi_e_dei_territori_esteri.html
https://s3.amazonaws.com/FILE-PDF/SERVIZI/BLACK-LIST/A2-ELENCO-PAESI-TERRITORI-ESTERI.pdf
Trigger "intelligenti" in DB2
Nelle vecchie versioni del DB2 non c'era la possibilità di disabilitare un trigger.
Qui sotto c'è sintassi per un trigger controllato dal valore inserito in una tabella.
Testato su Db2 Express-C 9.7.4
CREATE TRIGGER TRG_ANAMAGA_I
AFTER INSERT ON ANAMAGA
REFERENCING NEW AS N FOR EACH ROW
MODE DB2SQL
WHEN ('Y' = (SELECT STATUS
FROM USRTRIGGER_CONTROL
WHERE TRIGGER_NAME = 'TRG_ANAMAGA_I'))
BEGIN ATOMIC
INSERT INTO USRLOG (DATAORA,TABELLA,OPERAZIONE,CHIAVE) VALUES ( CURRENT TIMESTAMP, 'ANAMAGA', 'I', CODICE );
END
Qui sotto c'è sintassi per un trigger controllato dal valore inserito in una tabella.
Testato su Db2 Express-C 9.7.4
CREATE TRIGGER TRG_ANAMAGA_I
AFTER INSERT ON ANAMAGA
REFERENCING NEW AS N FOR EACH ROW
MODE DB2SQL
WHEN ('Y' = (SELECT STATUS
FROM USRTRIGGER_CONTROL
WHERE TRIGGER_NAME = 'TRG_ANAMAGA_I'))
BEGIN ATOMIC
INSERT INTO USRLOG (DATAORA,TABELLA,OPERAZIONE,CHIAVE) VALUES ( CURRENT TIMESTAMP, 'ANAMAGA', 'I', CODICE );
END
martedì 22 aprile 2014
Estrarre la struttura di una tabella con DB2
Se si vuole conoscere la struttura di una tabella per ricrearla, DB2 mette a disposizione un tool chiamato DB2LOOK.
Il programma non si trova nella cartella BIN ma nella cartella MISC.
La sintassi è la seguente :
db2look -d DBname [-u Creator] [-s] [-g] [-a] [-t Tname1 Tname2...TnameN] [-p] [-o Fname]
db2look -d DBname [-u Creator] [-a] [-e] [-t Tname1 Tname2...TnameN] [-m] [-c] [-r] [-o Fname]
db2look [-h]
-d: Database name. *MUST* be specified
-a: generate stats for all creators
-c: do not generate commit statement for mimic
-e: extract DDL file needed to duplicate database
-g: use graph to show fetch page pairs for indices
-h: more detailed help message
-m: run the program in mimic mode
-o: output filename
-p: use plain text format
-r: do not generate runstats statement for mimic
-s: generate postscript file
-t: generate stats for the specified tables
-u: creator ID. If -u and -a are both not specified then
Environment variable USER will be used
Un esempio di creazione di un file di testo contenente la struttura della tabella MOVCO del database DITTA1 dell'utente db2admin è la seguente :
DB2LOOK -d DITTA1 -t MOVCO -o C:\MOVCO.TXT -u db2admin -p -e
Il programma non si trova nella cartella BIN ma nella cartella MISC.
La sintassi è la seguente :
db2look -d DBname [-u Creator] [-s] [-g] [-a] [-t Tname1 Tname2...TnameN] [-p] [-o Fname]
db2look -d DBname [-u Creator] [-a] [-e] [-t Tname1 Tname2...TnameN] [-m] [-c] [-r] [-o Fname]
db2look [-h]
-d: Database name. *MUST* be specified
-a: generate stats for all creators
-c: do not generate commit statement for mimic
-e: extract DDL file needed to duplicate database
-g: use graph to show fetch page pairs for indices
-h: more detailed help message
-m: run the program in mimic mode
-o: output filename
-p: use plain text format
-r: do not generate runstats statement for mimic
-s: generate postscript file
-t: generate stats for the specified tables
-u: creator ID. If -u and -a are both not specified then
Environment variable USER will be used
Un esempio di creazione di un file di testo contenente la struttura della tabella MOVCO del database DITTA1 dell'utente db2admin è la seguente :
DB2LOOK -d DITTA1 -t MOVCO -o C:\MOVCO.TXT -u db2admin -p -e
domenica 6 aprile 2014
SQL UPDATE su tabella prendendo dati da altre tabelle
Una interessante sintassi per l'UPDATE su SQL SERVER
Esempio che riporta su un campo di MOVIVA la partita iva del cliente corrispondente
UPDATE MOVIVA SET MOVIVA.CODEVENTO = 'C2011' + CLIFO.PAIV
FROM MOVIVA
INNER JOIN CLIFO ON CLIFO.CODICE = MOVIVA.SOTTOCONTO
WHERE MOVIVA.DATAREG>='20110101'
AND MOVIVA.DATAREG<='20111231'
AND MOVIVA.C_F='C'
AND MOVIVA.TIPODOCIVA='FT'
Esempio che riporta su un campo di MOVIVA la partita iva del cliente corrispondente
UPDATE MOVIVA SET MOVIVA.CODEVENTO = 'C2011' + CLIFO.PAIV
FROM MOVIVA
INNER JOIN CLIFO ON CLIFO.CODICE = MOVIVA.SOTTOCONTO
WHERE MOVIVA.DATAREG>='20110101'
AND MOVIVA.DATAREG<='20111231'
AND MOVIVA.C_F='C'
AND MOVIVA.TIPODOCIVA='FT'
martedì 1 aprile 2014
Migliorare le prestazioni su MOVCO
Con il crescere dei movimenti alcune operazioni contabili diventano particolarmente lente. Di seguito sono elencati gli script per la generazione di due indici sulla tabella MOVCO che aumentano le prestazioni in determinate operazioni.
- CREATE INDEX USRMOVCO1 ON MOVCO (ATT_PASSIV,SOSPESO_SN,SCADENZ_SN,DATASCAD)Velocizza presentazione effetti
- CREATE INDEX USRMOVCO2 ON MOVCO (RIFENUMRO)Velocizza ricontabilizzazione documenti
Esempio trigger Sql Server
Esempio Trigger per rilevazioni modifiche su MOVIMAG
CREATE TRIGGER MOVIMAGUPD ON MOVIMAG
FOR UPDATE AS
INSERT INTO USRMOVIMAGSTOR (
USRDATA, USROPERAZIONE ,
ESERCIZIO , NUMERO , RIGA , TIPO ,
DATA , ESEDOC , NUMERODOC , RIGADOC ,
TIPODOC , DATADOC , ESERCIPROT , NUMEROPROT ,
RIGAPROT , TIPOPROT , DATAPROT , TIPOEFFET ,
ESERIF , NUMERORIF , RIGARIF , TIPORIF ,
DATARIF , ESECOLLEG , NUMCOLLEG , RIGACOLLEG ,
TIPOCOLLEG , DATACOLLEG , DATAPREEVA , ARTICOLO ,
VARIANTE , STAGIONE , MAGAZZINO , IMBALLO ,
UNIMISURA , MOVITAG_SN , TIPOTAGLIA , CALZATA ,
CAUSALE , DESCRAGG , C_F , CLI_FOR ,
CONTROPART , CODVALUTA , DATAVALUTA , CAMBIO ,
QUANTITA , QUANTCONFE , EVASO , PRNETTO ,
PRLORDO , PRIVACOMPR , IVAOMAGGI , PRLISTINO ,
BASERICAR , PERCRICAR , PRVALUTA , PRVALUTAN ,
SCONTO1 , SCONTO2 , SCONTO3 , SCONTO4 ,
SCONTO5 , MAGGIOR1 , MAGGIOR2 , CODIVA ,
CODLISTIN , PESOKG , NUMCOLLI , NUMPARTITA ,
AGENTE , PROVAGENTE , CAPOZONA , PROVCAPOZO ,
SOSPESO_SN , NOTA_SN , COMM_SN , NETTO_SN ,
OMAGGIO_SN , DEFINIT_SN , PROVVIS_SN , MAGFISC_SN ,
EVASION_SN , DISTINT_SN , INVENTARIO , CARICO ,
SCARICO , ACARICO , ASCARICO , IMPEGNATO ,
ROTTAMATO , ORDCLI , ORDFORN , ATTCOLLAUD ,
ATTSPEDIZ , AVALORE , AQUANTITA , AGG_TOTALI ,
SELEZIONE , NUMCARTELL , NUMCOMMESS , FILE1 ,
FILE2 , FILE3 , UTENTE , ULT_AGG ,
PRSTATISTI , PRSTATIST1 , NUMPROTRIF , PRSTATIST2 ,
CENTRCOSTO , REVISIO_SN , AGGIORN_SN , CHIAVE_EST ,
FORZEVA_SN , DESARTICOL , ECAMBIO , EPRNETTO ,
EPRLORDO , EPRLISTINO , EBASERICAR , UBICAZIONE ,
MOLOTTI_SN , QTACQUISTO , PRACQUISTO , UNITAMIACQ ,
NOTAIMP_SN , NOTASTA_SN , NOTARIP_SN , BARCODE ,
MATRIC_SN , NUM_MATR )
SELECT
CONVERT(nvarchar(30), GETDATE(), 21), 'V1',
ESERCIZIO , NUMERO , RIGA , TIPO ,
DATA , ESEDOC , NUMERODOC , RIGADOC ,
TIPODOC , DATADOC , ESERCIPROT , NUMEROPROT ,
RIGAPROT , TIPOPROT , DATAPROT , TIPOEFFET ,
ESERIF , NUMERORIF , RIGARIF , TIPORIF ,
DATARIF , ESECOLLEG , NUMCOLLEG , RIGACOLLEG ,
TIPOCOLLEG , DATACOLLEG , DATAPREEVA , ARTICOLO ,
VARIANTE , STAGIONE , MAGAZZINO , IMBALLO ,
UNIMISURA , MOVITAG_SN , TIPOTAGLIA , CALZATA ,
CAUSALE , DESCRAGG , C_F , CLI_FOR ,
CONTROPART , CODVALUTA , DATAVALUTA , CAMBIO ,
QUANTITA , QUANTCONFE , EVASO , PRNETTO ,
PRLORDO , PRIVACOMPR , IVAOMAGGI , PRLISTINO ,
BASERICAR , PERCRICAR , PRVALUTA , PRVALUTAN ,
SCONTO1 , SCONTO2 , SCONTO3 , SCONTO4 ,
SCONTO5 , MAGGIOR1 , MAGGIOR2 , CODIVA ,
CODLISTIN , PESOKG , NUMCOLLI , NUMPARTITA ,
AGENTE , PROVAGENTE , CAPOZONA , PROVCAPOZO ,
SOSPESO_SN , NOTA_SN , COMM_SN , NETTO_SN ,
OMAGGIO_SN , DEFINIT_SN , PROVVIS_SN , MAGFISC_SN ,
EVASION_SN , DISTINT_SN , INVENTARIO , CARICO ,
SCARICO , ACARICO , ASCARICO , IMPEGNATO ,
ROTTAMATO , ORDCLI , ORDFORN , ATTCOLLAUD ,
ATTSPEDIZ , AVALORE , AQUANTITA , AGG_TOTALI ,
SELEZIONE , NUMCARTELL , NUMCOMMESS , FILE1 ,
FILE2 , FILE3 , UTENTE , ULT_AGG ,
PRSTATISTI , PRSTATIST1 , NUMPROTRIF , PRSTATIST2 ,
CENTRCOSTO , REVISIO_SN , AGGIORN_SN , CHIAVE_EST ,
FORZEVA_SN , DESARTICOL , ECAMBIO , EPRNETTO ,
EPRLORDO , EPRLISTINO , EBASERICAR , UBICAZIONE ,
MOLOTTI_SN , QTACQUISTO , PRACQUISTO , UNITAMIACQ ,
NOTAIMP_SN , NOTASTA_SN , NOTARIP_SN , BARCODE ,
MATRIC_SN , NUM_MATR , FROM DELETED;
INSERT INTO USRMOVIMAGSTOR (
USRDATA, USROPERAZIONE ,
ESERCIZIO , NUMERO , RIGA , TIPO ,
DATA , ESEDOC , NUMERODOC , RIGADOC ,
TIPODOC , DATADOC , ESERCIPROT , NUMEROPROT ,
RIGAPROT , TIPOPROT , DATAPROT , TIPOEFFET ,
ESERIF , NUMERORIF , RIGARIF , TIPORIF ,
DATARIF , ESECOLLEG , NUMCOLLEG , RIGACOLLEG ,
TIPOCOLLEG , DATACOLLEG , DATAPREEVA , ARTICOLO ,
VARIANTE , STAGIONE , MAGAZZINO , IMBALLO ,
UNIMISURA , MOVITAG_SN , TIPOTAGLIA , CALZATA ,
CAUSALE , DESCRAGG , C_F , CLI_FOR ,
CONTROPART , CODVALUTA , DATAVALUTA , CAMBIO ,
QUANTITA , QUANTCONFE , EVASO , PRNETTO ,
PRLORDO , PRIVACOMPR , IVAOMAGGI , PRLISTINO ,
BASERICAR , PERCRICAR , PRVALUTA , PRVALUTAN ,
SCONTO1 , SCONTO2 , SCONTO3 , SCONTO4 ,
SCONTO5 , MAGGIOR1 , MAGGIOR2 , CODIVA ,
CODLISTIN , PESOKG , NUMCOLLI , NUMPARTITA ,
AGENTE , PROVAGENTE , CAPOZONA , PROVCAPOZO ,
SOSPESO_SN , NOTA_SN , COMM_SN , NETTO_SN ,
OMAGGIO_SN , DEFINIT_SN , PROVVIS_SN , MAGFISC_SN ,
EVASION_SN , DISTINT_SN , INVENTARIO , CARICO ,
SCARICO , ACARICO , ASCARICO , IMPEGNATO ,
ROTTAMATO , ORDCLI , ORDFORN , ATTCOLLAUD ,
ATTSPEDIZ , AVALORE , AQUANTITA , AGG_TOTALI ,
SELEZIONE , NUMCARTELL , NUMCOMMESS , FILE1 ,
FILE2 , FILE3 , UTENTE , ULT_AGG ,
PRSTATISTI , PRSTATIST1 , NUMPROTRIF , PRSTATIST2 ,
CENTRCOSTO , REVISIO_SN , AGGIORN_SN , CHIAVE_EST ,
FORZEVA_SN , DESARTICOL , ECAMBIO , EPRNETTO ,
EPRLORDO , EPRLISTINO , EBASERICAR , UBICAZIONE ,
MOLOTTI_SN , QTACQUISTO , PRACQUISTO , UNITAMIACQ ,
NOTAIMP_SN , NOTASTA_SN , NOTARIP_SN , BARCODE ,
MATRIC_SN , NUM_MATR )
SELECT
CONVERT(nvarchar(30), GETDATE(), 21), 'V2',
ESERCIZIO , NUMERO , RIGA , TIPO ,
DATA , ESEDOC , NUMERODOC , RIGADOC ,
TIPODOC , DATADOC , ESERCIPROT , NUMEROPROT ,
RIGAPROT , TIPOPROT , DATAPROT , TIPOEFFET ,
ESERIF , NUMERORIF , RIGARIF , TIPORIF ,
DATARIF , ESECOLLEG , NUMCOLLEG , RIGACOLLEG ,
TIPOCOLLEG , DATACOLLEG , DATAPREEVA , ARTICOLO ,
VARIANTE , STAGIONE , MAGAZZINO , IMBALLO ,
UNIMISURA , MOVITAG_SN , TIPOTAGLIA , CALZATA ,
CAUSALE , DESCRAGG , C_F , CLI_FOR ,
CONTROPART , CODVALUTA , DATAVALUTA , CAMBIO ,
QUANTITA , QUANTCONFE , EVASO , PRNETTO ,
PRLORDO , PRIVACOMPR , IVAOMAGGI , PRLISTINO ,
BASERICAR , PERCRICAR , PRVALUTA , PRVALUTAN ,
SCONTO1 , SCONTO2 , SCONTO3 , SCONTO4 ,
SCONTO5 , MAGGIOR1 , MAGGIOR2 , CODIVA ,
CODLISTIN , PESOKG , NUMCOLLI , NUMPARTITA ,
AGENTE , PROVAGENTE , CAPOZONA , PROVCAPOZO ,
SOSPESO_SN , NOTA_SN , COMM_SN , NETTO_SN ,
OMAGGIO_SN , DEFINIT_SN , PROVVIS_SN , MAGFISC_SN ,
EVASION_SN , DISTINT_SN , INVENTARIO , CARICO ,
SCARICO , ACARICO , ASCARICO , IMPEGNATO ,
ROTTAMATO , ORDCLI , ORDFORN , ATTCOLLAUD ,
ATTSPEDIZ , AVALORE , AQUANTITA , AGG_TOTALI ,
SELEZIONE , NUMCARTELL , NUMCOMMESS , FILE1 ,
FILE2 , FILE3 , UTENTE , ULT_AGG ,
PRSTATISTI , PRSTATIST1 , NUMPROTRIF , PRSTATIST2 ,
CENTRCOSTO , REVISIO_SN , AGGIORN_SN , CHIAVE_EST ,
FORZEVA_SN , DESARTICOL , ECAMBIO , EPRNETTO ,
EPRLORDO , EPRLISTINO , EBASERICAR , UBICAZIONE ,
MOLOTTI_SN , QTACQUISTO , PRACQUISTO , UNITAMIACQ ,
NOTAIMP_SN , NOTASTA_SN , NOTARIP_SN , BARCODE ,
MATRIC_SN , NUM_MATR FROM INSERTED;
Iscriviti a:
Post (Atom)