1. Algemeen. Alle parameters, voor de command line en het script-bestand, zijn hoofdletter gevoelig! 2. Syntax van de command line parameters: CustomCopyDatabase -s|-q -c -a -m -x -l -w -v -d|-t -i|-e -p -r -n -s Het scriptbestand om een export te doen. De standaard extentie is ".scr". -q Het SQL bestand om een inport te doen. (alleen te gebruiken in combinatie met -a en -i) -c Het bestand met de connectiestring -d De exports worden in een nieuwe map gezet met als naam: EXPORT-jjjmmdd De inport en logging gebruiken deze map dan ook. -t Zie -d, maar de naam wordt: EXPORT-jjjmmdd-uummss -t heeft voorrang op -d bij dubbel gebruik. -l Uitgebreide logging. -a Automatisch uitvoeren, zonder -s en -c werkt dit niet. -m te gebruiken met -a. Het programma wordt dan geminimaliseerd uitgevoerd. -x te gebruiken met -a. Na het uitvoeren van het script wordt het programma gesloten. -w te gebruiken met -a. De warnings worden niet weergegeven. -v te gebruiken met -a. De warnings niet loggen. -h|-? Dit helpscherm. -p Path (of map) waar de export moet plaatsvinden. Indien niet opgegeven, wordt de map van het script gebruikt. -i Gebruik dit om een inport uit te voeren (in combinatie met -q en -a). -e Gebruik dit om een export uit te voeren (in combinatie met -s en -a). -l Alles loggen. Zonder deze optie wordt er per script-comando een lijn toegevoegd. -f Alles meevolgen. Niet aangeraden, dit duurt veel langer. De export wordt op het scherm gezet en daarna opgeslagen en de inport wordt eerst op het scherm gezet. Laat dit weg om deze bestanden rechtstreeks aan te spreken. -o Het aantal lijnen die moeten worden uitgevoerd, voor het scherm wordt geupedated bij een import en een export. Om performatieredenen worden enkel de componenten die veranderd worden hertekend. De rest van het scherm lijkt dus vast te zitten. -r Het pad waar een rapport naar toe wordt geschreven. Enkel bij gelukt wordt er 1 lijn weggeschreven in dit bestand, met de datum, het uur en de naam die is opgegeven in -n. -n De naam die in het rapport moet komen. Standaard is dit de tabelnaam. Als -r niet is meegegeven, wordt deze parameter genegeerd. 3. Het Script bestand. - Elke regel bevat een volledige sql. Hier zitten geen enters in. - [del|tr,id,ins|upd|proc|proc()|ascii[#]]. del|tr tr De uitvoer.sql wordt voorafgegaan met "TRUNCATE TABLE ". del de uitvoer.sql wordt voorafgegaan met "DELETE * FROM
". Deze twee kunnen niet tesamen gebruikt worden en zijn niet noodzakelijk. id De uitvoer.sql wordt voorafgegaan met "SET IDENTITY_INSERT
ON" en eindigd met "SET IDENTITY_INSERT
OFF". del|tr,id worden enkel gebruikt met een insert-sql uitvoer. ins|upd|proc|proc()|xml|ascii[#]|asci"[#] ins De uitvoer.sql bevat "INSERT INTO
" sql's. Deze optie is standaard. Verdere specificatie: del|tr,id. upd De uitvoer.SQL bevat "UPDATE
() SET ()" sql's. proc De uitvoer.SQL bevat aanroepen naar een stored procedure, die tussen <> is meegegeven. proc() Zelfde als proc, maar de argumenten worden tussen haakjes gezet. xml De uitvoer wordt in een XML-bestand gezet. ascii[#] Met deze optie wordt de uitvoer als volgd: veld01#veld02#veld03 # is het schijdingscaracter. dit is optioneel. Een voorbeeld: ascii| geeft: veld01|veld02|veld03 Als je een comma wilt als scheidingsteken en er komt nog een commando achter, dan moet je 2 comma's zetten. OPGELET: de qoutes worden weggelaten!! asci"[#] Zoals ascii, maar de quotes worden niet genegeerd. Deze kunnen niet ter gelijker tijd worden gebruikt. - <...> Tussen deze haakjes kan men een virtuele tabelnaam of de stored procedure ingeven (ev. voorafgegaan door het aanroep-commando vb: "call locomotieveninvoegen"), waarin het resultaat wordt weggeschreven. Deze naam wordt ook in het resultaat gebruikt. - Voor de SQL wordt men verondersteld een grondige kennis te hebben over de gebruikte databases. Er zijn hier nog enkele bemerkingen. Om conversies goed uit te voeren, kun je voor een veld in de sql het volgende meegeven: - "CN=>"+ staat voor ConvertNummeriek. Gebruik dit om erg lange nummerieke velden (langer dan een int64) uit te lezen, zonder dat dit wetenschappelijk wordt weer gegeven. (vb: 10e000000000052) De werking is de volgende: 1. '"CN=>"+' wordt meegezonden naar de databank. 2. Deze plakt 'CN=>' voor het resultaat, in elk record. 3. CCD krijgt 'CN=>00000000000052' als resultaat weer. Dit is een string. 4. CCD haalt 'CN=>' weg. Je krijgt nu de volgende string: '00000000000052' 5. In de SQL-statements van de uitvoer worden er geen '"' rond gezet, waardoor deze terug een nummeriek veld worden, bij verdere verwerking. 4. Het logging bestand. Met de schakeloptie -l zijn deze bestanden maximum 5000 logginglijnen lang, zodat deze leesbaar blijven. Een logginglijn is in 3 gedeeld; nl: - de datum en tijd - de code i = gewone info w = waarschuwing (een popup venster verscheen). wijst op zware fouten. e = fouten, die geen probleem geven voor de verdere werking, maar wel ernstig genomen dienen te worden. f = kleine fouten. - het bericht.