Toon posts:

[MS SQL] Conversie error door lege rij met DTS

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een DTS package welke data inleest vanuit een .csv file. Bij sommige kolommen zit er nog een ActiveX conversie bij..

Nu zit er in de csv altijd een lege rij aan het eind (dar kan ik helaas niks aan doen, omdat ik ze nu eenmaal zo krijg aangeleverd) en dat vormt ook een probleem bij het converteren. Omdat de conversie functie (CDbl) dan een lege kolom wil converteren geeft hij een foutmelding:
code:
1
Type mismatch: 'CDbl'.


Als ik de laatste rij handmatig uit de csv verwijder gaat het wel goed, dus het lijkt me ook dat de fout hier ligt, maar omdat ik ik niet elke keer de csv handmatig ga aanpassen is dit geen optie

Nu heb ik in het script wel gechecked op lege cellen, maar blijkbaar gaat dit niet helemaal goed..
Het ActiveX script:
code:
1
2
3
4
5
6
Function Main()
        if IsNull(DTSSource(1)) = false  then
                DTSDestination(1) = CDbl(DTSSource(1))
        end if
        Main = DTSTransformStat_OK
End Function


Ook heb ik, na gezocht te hebben in verschillende fora en nieuwsgroepen, onderstaand script geprobeerd, maar dit levert hetzelfde resultaat.
code:
1
2
3
4
5
6
7
8
Function Main()
        if IsNull(DTSSource(1))  then
                DTSTransformStat_ErrorSkipRow
        Else
                DTSDestination(1) = CDbl(DTSSource(1))
        end if
        Main = DTSTransformStat_OK
End Function


Als laatste redmiddel heb ik nog de functie IsNumeric() in het if/else statement gebruikt en dan is de fout wel weg, maar ik ben bang dat hij dan ook eventuele 'echte' fouten midden in de CSV (bijv. verkeerd getypd getal) skipt.

Iemand suggesties?

Verwijderd

If IsNull(DTSSource(1)) OR DTSSource(1) = "" Then