2009-06-22 12 views
0

J'ai une application de console qui utilise deux fichiers batch pour décompresser un fichier zip, prendre le xls qui a été décompressé le convertir en CSV et BCP les données dans une table SQL. Je souhaite programmer cette application de console pour qu'elle s'exécute une fois par jour. J'ai mis en place le planificateur de tâches Windows pour exécuter cette application. J'essaie de "tester" la tâche et ne reçois pas d'erreur. J'ai l'application qui écrit dans un fichier txt lorsque des exceptions sont interceptées et j'obtiens une erreur dans le sens où "le fichier xls que vous essayez d'utiliser est utilisé par un autre processus".Impossible d'obtenir le planificateur de tâches Windows pour exécuter l'application console programmée

REMARQUE: Je sais qu'il existe des moyens plus efficaces d'effectuer l'importation de xls vers SQL, mais pour un client qui est trop bon marché pour acheter une version complète de SQL SERVER.

+0

pourriez-vous poster vos scripts? – Grzenio

+0

Le premier fichier de commandes s'exécute en utilisant 7zip (7z.exe x C: \ BCP \ RFSR.zip -aoa -oC: \ BCP \ -ppasse) del c: \ BCP \ RFSR.csv *. */Q –

+0

la seconde batch utilise BCP pour copier un fichier CSV dans une base de données SQL. (PCO server.dbo.test dans c: \ BCP \ RFSR.csv -F2 -t, -c -S serveur -U nom d'utilisateur mot de passe -P) –

Répondre

1

Quelque chose n'a pas libéré, il est en attente sur le fichier XML. Vous devez déterminer quel autre programme utilise cette ressource et vous assurer que ses connexions sont fermées. Il se peut que lors de votre test, vous ne fermiez pas votre connexion, et que plus tard, lorsque la tâche est exécutée, il existe un autre processus (l'instance antérieure de votre application) qui n'a pas libéré la ressource.

1

semble que vous essayez d'utiliser le fichier xml avant qu'il ne soit entièrement décompressé. Vérifiez également la possibilité que rie819 mentionné précédemment.

Nous pourrions vous aider si vous postez vos scripts.

+0

importations Système importations System.Diagnostics Imports Microsoft.Office.Interop Imports System.Data.SqlClient Imports System.Data.OleDb Imports System.IO Imports System.Text Module Module1 Dim CurrentDir As String = System.Environment.CurrentDirectory.ToString Sub main() callRFSRDecompressBatch() ExcelToCVS() callBCPCSVBatch() End Sub –

+0

Sous ExcelToCVS() Dim strConn As String Dim DA As New OleDbDataAdapter Dim DS As New DataSet Dim Str As String Dim ColumnCount As Integer Dim OuterCount As Integer Dim InnerCount As Integer Dim RowCount As Integer Essayez strConn = « Provider = Microsoft.Jet.OLEDB.4.0; Source de données = c: \ BCP \ RFSR.XLS; Propriétés étendues = Excel 8.0; " –

+0

Dim objConn comme nouveau OleDbConnection (StrConn) Essayez objConn.Open() Si objConn.State = ConnectionState.Fermé Puis Else End If Catch ex As Exception logError (ex) Exit Sub End Try Dim objCmd As New OleDbCommand ("Select * from [ESVAD $]", objConn) objCmd.CommandType = CommandType.Text Dim ObjStreamWriter Comme StreamWriter ObjStreamWriter = New StreamWriter ("c: \ BCP \ RFSR.CSV") –

0

J'ai trouvé un moyen de produire les résultats dont j'avais besoin. J'ai sorti les deux fichiers batch de l'application console. J'ai maintenant une tâche planifiée pour exécuter un lot, l'application console et le dernier lot. Les deux réponses que j'ai reçues étaient correctes, elles ne libéraient pas le XML à cause des fenêtres de la console s'ouvrant au milieu de l'exécution. Depuis qu'ils ont été supprimés, je n'ai plus d'erreurs. Merci pour l'aide. -Z