venerdì 25 novembre 2011

Creazione Database Db2

Quando si crea un database con le ultime versioni di Db2 (9.7.4 Express), il sistema la crea per la regione Italia. 
In questo caso ci sono dei problemi su alcuni caratteri che non vengono riconosciuti e generano degli errori.
Per ovviare al problema è sufficiente specificare, durante la creazione del database, la regione Stati Uniti o altrimenti, da riga di comandi, lanciare il comando:

CREATE DATABASE DITTA2 AUTOMATIC STORAGE YES  ON 'C:\' DBPATH ON 'C:\' USING CODESET 1252 TERRITORY US COLLATE USING SYSTEM PAGESIZE 4096

martedì 4 ottobre 2011

Tasti funzione su nuove tastiere

Sulle nuove tastiere i tasti funzioni sono dotati di funzioni speciali ( volume, multimedia, sospensione, ecc..).
Premendo il tasto Fn contemporaneamente al tasto funzione si ha la vecchia impostazione (F2 per rinomina file, F1 help ecc).
Sui computer Lenovo per attivare di default la vecchia modalità è necessario lanciare il programma "Lenovo Slim USB Keyboard", flaggare il check presente e riavviare il pc.

giovedì 29 settembre 2011

Errore installazione Sql Server Express su 64 bit

Durante l'installazione di Sql Server Express 2008 R2 64 bit Italiano su Windows 7 professional 64 bit il programma di setup mi ha restituito questo errore :
"SQL Server setup media does not support the language of the OS or does not have ENU localized files. Use the matching language-specific SQL Server media or change the OS locale through control panel."
Windows configurato in italiano e Sql Server in italiano.


Per sbloccare la situazione è stato sufficiente eseguire le seguenti operazioni :

  • Impostare le impostazioni internazionali a Italiano(Svizzera) e confermare
  • Impostare le impostazioni internazionali a Italiano(Italiano) e confermare


Magicamente (!) l'installazione parte.

mercoledì 28 settembre 2011

Sigla++ e SPPDEBUG

Impostando a ON la variabile SPPDEBUG (SET SPPDEBUG=ON), Sigla++ attiva la modalità debug.
Al lancio del programma viene visualizzata una finestra di debug, dove non viene mai scritto niente, ma sopratutto viene generato un file di log, SPPDEBUG.LOG, nella cartella di Sigla.
Il file di log contiene informazioni sull'esecuzione del programma e tutte le query che Sigla++ esegue. Questa modalità è nettamente migliore del trace di ODBC per la tracciatura delle query: è più veloce e non tronca le query.


martedì 20 settembre 2011

Trigger Sql Server

E' possibile disabilitare e abilitare i trigger senza doverli cancellare e ricreare ( magari per aggiornamenti massivi ).
La sintassi è :

  • DISABLE TRIGGER nometrigger_1[,nometrigger_2[,nometrigger_n]] ON nometabella
  • ENABLE TRIGGER nometrigger_1[,nometrigger_2[,nometrigger_n]] ON nometabella

martedì 13 settembre 2011

Allegati 2011


Il termine per la comunicazione dei dati del 2010 è stato spostato al 31/12/2011 con parziale revisione del tracciato

Faq
  • L'esenzione Art. 15 non deve essere inserita nella comunicazione.
  • Il fornitore di energia elettrica può essere omessa dalla comunicazione.
  • Il fornitore di gas "Toscana Energia" deve essere immesso in quanto distributore e non venditore di Gas.
  • Se un ordine è fatturato in più volte, le fatture devono essere legate fra loro.
  • Sigla++ non gestisce il codice evento durante la fase di immissione/revisione documento.
Link Normativi
Query

Query di controllo che estrae tutte le fatture oltre le soglia

SELECT REGISTRO,DATAREG,NUMPROTOC,SOTTOCONTO,RAGIONESOC,
SUM(EIMPONIBIL) 
FROM MOVIVA,CLIFO
WHERE NUMERO IN 
(
SELECT NUMERO FROM MOVIVA,SOGLIAIV 
WHERE MOVIVA.DATADOC LIKE `+[Anno]%` 
AND MOVIVA.ANNOIVA=SOGLIAIV.ANNOIVA
GROUP BY NUMERO,SOGLIAF
HAVING SUM(EIMPONIBIL) >= SOGLIAF
)
AND SOTTOCONTO=CODICE
GROUP BY REGISTRO,DATAREG,NUMPROTOC,SOTTOCONTO,RAGIONESOC
ORDER BY REGISTRO,DATAREG,NUMPROTOC

----

giovedì 8 settembre 2011

MySql e Sigla++

Dalla versione di MySql 5.1.37 ( o giù di li ), Sigla funziona ma alcune interrogazioni non restituiscono dati.

Per esempio le query del tipo :
SELECT * FROM MOVCO WHERE SOTTOCONTO >= 'C0001     ' AND SOTTOCONTO <= 'C0001     ' 
( visualizzazione partitario ) non restituisce nessun valore.

Al contrario una query del tipo :
SELECT * FROM MOVCO WHERE SOTTOCONTO = 'C0001     ' 
restituisce correttamente i dati

Per sistemare il problema è necessario abilitare il parametro PAD_CHAR_TO_FULL_LENGTH con l'istruzione :
SET sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
o inserendolo nel file My.ini a mano o attraverso il MySql Administrator

Testato con Mysql 5.5.15 64 bit su Windows 7


Thanks Michele Vivaldi


martedì 5 luglio 2011

Transazioni con Sql Management Studio

In Sql management Studio è possibile gestire le transazioni semplicemente lanciando il comando BEGIN TRANSACTION prima della query di modifica/cancellazione.


Una volta eseguita la query sarà possibile utilizzare il comando COMMIT per confermare o ROLLBACK per annullare la transazione.


Fonte : http://www.eggheadcafe.com/software/aspnet/30628775/how-to-disable-automatic-transaction-in-management-studio.aspx

giovedì 5 maggio 2011

Errore su restore - Sql Server 2008

Se si prova ad effettuare un restore su un server Sql Server 2008 di un backup effettuato su un server Sql Server 2008 R2, il sistema emette questo messaggio :
"The Database was backed up on a server running version 10.50.1600. That version is incompatible with this server, which is running 10.00.1600"


Non è possibile effettuare il restore.

venerdì 22 aprile 2011

Esempio Stored Procedure in Sql Server

-- semplice procedura che riporta sul campo AGENTE di MOVCO il campo CODAG di CFVEN relativo allo stesso cliente 



ALTER PROCEDURE [dbo].[Agg_mov_agenti] 
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

declare @sottoconto char(10)
declare @agente char(5)

DECLARE age_cursor CURSOR FOR 
    select DISTINCT SOTTOCONTO,CODAG
 FROM MOVCO,CFVEN
      WHERE SOTTOCONTO=CODCF
 AND TIPO='C'
 AND (
 (AGENTE IS NULL) OR
 ( AGENTE <> CODAG)
      )


    OPEN age_cursor 


    FETCH NEXT FROM age_cursor 
     INTO @sottoconto,@agente
     
    WHILE @@FETCH_STATUS = 0 
    BEGIN 
     UPDATE MOVCO SET AGENTE=@agente WHERE SOTTOCONTO=@sottoconto


     FETCH NEXT FROM age_cursor 
     INTO @sottoconto,@agente
    
    END 


CLOSE age_cursor 
DEALLOCATE age_cursor 


    
END