Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Chart

Dynamischer Export von SQLServer nach SQLite

  • FlowHeater-Team
  • avatar Autor
  • Offline
  • Administrator
  • Administrator
Mehr
12 Jahre 2 Wochen her #1136 von FlowHeater-Team
Dynamischer Export von SQLServer nach SQLite wurde erstellt von FlowHeater-Team
Hallo,

Nach einiger Suche zum Thema SQL Server Daten in SQLite Datenbanken exportieren bin ich auf Ihr Produkt gestoßen.

Nach dem ersten Blick auf die Freeware Version macht der Flowheater einen guten Eindruck.

Allerdings finde ich in den Beispielen nichts, was auf unser spezielles Problem passt.

Kurz zur Erklärung, worum es geht
Wir haben eine SQL Server DB mit Daten für unseren Außendienst (Adressen, Artikel, ...)

Diese müssen, zeitgesteuert, für die ADMs in SQLite-Dateien exportiert werden.

Das sieht nach einem Fall für die Batch-Komponente aus.

Die Frage ist jetzt, ob ich Parameter, die an eine View übergeben werden, an den Batchaufruf hängen kann?

Beispielsweise:

FHBatch.exe d:\Adressen.fhd /Gebiet

Gebiet wäre dabei ein Zahlenwert von 1 bis 20

Wobei Gebiet in der Definition als Parameter für die View mit den Adressen verwendet wird (SELECT * FROM Adressen WHERE Gebiet = @Gebiet).

Und auch als Parameter für das Ausgabeverzeichnis dient (fülle die existierende adressen.db3 im Verzeichnis d:\daten\gebiet)

Ich hoffe, die Frage ist einigermaßen verständlich.

Mit freundlichen Grüßen
H.P.Bruns
Anfrage per Email erhalten

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • FlowHeater-Team
  • avatar Autor
  • Offline
  • Administrator
  • Administrator
Mehr
12 Jahre 2 Wochen her #1140 von FlowHeater-Team
FlowHeater-Team antwortete auf Aw: Dynamischer Export von SQLServer nach SQLite
Hallo Herr Bruns,

über FlowHeater Paramater können Sie Ihr Vorhaben realisieren.

Parameter können Sie dem Batch Modul über die Option /SetParameter Name=Wert übergeben.

z.B.
FHBatch /SetParameter Gebiet=10 Export-SQLServer-nach-SQLite.fhd

Diesen Parameter können Sie dann für den SELECT auf der READ Seite als dynamischen Wert verwenden.

z.B.
SELECT * FROM Adressen WHERE Gebiet = $GEBIET$

Ist das Feld Gebiet als CHAR/NCHARbzw. VARCHAR/NVARCHAR angelegt müssen Sie folgenen SQL Select verwenden

SELECT * FROM Adressen WHERE Gebiet = '$GEBIET$'

So haben Sie schon mal das Abrufen der SQL-Server Daten dynamisiert.

Etwas schwieriger wird es auf der SQLite (WRITE) Seite. Hier werden Parameter (z.Zt.) noch nicht im Datenbank Namen unterstützt!

Um das zu automatisieren benötigen wir hier einen .NET Script Heater und folgendes kleine Skript.
Code:
// !!! ACHUTUNG !!! // Option Ausführen bei auf START stellen public object DoWork() { // Hier den Pfad zu den den SQLite Datenbanken anpassen $GEBIET$ wird dabei ersetzt! string SQLite = @".\$GEBIET$\adressen.db3"; // Zugriff SQLite Adapter der WRITE Seite DatabaseAdapter adapter = (DatabaseAdapter)AdapterWrite; // Aktuellen Wert des Parameters Gebiet holen string gebiet = (string)Parameter["Gebiet"].GetString(); // Gebiet im SQLite Adapter ersetzen adapter.Database = SQLite.Replace("$GEBIET$", gebiet); return null; }
Das Skript holt sich den übergebenen Parameter "Gebiet" und ersetzt den im SQLite Adapter angegebene Pfad zur SQLite Datenbank. Wenn Sie den Ausgabepfad ändern möchten, müssen Sie dies im Skript vornehmen (s. Kommentar im Skript).

