Bonjour à tous.
J'ai un logiciel qui consiste à injecter des données sous forme de fichiers txt dans une base données SQLServer, puis d'y faire divers traitements.
Pour cela, j'utilise, entre-autre, le code suivant
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Dim sourceData As New DataTable Dim builder = New OleDbConnectionStringBuilder() builder.Provider = "Microsoft.Jet.OLEDB.4.0" builder.DataSource = <DossierDuFichier> Dim propertyToAffect = "text" builder.Add("Extended Properties", propertyToAffect) Using sourceConnexion As New OleDbConnection(builder.ConnectionString) sourceConnexion.Open() Dim command As New OleDbCommand(String.Format("SELECT * FROM [{0}]", <NomDuFichier>), sourceConnexion) Dim adapter As New OleDbDataAdapter(command) sourceData.Reset() adapter.Fill(sourceData) sourceConnexion.Close() End Using ...... Dim bulkCopy = New SqlBulkCopy(destConnexion) bulkCopy.BulkCopyTimeout = dureeTrait bulkCopy.DestinationTableName = String.Format("dbo.{0}", <NomDeLaTable>) For Each column As DataColumn In dataTable.Columns bulkCopy.ColumnMappings.Add(column.ColumnName, column.ColumnName) Next bulkCopy.WriteToServer(dataTable)
J'ai besoin de passer mon logiciel en 64bits car dans la suite du traitement, il fait appel à des dll métiers qui vont désormais être compilées en 64bits only.
Mais je ne peux pas le faire à cause de l'utilisation du moteur Microsoft.Jet.OLEDB.4.0, qui n'existe pas en 64 bits.
Existe il une alternative à ce moteur ?
PS : Je ne peux pas utiliser une requête avec "OPENROWSET(BULK ..." pour intégrer les données car le serveur est distant et il ne peut pas accéder aux fichiers à intégrer sur le poste ou est exécuté le logiciel. De plus cela nécessite une qualité irréprochable des données, chose que je n'ai pas et ça génère beaucoup de plantage.
Partager