Verifiche sui dati

martedì 19 dicembre 2006 - 12.11

actarus1981 Profilo | Junior Member

Ciao a tutti. Ho la necessità di verificare il contenuto formale di alcuni files, e per farlo ho pensato di realizzare un DTS (utilizzo MSSQL 2000).
L'attività consiste nel verificare i dati contentuti in un file. I files in questione hanno un tracciato preciso per essere caricati in un database, le attività che voglio implementare servono per verificare che le specifiche di creazione del file siano sempre rispettate.
Pensavo quindi di caricare i dati prima in una tabella temporanea, in modo da verificare tramite query sql se tutte le regole sono rispettate. Ho creato un Loop in una cartella per caricare tutti i files presenti, ma non so come creare uno script in VB per notificare se ci sono errori o meno. Una delle query di test è questa:
SELECT * FROM temp_tracciato WHERE len(data)<>8
che mi serve a verificare che il campo dedicato alla data sia di lunghezza 8.
Qualcuno sa darmi una mano? O anche consigliarmi un metodo alternativo...

Grazie

lbenaglia Profilo | Guru

>Ho creato un Loop in una cartella per caricare tutti
>i files presenti, ma non so come creare uno script in VB per
>notificare se ci sono errori o meno.

Ciao actarus1981,

un'idea potrebbe essere quella di ricorrere ad un ActiveX Script Task che scrive su file tramite il File System Object le righe che contengono informazioni non aderenti alle tue regole, inviando il tutto via e-mail utilizzando la extended stored procedure xp_smtp_sendmail di Gert Drapers.

Ti allego un paio di links sull'argomento:

"ActiveX Script Task"
http://msdn.microsoft.com/library/en-us/dtssql/dts_elemtsk3_3t7v.asp

"FileSystemObject Object"
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vaobjfilesystemobject.asp

"XPSMTP.DLL - SQL Server SMTP Mail XP"
http://www.sqldev.net/xp/xpsmtp.htm

>Grazie
Prego.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

actarus1981 Profilo | Junior Member

Ho qualche problema anche a connettermi al server... uso questo codice

dim myConn dim myRecord dim myQuery dim iCount set myConn = CreateObject("ADODB.Connection") set myRecord = CreateObject("ADODB.Recordset") myConn.Open = "Provider=SQLNCLI;Data Source=(local); Initial Catalog=temp_alog;" myQuery = "SELECT 'contatore'=count(*) FROM tracciato_testo WHERE dataf<>data" myRecord.Open myQuery, myConn set Flds = myRedord.Fields set iCount = Flds("contatore")

ma in esecuzione mi segnala questo errore:
Provider cannot be found. It may not be properly installed.

Mi sapete aiutare?

Thanks

lbenaglia Profilo | Guru

>Ho qualche problema anche a connettermi al server... uso questo
>codice
> myConn.Open = "Provider=SQLNCLI....
>ma in esecuzione mi segnala questo errore:
>Provider cannot be found. It may not be properly installed.
>
>Mi sapete aiutare?

Attenzione, SQL Server 2000 non installa il provider SQL Native Client (SQLNCLI) ma puoi utilizzare il classico OLE DB Provider for SQL Server (SQLOLEDB).
Ad ogni modo, puoi semplificare parecchio il tuo codice.
Prima di tutto definisci a livello di Package una variabile globale di tipo Dispatch che andrai a popolare con il recordset generato dalla query.
Inserisci un Execute SQL Task con la stored procedure/select che vuoi eseguire, fai click sul bottone Parameters..., seleziona il tab Output Parameters, come tipo scegli Rowset e seleziona dalla combo box la variabile definita in precedenza.
Ora collega l'Execute SQL Task al tuo ActiveX Script Task e recupera il recordset leggendo il valore della variabile globale.

Ti allego un pezzetto di codice utilizzato da un DTS che eseguo giornalmente:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

>Thanks
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

actarus1981 Profilo | Junior Member

Perfetto... funziona!!!!

Grazie mille!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5