Achtung: Im .NET Script Adapter müssen Sie die Option "Ausführen bei" auf "Start" stellen (s. Screenshot)!



In der Anlage habe ich Ihnen dazu ein kleines Beispiel erstellt. Hier verwende ich nicht den SQL-Server Adapter sondern den Access Adapter auf der Write Seite. Eine Access Datenbank liegt dem Beispiel bei.

Hinweis: Damit Sie die Definition über den Designer vernünftig Testen können sollten Sie sich den Parameter über den Designer Menüpunkt "Bearbeiten->Parameter" anlegen und einen Standardwert vorgeben.

Anhang export_sql_server_nach_sqlite.zip wurde nicht gefunden.


gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
12 Jahre 2 Wochen her #1141 von Hans-Peter Bruns
Hans-Peter Bruns antwortete auf Aw: Dynamischer Export von SQLServer nach SQLite
Hallo Herr Stark

Als erstes mal ein Danke für die schnelle Antwort.
Das mit dem Forum macht natürlich Sinn. ;)

Ich habe da aber noch Fragen.

1. Ich habe mein lokales Beispiel mal im Designer ausprobiert mit dem Parameter unter Bearbeiten funktioniert das prima.
Sobald ich aber den Parameterwert über SetParameter Gebiet=101 übergebe, bekomme ich den Fehler "Falsche Syntax in der Nähe von'=' "
Der Aufruf lautet wie folgt:
FHBatch.exe SetParameter Gebiet=101 D:\Projekte\dmdbm01\CP_Android\Jobs\hdb2db3.fhd

2. Muss ich zugeben, das ich aus der VB-Welt komme. Wie refernziere ich den den DatabaseAdapter unter VB

3. Gibt es eine Möglichkeit einer Debug-Ausgabe in eine Textdatei oder per MsgBox?

Vielen Dank

Hans-Peter Bruns

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • FlowHeater-Team
  • avatar Autor
  • Offline
  • Administrator
  • Administrator
Mehr
12 Jahre 2 Wochen her #1144 von FlowHeater-Team
FlowHeater-Team antwortete auf Aw: Dynamischer Export von SQLServer nach SQLite
Hallo Herr Bruns,

zu 1) Sorry das war mein Fehler. Im ursprünglichen obigen Beispiel hatte ich den Slash (/) vor dem SetParameter vergessen. Das Beispiel wurde in der 1. Antwort korrogiert.

Hier nochmal die Richtige Syntax:
FHBatch.exe /SetParameter Gebiet=10 Export-SQLServer-nach-SQLite.fhd


Zu 2) hier das Skript Beispiel für VB.NET
Code:
' !!! ACHTUNG !!! ' Option Ausführen bei auf START stellen Public Function DoWork() As Object Dim SQLite as String Dim gebiet as String Dim adapter as DatabaseAdapter ' Hier den Pfad zu den den SQLite Datenbanken anpassen $GEBIET$ wird dabei ersetzt! SQLite = ".\$GEBIET$\adressen.db3" ' Zugriff SQLite Adapter der WRITE Seite adapter = AdapterWrite ' Aktuellen Wert des Parameters Gebiet holen gebiet = Parameter("Gebiet").GetString() ' Gebiet im SQLite Adapter ersetzen adapter.Database = SQLite.Replace("$GEBIET$", gebiet) End Function

Zu 3) Das steht momentan auf der ToDo Liste. Über das Batch Modul können Sie die Ausgaben über Ausgabeumleitung in eine Textdatei schreiben lassen.

Hier ein kleines Batch CMD Beispiel
Code:
@echo off REM Hier ggf. den Installationspfad zur FHBatch.exe anpassen! set FHBATCH="C:\Program Files\FlowHeater V2\BIN\FHBatch.exe" REM Hier ggf. den Pfad für das LOG File ändern set LOG=C:\Temp\FHBatch_log.txt %FHBATCH% /SetParameter Gebiet=1 export-sql-server-nach-sqlite.fhd >> %LOG%

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.276 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.