Toon posts:

[ MSSQL / XML? ] Ontwerp Dataconversie Tool

Pagina: 1
Acties:
  • 124 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste lieden,

Ik wil jullie allen even danken voor de vele goede topics en antwoorden hier, jullie hebben me zonder dat jullie het weten al vele malen uit de spreekwoordelijke brand geholpen.

Het volgende is er aan de hand, Ik wil een tool ontwikkelen welke mij in staat stelt om gegevens uit een mdb bestand of een xls bestand (keuze aan gebruiker) over te zetten naar een MS SQL database. Hierbij gaat het om een een kleine hoeveelheid data (ongeveer 300 records per import).

De mdb bestanden kunnen 4 verschillende structuren hebben (qua naamgeving, relaties en tabellen) en de excel bestanden zijn standaard van formaat, hierdoor zullen er 5 koppelingen van de gegevensbron naar de tool moeten worden ontwikkeld, en een koppeling van de tool naar de MS SQL db.

Nu heb ik hier en daar wat navraag gedaan en blijkt een xml bestand een goede tussenstap te zijn, al ben ik van mening dat als de gegevens door de tool in een vaste recordset of array worden gezet die vertaalslag naar xml niet nodig is, die recordset kan rechtstreeks de database in.

extra info:
- het ontwerp van de MS SQL database is vrij deze moet nog ontwikkeld worden
- het systeem komt op mijn eigen machine te draaien zonder dat deze op het internet iets moet gaan doen
- ik ben bekend met ASP, Access, JavaScript, SQL
- ik heb weinig kennis van XML (al is dit vrij snel aan te leren naar verwachting)

Ik wilde vragen wat jullie ideeen hierover zijn, is dit een typisch geval van XML of kan dit door middel van ASP worden gerealiseerd, en heeft er iemand inzicht in de performance verschillen van deze oplossingen, uiteraard sta ik ook open voor andere alternatieven.

Alvast bedankt,

Gr
Frank

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:32
Waarom zou je ten eerste al ASP gaan overwegen; je bent er wel mee bekend, maar het is imo niet 'the right tool for the job'. Het is onnodig om een webapp. te ontwikkelen die die conversie voor jou gaat doen.
Je kan wel in een andere taal een simpel tooltje schrijven die die conversie gaat gaan doen.

Echter, ik denk dat je idd best eerst eens kijkt naar de mogelijkheden van SQL server om die gegevens in je SQL Server DB te krijgen (rechtstreeks dan).
Als je tabellen in je SQL Server DB overeenkomen (of grotendeels overeenkomen) met je tabellen in je Access DB's, kan je ws het best die data rechtstreeks importeren of met BULK INSERT gaan werken.

Echter, als de 'data bronnen' (je excel en access files) compleet andere structuren hebben, of over dezelfde data handelen, dan is het imo geen slecht idee om die gegevens eerst naar xml om te zetten; zeker niet als het inladen van die data in je sql server database geen 'one shot operation' is.
Wat je dan kan doen is, een aantal componenten schrijven die de gegevens die je uit Access of Excel haalt, naar eenzelfde xml schrijven (je xml (xsd schema) is dus altijd hetzelfde), en één component schrijven die die xml kan inlezen in je DB.
Echter, ik weet te weinig van jouw specifieke situatie om er iets zinnigs te kunnen over zeggen.

https://fgheysels.github.io/


Verwijderd

Het voordeel van een XML tussenstap is dat je de verwerking (inserts/updates) in je SQL Database maar 1 keer hoeft te maken op basis van het XML document en dat je voor de 5 verschillende formaten alleen een stap van recordset of CSV naar XML hoeft te maken. Zelf zit ik hier vrijwel alleen te C#-en, dus daar is e.e.a. een stukkie makkelijker in, qua maken/doorlopen van een XML documenten en functies enzo.

Tis wel mogelijk in ASP, maar zoals whoami al zegt, is ASP wel de beste tool?

Vraag is of jij de enige bent die bijvoorbeeld gaat importeren, of dat je jouw proggie aan gebruikers ter beschikking wilt stellen die het woord "SQL" zeer weinig zegt. In dat geval moet je zeker iets simpels maken als een asp pagina of een winform app waar de gebruiker die datasource kiest en op 1 knop kan rammen, anders ff kijken naar de import functionaliteiten van SQL evt dmv een DTS job

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Je moet eens kijken naar DTS (binnen MSSQL Server). Die verschillende formaten trap je daarmee zo je database in, waarbij je zelf een (simpele) transformatie stap kunt definieren. Wat jij nodig hebt zet je met 3 bouwsteentjes op in DTS. 2 connections en 1 data transfer stap, waarbij je in de data transfer stap zelf een transformatie kunt/moet definieren.

Ik zou xml alleen overwegen wanneer je later nog meer verschillende formaten aan moet kunnen, of wanneer externe partijen ook info moeten aanleveren. Als jij de enige bent die hier mee zult werken is xml imho een toevoeging van een overbodige stap, en daarmee maak je het jezelf onnodige complex. Maak het in DTS, lever een stukje documentatie, en het is klaar. Gegarandeerd in significant minder tijd dan wanneer je via xml gaat werken.

Overigens doe ik er meestal nog een stap tussen. Ik dump mijn externe gegevens eerst in een (tijdelijke) sql server tabel, en transformeer dan die tabel naar de tabel waar het uiteindelijk terecht moet komen. Wil je nou echt complexe transformaties doen, dan kun je eventueel de data transfer taak vervangen door een stored procedure die het werk voor je doet.