Bonjour,

Je suis en train de migrer des données d'une base de données Pervasive vers SQLServer via SSIS.
Du coté pervasive les dates sont en date string soit :
20080717 pour le 17 juillet 2008
00000000 pour une date nulle
Je parse donc mes données dans un script en VB afin d'obtenir un datetime coté SQL server.
Tout fonctionne pour une date normale mais j'obtiens une date au 30/12/1899 pour les dates à 0.

J'ai essayé de contourner le problème par un sqldatetime égal à nul mais ca ne marche pas non plus (ci joint code)
Code : 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
Public Class ScriptMain
    Inherits UserComponent
    Dim datenull As SqlDateTime
 
 
    Public Overrides Sub Entrée0_ProcessInputRow(ByVal Row As Entrée0Buffer)
        '
        datenull = SqlDateTime.Null
 
 
        ' Parsage de la date de création
        If Not Row.DateCreation_IsNull Then
            If Row.DateCreation = "00000000" Then
                Row.TDateCreation = datenull
 
            Else
                Dim Annee As Integer = Integer.Parse(Row.DateCreation.Substring(0, 4))
                Dim Mois As Integer = Integer.Parse(Row.DateCreation.Substring(4, 2))
                Dim jour As Integer = Integer.Parse(Row.DateCreation.Substring(6, 2))
                Row.TDateCreation = New DateTime(Annee, Mois, jour)
 
            End If
 
 
    End Sub
 
End Class
        End If
J'ai autorisé le nul sur le champs datetime et je souhaiterais qu'il reste à nul s'il rencontre une valeur '00000000' dans la base pervasive.

Quelqu'un a-t-il une idée?

Merci d'avance