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.








Répondre avec citation



Partager