Ganze Tabellen einer Datenbank sichern als einzelner Datensatz

Ganze Tabellen einer Datenbank sichern
Es werden in diesem Beispiel in einer Schleife eine Tabelle einer Staging-Datenbank in einem einzigem Feld eines Satzes in der [BackupsTabelle] in einer anderen Datenbank [BackupDB] gesichert.

Es wird dabei auch T-SQL Code bereitgestellt, um diese komprimierten und gesicherten Daten, ohne Aufwand lesbar zu machen.

Durch diese Form der Sicherungen, können mglw. komplette ETL-Strecken, zu erneut eingespielt werden.

Ganze Tabellen einer Datenbank sichern.docx

Limits: Ein Feld mit dem Typ NVARCHAR(MAX) kann nicht mehr als 2 GByte  enthalten

Statische Tabelle per JSON

Man kann für tabellarische Modelle statische Tabellen hinzufügen über unterschiedliche Wege.
Die größten Probleme können die unterschiedlichen Versionen. Und auch der u.g. DAX-Code mit dem JSON Anteil ist möglich ab SSAS Version 1200:

Quarters2015 =
DATATABLE (
"Quarter", STRING,
"StartDate", DATETIME,
"EndDate", DATETIME,
{
    { "Q1", "2015-01-01", "2015-03-31" },
    { "Q2", "2015-04-01", "2015-06-30" },
    { "Q3", "2015-07-01", "2015-09-30" },
    { "Q4", "2015-010-01", "2015-12-31" }
}
)

Gut lesbare Beschreibungen unter:

Create Static Tables in DAX Using the DATATABLE Function – SQLBI

 

Downgrade MS SQL Server, SSAS, etc.

How to easily downgrade SQL Server from Enterprise to Developer/Standard Edition – Datarrett

Downgrade from SQL Server Enterprise Edition to Standard Edition (mssqltips.com)

Wenn die o. g. Lösung nicht ausreichend ist und ggf. komplett neu aufgesetzt werden müsste, hier können vielleicht vorher die SIDs gesichert und später wieder eingespielt:

Ask Prof.Toh: How to downgrade Microsoft SQL Server 2005 Enterprise version to Standard version (asktoh.blogspot.com)

Feature der Enterprise-Edition könnten zu Problemen führen?

Loxone Geofence

Geofencing im Loxone – Z.B. Wenn alle Smartphones und Watches das Haus verlassen haben, dann könnten bestimmte Dinge geschaltet werden (Trafo in Standby oder über Relais Stromkreise schalten und viele andere Dinge).

Grundsätzlich geht so etwas, aber wer Geofencing etwas schalten möchte, sollte auch einmal die technischen, zeitlichen und juristischen Problematiken betrachtet werden. 

„Zeitlich“ bedeutet, wie zeitgenau muss eine Reaktion erfolgen? Wenn ich in einem Supermarkt vor einem Regal stehe möchte ich Angebote sehen, die auch in dem Regal stehen und nicht die, vor dem ich vor 2 Minuten stand! Deshalb werden dort auch nicht GPS benutzt, sondern andere Technologien.

Wenn es jedoch völlig zeitunkritisch ist und ich will nicht wissen WO die Handys sind, sondern nur ob alle Smartphones nicht im eigenem WLAN erreichbar sind, dann benötigt man keine Port-Freigaben, VPN, Apps auf Smartphones.

Beispiel mit Fritzbox, TP-Link-Accesspoint:

….

Link/s:

    • https://loxwiki.atlassian.net/wiki/spaces/LOX/pages/1517355031/Anwesenheitserkennung+mit+iPhone+und+Geofency
    • https://loxwiki.atlassian.net/wiki/spaces/LOX/pages/1517355031/Anwesenheitserkennung+mit+iPhone+und+Geofency

 

Sonnenenergie oder andere Technologien für das eigene Haus möglich?

Es wird es bundesweit ein Kataster geben – nur wie man daran kommt und in welche Format die Daten verfügbar sind, ist offensichtlich Gemeinde abhängig.

Links: 

    • https://solarkataster.landkreis-fuerth.de/Solarpotenzialkataster?lat=49.491869&lon=10.792342
    • https://www.energieatlas.bayern.de/energieatlas/praxisbeispiele/details,61.html

Verweise auf benutzte Bibliothek/en:

    • https://leafletjs.com/plugins.html

 

LOXONE diverses…

https://onebox-smarthome.de/blogs/news/loxone-ready-ubersicht-aller-produkte-die-mit-loxone-kompatibel-sind

WELCHE HERSTELLER FÜHREN LOXONE READY PRODUKTE?

Wir haben für euch extra eine kleine Liste mit Herstellern erstellt. Mit einem Klick auf das Unternehmen bzw. auf das Produkt kommst du auf die jeweilige Seite.

Hunter Douglas – PowerView: Die Firma Hunter Douglas macht aus hübschen Fensterbehängen eine intelligente Beschattung für dein SmartHome
Molto Luce – Volare Air: Automatisierung und Design auf höchstem Niveau. Deine Leuchten von Molto Luce werden definitiv der Hingucker sein!
Paulmann – Plug & Shine Connection Box: Dein Ansprechpartner für automatisierte Gartenbeleuchtung.
Geiger Antriebstechnik – Beschattungsmotoren: Eignet sich ideal zur automatischen Beschattung im SmartHome oder in Gewerblichen Objekten.
Leaf 1 – Leaf Ventilation: Dein revolutionäres Lüftungssystem für dein Loxone SmartHome.
PeraquaAquastar Air: Der Pool lässt sich auch intelligent steuern? Na klar! Mit dem Aquastar Air von Peraqua sorgt für beste Wasserqualität durch automatisiertes Filtern, Rückspülen, Klarspülen, Zirkulieren, Entleeren und mehr.
Internorm InternationalIntercom Extension:
Lässt dich ganz einfach Steuerelemente (Steuerelemente I-tec Lüftung und I-tec Beschattung) integrieren.
Fröling Heizkessel- und BehälterbauFröling Extension: Ermöglicht dir bedarfsgerechte Heizsteuerung deines SmartHomes.
Schüco TipTronic SimplySmartSchüco Extension: Sie können Fenster- & Schiebetüren in die Haus- & Gebäudeautomation von Loxone integrieren und die Fenster & Schiebetüren zum integralen Bestandteil der intelligenten Haus- & Gebäudeautomation werden lassen.

Webcam an Loxone:
https://mpolinowski.github.io/devnotes/2019-02-11–loxone-miniserver

Liste v. Github-Repositories:
https://github.com/topics/loxone-miniserver
https://github.com/Loxone

Charts für Loxone:
https://github.com/eik3/loxgraph
https://www.loxforum.com/forum/projektforen/loxberry/plugins/315626-stats4lox-das-statistik-plugin

 

Windows 10 Desktop Hintergrund-Farbe ändern per Powershell

Wenn der Desktop Hintergrund vom IT festgelegt wird, ist schon vorhersehbar, dass ein Hintergrund-Bild stört und eine völlige unnötige Unzufriedenheit einschleichen kann. Mich stören unruhige Bilder und verlange nach einfachem „Grau“, weil ich z.B. „Icons“ auf dem Desktop ablege und diese nicht mehr so leicht zu finden ist.

Eine Lösung könnte ein Batch-Script sein, dass man beim Rechner-Start automatisch startet oder wenigstens nur einmal starten kann.

Das sollte so einfach sein, aber in der Realität kann es sein, dass man ein Powerscript im Autostart haben möchte und dann soll das Script dann auch wieder beendet sein. Wohl dem, der nicht ständig das Admin-Passwort bemühen muss – auch dass kostet dann doch wieder Zeit.

Fazit: Aus „5 Minuten“ können schnell auch eine Stunde sein.


<# Windows 10 Desktop Hintergund Farbe ändern per Powershell Quelle/n: https://administrator.de/forum/powershell-windows-8-1-desktop-hintergrund-einfarbig-%C3%A4nderen-521241.html #>

###############################################
##Erst einmal den Bildschirm löschen u. Optik... (Microsoft Werbung für 'Powershell' was soll der Schwachsinn?):
cls
if ($Host.Name -like "*ISE*") {
# Fenster Überschrift festlegen
#$host.UI.RawUI.WindowTitle = "ISE"
}

###############################################
## System.Drawing bereitstellen und Funktion
Add-Type -A System.Drawing
function Set-BackgroundColor([System.Drawing.Color]$color){
Add-Type -Memberdefinition '
[DllImport("User32.dll",CharSet=CharSet.Unicode)]public static extern int SystemParametersInfo (Int32 uAction,Int32 uParam,String lpvParam,Int32 fuWinIni);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]public static extern int SetSysColors(int cElements, int[] lpaElements, int[] lpRgbValues);
' -Name Win32 -Namespace Tools
[void][Tools.Win32]::SystemParametersInfo(0x0014,0,"",3)
[void][Tools.Win32]::SetSysColors(1,[int[]]@(1),[System.Drawing.ColorTranslator]::ToWin32($color))
}

###############################################
## Funktion aufrufen
Set-BackgroundColor -Color ([System.Drawing.Color]::FromArgb(200,200,200))

###############################################
#Script beenden:
if ($Host.Name -like "*ISE*") {
#in einer ISE bleiben wir in der ISE.
} else {
$process = Get-Process -ID $PID
Stop-Process -InputObject $process
}

Danach könnte man diese Powershell-Script automatisch starten lassen;-)
Quelle/n:
https://stackoverflow.com/questions/21218346/run-batch-file-on-start-up

Aber Powershell Scripte können als „Link’s“ abgelegt werden und sind aufrufbar. Dazu habe ich das Script sauber dort abgelegt, wo Anwendungen auch installiert werden und ist sicherlich bei jedem anders:
%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -noexit -File „C:\Program Files (x86)\rdfo_apps\Desktop-Hintergund-festlegen\Desktop-Hintergund-festlegen.ps1“

SQL Formatter (leider nur bis SSMS 2019)

Beim Lesen von T-SQL im SSMS fehlt immer wieder eine Formatierungs-Hilfe.
Praktisch fand ich:
Quelle/n (des gleichen Entwicklers):
https://github.com/TaoK/PoorMansTSqlFormatter
Ist GitHub, aber nur schwierig die richtige *.msi zu finden
http://architectshack.com/PoorMansTSqlFormatter.ashx#Download_15
Hier muss man die „Extension for CURRENT VERSION of SSMS….“ suchen und kann die PoorMansTSqlFormatterSSMSPackage.Setup.1.6.16.msi laden und installieren.

Ggf. ist noch das .NET Framework 2.0 nötig:
Download .NET 2.0 SP1 (x64) from Official Microsoft Download Center

Das SSMS muss ggf. neu gestartet werden und dann ist im Menü „Tools“ der Punkt „Format T-SQL Code“

Benutzung:
Den SQL Code, den man in einer Query hat, kann man dann über den o.g. Punkt den Code neu formatiert anzeigen lassen. Typisch ist das nötig, wenn man komplexe Stored Procedure in einer einzigen Zeile findet.

Sollte man eine Fehlermeldung sehen:
---------------------------
Microsoft SQL Server Management Studio
---------------------------
The 'FormatterPackage' package did not load correctly.

The problem may have been caused by a configuration change or by the installation of another extension.
You can get more information by examining the file
‚C:\Users\frank.odenbreit\AppData\Roaming\Microsoft\AppEnv\14.0\ActivityLog.xml‘.

Restarting Visual Studio could help resolve this issue.

Continue to show this error message?
—————————
Ja Nein
—————————

Lösung:
https://github.com/TaoK/PoorMansTSqlFormatter/issues/187
EINFACH DEN DIALOG MIT „NO“ bzw. „NEIN“ BESTÄTIGEN!!!!
Siehe d. o.g. Link:

Don't bother reading all that text - I messed up the installer during the split at the start of the week.
The problem will have been temporary (as long as you say "No" in the error dialog, the extension loads fine on next SSMS restart and forever after), but still, almost 300 downloads of the bad installer... :(
Fixed installer is live, downloadable at http://architectshack.com/PoorMansTSqlFormatter.ashx
Sorry about the inconvenience.

In einzelnen Fällen war das Menü deaktiviert („grau“). In dem Fall hat mir dieser Link geholfen die Konfiguration des SSMS anzupassen („ssms.exe.config“):

https://stackoverflow.com/questions/63313632/poor-mans-t-sql-formatting-add-in-format-t-sql-code-option-disabled-in-sql-ser

 

Visual Studio 2019 + Data Tools

Wer das alte VS 2017 oder noch ältere Versionen kennt, kann die Data Tools installieren und dann können neue Projekte anlegen, die auf diesen basieren.
Das neue VS 2019 erlaubt es aber auch nach einer Installation von Data Tools weiterhin nicht, neue Projekte dafür anzulegen.

Diese Funktionalität wird immer versteckter und ich versuche, nicht zuletzt wegen solchen „Verschlimmbesserungen“, immer häufiger kostenfreie Open Source Anwendungen benutzen, um diese nervigen Microsoft Produkten zu vermeiden zu können.

In dem MS-Link https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-ver15 wird ganz versteckt weitere Links, dass es eben nicht ausreicht, die Data Tools zu installieren, sonst jetzt muss man auch weitere „Extension“ installieren muss.

For Analysis Services, Integration Services, or Reporting Services projects, you can install the appropriate extensions from within Visual Studio with Extensions > Manage Extensions or from the Marketplace.

Analysis Services
Integration Services
Reporting Services

Diese drei Extension herunterladen und installieren – Dateien mit der Endung „vsix“ sind Microsoft’s Installer.
Hinweis: Diesen drei Links folgen und gut durchlesen – schon für die ältere SQL Server 2017 Versionen muss noch weitere zusätzliche Extension nötig sind!
Dann kann man Glück haben und es läuft, oder man Pech und ärgert schon wieder mit Microsoftprodukten. Unzufriedenheit und Ärger ist vermutlich von Microsoft gewollt!

Ach so, solche neue Projekte kann man anlegen, wenn man die richtigen Schüsselworte „findet“. Diese Entwicklung halte ich als falsch! Früher gab es schon einmal graphische Dialoge.
Für SSAS-Projekte: „Analysis“ oder „Services“
Für SSIS-Projekte:
Für SSRS-Projekte: „Bericht“
Für SQL Server Projekte: „SQL“
Leider muss man jetzt auch hier viel Scrollen. Und mein 4K Monitor bietet jetzt immer noch nur sechs Einträge an und man darf dann reichlich scrollen. Dass man scrollen kann, sieht man nur, wenn man die Maus in den richtigen Bereich schiebt… (darum ist eben der tolle weiße Dialog Rahmen und darum herum reichlich vieeeeeeeeel weißer Hintergrund). Microsoft weiß eben wie man es schwierig machen kann und keinesfalls flüssig arbeiten soll!

ESXi 7.0 Free

Auf meinem Apple-Server kann ich leider keine Updates mehr einspielen oder gar das neue „“ zu installieren, weil Apple kein Interesse hat z.B. ein Synology NAS anzuschließen oder Software wie VMware Fusion zu benutzten – beides ist nicht mehr möglich. Diese Hardware kann jetzt wenigstens noch benutzt werden als echter „ESXi“

ESXi wird normalerweise nur auf einem zertifiziertem physischem Rechner installiert oder muss viel Erfahrung und Glück haben.

Auch in der neuen Versionen 7.0 ist eine neue Lizenz nötig und es bestehen Beschränkungen für die freie Benutzung. Diese sind für einen privaten Rechner zum Glück nur selten eine wirkliche Beschränkung: 

Free ESXi 7.0 – How to Download and get License Keys

https://www.cbtnuggets.com/blog/certifications/cloud/vmware-esxi-free-vs-paid-a-look-at-license-limitations


„Multiboot buffer is too small.“ after upgrade to ESXi-6.7.0-20181002001-standard (Build 10302608) · Issue #1 · vmware/esx-boot (github.com)

The Details Of The Testing:

  • Downloaded the 6.7.0 and 6.7.0U1 installers and put them onto USB keys.
  • Downloaded the latest 10.14.2 installer and put it onto a USB key
  • Did a test install of 6.7.0U1 from USB to a Late 2012 Mac Mini – and it failed with the expected „Mutiboot buffer is too small“
    • Confirmed failure – as expected.
  • Installed 10.14.2 onto the Mac Mini and checked the firmware level.
    • AHA! That took me to a NEW firmware level: 274.0.0.0.0
  • Did a second test install of 6.7.0U1 from USB to a Late 2012 Mac Mini –> and it worked!
  • Repeated this across all Mac Mini nodes successfully.

Open Items:

  • There has got to be a faster way to apply Apple firmware updates. Anyone know of a better way?

Web Sites that were helpful along the way:

 

Mac OS Big Sur und globalSAN

Wie immer, bei einem neuem Mac OS erst in einer virtuellen Maschine probieren, ob das globalSAN dann noch funktioniert!
Dieses Mal wird es wieder nicht so einfach:

Links:
https://support.studionetworksolutions.com/hc/en-us/articles/360052102272-globalSAN-and-macOS-11-Big-Sur-

https://anandmpandit.blogspot.com/2017/09/how-to-boot-into-recovery-mode-on-mac.html

Das funktioniert nicht richtig – aber der Hinweis ist trotzdem interessant:
https://derflounder.wordpress.com/2017/08/01/setting-a-macos-vm-to-automatically-boot-to-recovery-hd-using-vmware-fusion/
Hinweis: In VMWare Fusion das VM auswählen und rechte maus und dann einmal nacheinander die tasten „ctrl“, „alt“ und „cmd“ ausprobieren…. Und dann wird einen Editor angeboten

Download von globalsan:

https://www.snsftp.com/public/globalsan/

https://support.studionetworksolutions.com/hc/en-us/articles/360052102272-globalSAN-and-macOS-11-and-12-Big-Sur-and-Monterey-

Apple macOS Big Sur Installation vorbereiten

  1. Big Sur herunterladen z.B. als „Update“ wird es geladen (ca. 13 GB) 
  2. Den Installations-Dialog per Menü „beenden“!!!!!
  3. USB Stick (mind. 16 GB) anschließen, formatieren mit Format „Mac OS Erweitert (Journaled)“ und Name „Untitled“
  4. Shell starten und in einer Zeile:
    sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia –volume /Volumes/Untitled
    Hinweis 1: Weil „macOS Big Sur“ Leerzeichen hat, muss jeweils das
    Leerzeichen maskiert werden mit eine Backslash
    Hinweis 2: Das „Untitled“ muss dem Name des USB Stick passen

Achtung:

Ich empfehle auf dieses OS noch zu warten. Zum Einen werden im Internet Probleme gemeldet und zum Anderen Sicherheit – das macOS kontrolliert jede installierte Software und hebelt jede Firewall aus und versendet die Abfragen unverschlüsselt an Apple:

https://t3n.de/news/macos-big-sur-apple-datenschutz-vpn-netzwerkfilter-1337470/

Installations Links:

https://macpaw.com/de/how-to/clean-install-macos-big-sur

 

https://www.zdnet.de/88389660/macos-big-sur-11-bootbaren-usb-stick-erstellen

 

Datenverkehr mit der Fritzbox aufzeichen

Manchmal muss man kontrollieren, ob und welche Pakete in das Internet gehen. Auch in der FritzBox ist das möglich:
http://fritz.box/html/capture.html 

Dort dann z.B. „Internet“ starten… und nach dem erwarteten Daten dann „stoppen“ und die Datei anschauen.

Hinweis: Bei einem iPad z.B. funktioniert das nicht – im normalem Rechner kommt nach der Anmeldung ein Dialog wo die Log-Datei abgelegt werden soll.

Quelle:
https://praxistipps.chip.de/fritzbox-datenverkehr-mitschneiden_9989

Ändern des SSAS Modus

Technisch kann man beide Modi bereitstellen indem zusätzliche Instanzen bereitgestellt werden. Wenn jedoch bei der Installation der SSAS Modus „falsch“ installiert wurde, und einfach nur richtigen Modus haben will, der könnte das erreichen, indem die msmdsrv.ini angepasst wird und dann die Instanz einfach neu starten:

Bei Multidimensional: <DeploymentMode>0</DeploymentMode>

Bei Sharepoint: <DeploymentMode>1</DeploymentMode>

Bei Tabellarisch: <DeploymentMode>2</DeploymentMode>

Die ini-Datei ist bei der Standardinstallation:
C:\Program Files\Microsoft SQL Server\MSAS14.SQL2017\OLAP\Config
Wobei die hier Teile abhängig von der installierten Version sind.

Quelle/n:

https://www.sqlservercentral.com/articles/how-to-change-an-analysis-services-instance-to-tabular-mode

https://docs.microsoft.com/de-de/sql/analysis-services/instances/determine-the-server-mode-of-an-analysis-services-instance?view=sql-server-2014

 

 

 

Datenbank shrinken, aber die Dateien werden nicht kleiner?

Prinzipiell sollte es möglich sein eine Datenbank oder einzelne Dateien, z.B. das LOG zu verkleinern. Aber diese werden niemals kleiner, als die „Inital Size“.

Wenn es jedoch immer noch nicht funktioniert, kann es an vorhandenen Indizes liegen, die auch sehr stark fragmentiert sein können.

Gute „vorbereitete Lösung“ habe ich gefunden bei:

https://blog.pmd-media.com/2009/10/08/howto-verkleinern-einer-microsoft-sql-server-datenbank/

--Erst alle Indizes neu aufbauen
DECLARE @TableName varchar(255)
DECLARE TableCursor CURSOR FOR
   SELECT DISTINCT QUOTENAME(TABLE_SCHEMA)+'.'+QUOTENAME(table_name)
   FROM information_schema.tables
   WHERE table_type = 'base table'
   order by 1 asc
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
   print @TableName+'....'
   DBCC DBREINDEX(@TableName,' ',90)
   FETCH NEXT FROM TableCursor INTO @TableName
END
CLOSE TableCursor
DEALLOCATE TableCursor
print 'FERTIG'

--Und nachher wirklich shrinken:
go
dbcc shrinkdatabase    (0, 10, NOTRUNCATE)
--Erster Parameter := Aktuelle DB
--Zweiter Parameter := Wieviel Prozent soll "leer" bleiben
go
dbcc shrinkdatabase    (0, 10, TRUNCATEONLY)
--dto.
GO

/*
--Quelle: https://qastack.com.de/server/31554/how-to-check-progress-of-dbcc-shrinkfile
--In einem anderem Fenster könnte man sehen wie weit der Shrink-Prozess ist:
select  T.text, R.Status, R.Command, DatabaseName = db_name(R.database_id)
        , R.cpu_time, R.total_elapsed_time, R.percent_complete as [ca.percent]
from    sys.dm_exec_requests R
        cross apply sys.dm_exec_sql_text(R.sql_handle) T
*/

SQL: Zahlen in lokalem Format

Problem Darstellung eines Ergebnisses per T-SQL möchte man gelegentlich unterschiedlich formatieren.
Speziell bei „Datum“ und „Zahlen“ hat man ständig mit Problemen.
Beispiel im SQL hat man ständig Werte wie „9999.99 aber im deutschem Excel wird nicht als 9.999,99“ verstanden und muss ständig mit hohem Zeitaufwand im Excel als „Text“ eingelesen und dann werden bei den betroffenen Spalten erst Punkt in Komma gewandelt und dann müsse die Spalten in die richtige Formate gebracht werden.
Bei DATUM lässt sich das in einer T-SQL Abfrage mit einem einfachen „SET“-Kommando anpassen. Leider gibt’s bisher keine einfache Lösung bei Microsoft.
Daher hilft möglicherweise der „FORMAT“-Befehl…

SELECT
    -- c => currency
    -- n => numeric
    FORMAT(987654321, N'N', C.culture) AS some_number
,   FORMAT(987654321, N'c', C.culture) AS some_currency
,   C.culture
FROM
    (
        -- Language culture names
        -- http://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx
        VALUES
            ('en-US')
        ,   ('en-GB')
        ,   ('de-DE')
    ) C (culture);

Select FORMAT(987654321, N'N', 'de-DE') AS some_number

Quelle: https://stackoverflow.com/questions/4377352/how-do-i-format-a-number-with-commas-in-t-sql

iPad Version feststellen?

Auf der Rückseite der iPad sollen diese Modellnummer (z.B. A1671) zu finden – aber dazu müsste man das aus dem Cover holen…

In den Systemeinstellungen im Menü „Allgemein“ und dort ganz oben „Info“. Dort gibt es den Menüpunkt „Modellnummer“. Dieser gibt jedoch eine ganz andere Darstellung! Lösung: Einfach auf die „Modellnummer“ tippen und dann erscheint die gewünschte Darstellung.

Bsp.: MPA42FD/A  <=> A1671

Übrigens, gleich an der gleichen Seite ist gleich der Modellname im Klartext zu finden.

Bsp.: iPad Pro (12,9 Zoll, 2. Generation)

Liste welcher Modellnummer zu den iPad gehören ist hier bei Apple zu finden:
https://support.apple.com/de-de/HT201471

 

Azure Data Factory (ADF)

SQL Satury – Transitioning From SSIS to Azure Data Factory:
https://www.sqlsaturday.com/SessionDownload.aspx?suid=17898

Azure Data Factory Dokumentation:
https://docs.microsoft.com/de-de/azure/data-factory/

On-Premise / Hybrid (Azure – SSIS) / Azure:
https://docs.microsoft.com/de-de/azure/data-factory/concepts-integration-runtime

Zugriff auf On-Premise SQL Server:
https://docs.microsoft.com/de-de/azure/data-factory/create-self-hosted-integration-runtime

Bereitstellen der Azure-SSIS Integration Runtime in Azure Data Factory:
https://docs.microsoft.com/de-de/azure/data-factory/tutorial-deploy-ssis-packages-azure

Deploy Azure Data Factory (#adftools) – Visual Studio Marketplace:
https://marketplace.visualstudio.com/items?itemName=SQLPlayer.DataFactoryTools

 

 

 

Rezo ja lol ey

Bewerten muss jeder für sich! Sicherlich wird das Video und die Links nicht ewig erreichbar sein.

Video:

Quellen im Video:

https://docs.google.com/document/d/1C0lRRQtyVAyYfn3hh9SDzTbjrtPhNlewVUPOL_WCBOs/mobilebasic

BIML

https://www.informatik-aktuell.de/entwicklung/programmiersprachen/biml-macht-datenbeladung-zum-kinderspiel.html

https://www.cathrinewilhelmsen.net/2016/04/21/get-started-bimlexpress/

 

OpenSteetMap? Geo-Koordinaten?

Link/s:

https://learnosm.org/de/beginner/

https://export.hotosm.org/de/v3/

https://developers.google.com/maps/documentation/geocoding/get-api-key?hl=de

Hinweis: Sehr unterschiedlich können die GPS Koordinaten sein, die man sich beschaffen kann für eine normale Straßen-Adresse – je nach dem benutztem „Webservice“. Genau so unterschiedlich können die Position in der Landkarte dargestellt sein für eine wohldefinierte Koordinaten, sei es Bing, Google, OpenStreetMap, …  Es haben sich gezeigt, dass eine einzelne Adresse im Nürnberger Gebiet fast 500 m unterschiedlich dargestellt werden kann!

Fazit: Man sollte das gleiche System benutzen für das Bestimmen von GPS Koordinaten aus einer Straßen-Adresse und für das Darstellen von GPS-Koordinaten in der Landkarte!

 

Website(URL) in das Startmenü?

Quelle: https://www.winboard.org/artikel/windows-10-webseiten-als-kachel-im-startmenue-hinterlegen-so-gehts.8570/

Lösung:

  1. Im IE rechts oben bei den drei „Ellipsen“ auf die Maus klicken (linke Taste)
  2. Im Menü „Diese Seite an Start anheften“ anklicken
  3. Im Startmenü  selber dann an die gewünschte Position verschieben

 

 

SSMS verbraucht CPU und reagiert nicht mehr alle paar Minuten…

Problem: Das SSMS (SQL Server Management Studio) hängt alle paar Minuten – Auch ein Neustart des SSMS bringt nichts.
Nebeninformation: CPU vom SSMS wird 15-25% und das RAM vom SSMS mehrere GB!

 

Ursache: Eine T-SQL Query ist syntaktisch defekt und das SSMS „wild“ zu werden. Es scheint mit einem Zusammenhang mit dem IntelliSense zu haben.

Lösung: Korrektur des T-SQL Code und ein paar Minuten geduldig sein, CPU verringert sich schneller und das RAM normalisiert sich etwas später!

Ähnliche Feststellungen:
https://superuser.com/questions/1195570/sql-server-management-studio-cpu-and-ram-usage-keeps-increasing-for-no-reason

Xojo & Aloe Express

Software Anwendung, für alle Platformen (iOS, OS X, Windows, Linux, Rasberry PI). Die Entwicklungssprache ist Basic ähnlich. Die Software IDE erlaubt eine graphische Entwicklung ähnlich wie XCode oder Visual Studio.

https://www.xojo.com/

Und einen Webservice bereitstellen, auch unter Windows, Linux und OS X:

https://aloe.zone/

Preis: ca. 100-1500 EUR/Jahr

Hinweis: Die Lizenz ist nur fällig, wenn die Software kompiliert wird.

Hinweis: Die Lizenz darf die Software auch nach Ablauf der Lizenz benutzt werden, aber eben keine Xojo- Updates mehr.

WLAN „QR“ bereitstellen?

Es geht, indem man ein QR mit dem folgendem Text erstellt:

WIFI:S:gästenetz;T:WPA;P:klartestpasswort;

Problem: Man möchte z.B. für Gäste ein Netz freigeben. Aber man müsste ja das Passwort extra weitergeben. Die meisten aktuellen Laptops, Tablets und Smartphones reicht es über die Standard Kamera App über ein QR zu halten – und der Rest geht wie von alleine. Aber den Inhalt eines QR kann über viele QR Code Reader App ausgelesen werden und ist dann in Klartext bekannt.

In Firmen, jedoch werden häufig diese Passwörter gar nicht weitergeben, sondern müssen manuell von einem Admin eingetragen werden.

Als Sicherheit können in privaten/geschlossenen Netzen, einen Zugriff nur über eingetragene MAC-Adresse erlaubt werden. Muss aber im Accesspoint irgendwo eingerichtet werden (soweit möglich); Und, die MAC-Adresse kann vom Client geändert werden – ist also keine echte Sicherheit!

Nebenbei: QR-Code (engl. Quick Response) ist ein zweidimensionaler Code und ist fehlerkorrigierend und es können bis ca. 30% der Fläche fehlen bzw. beschädigt sein und wird trotzdem gelesen.

Link/s:

https://qifi.org/
https://github.com/zxing/zxing/wiki/Barcode-Contents#wifi-network-config-android

Nur Fehlernummern (Error Code) in SSIS-Jobs

Leider werden in SSIS-Jobs nur unverständliche Fehlernummern hinterlegt. Manche Nummern sind auch im Internet nicht sofort zu finden.
Eine Lösung wäre, suchen nach der Fehlernummer in d. u. g. Seite:
https://docs.microsoft.com/en-us/sql/integration-services/integration-services-error-and-message-reference?view=sql-server-2017
Oder diese Liste einmal in eine eigene Datenbank hinterlegen und dann können diese Fehlermeldung in Jobs erweitert werden…

Power BI: Filter darstellen….

Benutzte Filter können leicht so unübersichtlich werden, dass es schon wäre, wenn der Anwender die benutzten Filter sehen könnte.
Sei es, dass man den Filter in den Charts als „Tooltips“ darstellen kann oder als ständige Anzeige als Visual.

Man könnte für jede Entität, die an der Filterung betroffen ist eine Measure wie „Selected<Entität>“. Und dieses Measure, oder mehrere, können als Tooltips angehängt werden.

Solche Measure können komplex werden – weil eine unbekannte Anzahl von Sätzen angehakt sind:
https://www.sqlbi.com/articles/displaying-filter-context-in-power-bi-tooltips/
Hinweis: Wenn DirectQuery benutzt wurde, dann ist diese Variante noch nicht möglich… Problem: CONCATENATEX()

Bilder dynamisch in Power BI?

Quelle/n:

https://blog.gbrueckl.at/2018/01/storing-images-powerbi-analysis-services-data-models/

https://jasonsql.files.wordpress.com/2017/02/temp.gif

Bilder als URL? Derzeit inakzeptabel, weil ein online Zugriff auf die URL notwendig ist. Und keine dynamische Änderungen möglich.

Ersatz: Das/die Bilder als base64based encoded in einer Tabelle bereitstellen – oder diese in einem zusätzlichem „Measure“ hinzufügen. 

Beispiel:
Cast(‚data:image/jpeg;base64,/9j/4AAQ….EIwioxVkj/9k=‘ as nvarchar(max)

Tools um einzelne Bilder in 64based encoded manuell bereitzustellen:
https://onlinejpgtools.com/convert-jpg-to-base64
https://www.browserling.com/tools/image-to-base64

Optional, können per T-SQL alle Bilder aus Ordner eingelesen werden.

Bilder in Tabellen lassen sich jederzeit darstellen, lediglich wenn ein einzelnes Bild dargestellt werden, ist immer die Tabellen Überschriften vorhanden und lässt sich nicht zu unterdrücken.

Normale Bilder im PowerBI lassen sich nur per URL festlegen – Mir entfällt die Visualisierung vom Marketplace:

Ereignisanzeige/Events „ID 10016“

Es sind neue „Error“ Einträge mit dem ID=10016. Und der Text:

The application-specific permission Settings do not grant Local Activivation permission for the COM Server application with CLSID {….} and APPID {….} to the user ….. SID {….} from address localHost (Using LRPC) running in the application container Unavailable SID {….}. This security permission can be modified using the Component Services administrative tool.

Link: https://answers.microsoft.com/en-us/windows/forum/windows_8-performance/application-container-unavailable-sid-unavailable/4ec39b15-1f43-4d7a-bbf6-11706a685b7c

Nach dem Klären, dass es sich um die „COM Server application“ handelt „Microsoft.SQLServer.Dts.Server.DtsServer“ und in den „Component Services“ den „Microsoft SQL Server Integration Service 11.0“ ging ich davon es aus reichen sollte dem fraglichem „Agent-User“ die Rechte zu den Datenbanken „msdb“ und „SSISDB“ zu erteilen.

/*
Zugriff auf msdb und SSISDB
Link: https://docs.microsoft.com/en-us/sql/integration-services/security/integration-services-roles-ssis-service?view=sql-server-2017
Hinweis: Um SSIS-Jobs anzulegen, ist es meist notwendig weitere Einstellungen vorzunehmen, wie z.B. einen "Proxy".
*/
USE [SSISDB]
GO
CREATE USER [NT SERVICE\SQLAgent$SQL....] FOR LOGIN [NT SERVICE\SQLAgent$SQL....] WITH DEFAULT_SCHEMA=[dbo]
GO
EXEC sp_addrolemember @rolename = 'ssis_admin', @membername = 'NT SERVICE\SQLAgent$SQL....'
GO
USE [msdb]
GO
CREATE USER [NT SERVICE\SQLAgent$SQL....] FOR LOGIN [NT SERVICE\SQLAgent$SQL....] WITH DEFAULT_SCHEMA=[dbo]
GO
EXEC sp_addrolemember @rolename = 'db_ssisoperator', @membername = 'NT SERVICE\SQLAgent$SQL....'
GO

Weiterhin erschien die Fehlermeldungen und musste dem oberem Link folgen und die „Component Services“ anzupassen.
Wobei die Fehlermeldungen in der Ereignisanzeige nicht mehr auftraten.

E-Mail versenden per PowerShell

Emails können per PowerShell versendet werden, soweit der SMTP-Server bekannt ist:

Send-MailMessage -SmtpServer smtp.rdfo.org -From frank@rdfo.org -To Odenbreit@rdfo.de -Subject "Test E-Mail"

Hinweis/Warnung: Weder der Smtp-Server noch der eingetragene Empfänger sind benutzt noch eingerichtet.

Excel: Unterschiedliche Endungen / Dateiformat….

Jeder kennt sein Excel und die aktuellen Endungen:

  • xlsx
    Excel Formt ohne Macros
  • xlsm
    Excel Formt mit Macros
  • xlsb
    binäres Format, mit Macros

Speziell das xlsb ist spürbar schneller zu benutzten. Der Start des Excel, die Berechnungen im Excel (soweit Marcros vorhanden sind) und die Dateigröße ist wesentlich kleiner! Der Entscheidende Unterschied ist eben, dass es binäres Format also proprietär – und der Inhalt ist nicht wie eine ZIP-Datei aufgebaut- Man kann den Inhalt also nicht einfach an schauen.

Quelle/n:

http://www.office-loesung.de/ftopic308021_0_0_asc.php
http://www.dateiendung-liste.de/dateiendungen/xl

SQL: Deploy SSIS-Solution

Es gibt prinzipiell verschiedene Stellen, wohin man den Code ablegen kann, damit der SQL Server diesen aufruft.

  • Filesystem
  • SQL Server
  • SSIS Package Store
  • SSIS Catalog

Wobei ich derzeit diese letzte Variante „SSIS Catalog“ in aktuellen Datenbanken. Es wird in der Datenbank automatisch eine Datenbank „SSISDB“ und soweit die Service Integration auch installiert ist, gibt es auch einen „Integration Services Catalog“. Beim Erstem Aufruf muss ein Passwort hinterlegt werden (IMHO unveränderbar). Es wird dann der erste Ebene „SSISDB“ angelegt und darunter können/müssen für jede SSIS-Solution, die man hier ablegt gleich einen neuen Ordner anlegen. Daher bitte die Ordner die Ordnernamen sprechend festlegen (wieder IMHO kaum unveränderbar).

Hier meine Schritte:

SQL: Agent Job anlegen

Das Anlegen von Agent Jobs sind eigentlich recht einfach. Aber gilt nicht für den allerersten Job;-). Aber es sind mehrere Schritte:

  1. Meist erst das Bereitstellen einer SSIS-Solutions. Dazu mehr unter „SQL: Deploy SSIS-Solution“
  2. Einmalig meist das Anlegen eines Credentials und eines Proxy. Dazu mehr unter „SQL: Credentials und Proxy“
  3. Dann das eigentliche Anlegen des Agent Jobs (hier unten im Text)
  4. Und das Testen…Und wo man die Ursachen von Fehlern findet (hier ganz unten im Text)

Möglicherweise fehlen noch Rechte:

Lösung: Rolle ssis_admin in SSISDB und Rolle db_ssisoperator in msdb hinzufügen. Falls dann sind aber diese „User“ zwar in den beiden Datenbank (jeweils unter: Security / Users) sichtbar, aber so mit einem „X“ oder „irgendwie deaktiviert“… Dann müssen diese User auch in der Datenbank hinzugefügt werden – wie im T-SQL Code:
(Bitte die meinuser und meinlogin anpassen – und häufig sind beide gleichen Buchstabenfolge. Speziell bei AD-Usern und AB-Gruppen.)

USE [SSISDB]
GO
CREATE USER [ meinuser ] FOR LOGIN [ meinlogin ] WITH DEFAULT_SCHEMA=[dbo]
GO
EXEC sp_addrolemember @rolename = 'ssis_admin', @membername = 'meinuser';
GO

USE [msdb]
GO
CREATE USER [ meinuser ] FOR LOGIN [ meinlogin ] WITH DEFAULT_SCHEMA=[dbo]
GO
EXEC sp_addrolemember @rolename = 'db_ssisoperator', @membername = 'meinuser';
GO

SQL: Transaktionen Try/Catch?

Es gibt tatsächlich zwei völlig unterschiedliche Ansätze….

Ich nutze diese kürzere – vielleicht etwas älter – Variante:

 Begin Transaction
   Begin Try
   /*Insert/Update/…*/
   End Try
   Begin Catch
      IF @@TRANCOUNT > 0  
         ROLLBACK TRANSACTION;  
   End Catch
IF @@TRANCOUNT > 0  
    COMMIT TRANSACTION; 
/*Das Commit ist das "End Transaction"*/

Die zweite Variante benötigt das „XACT_STATE“ und liest sich noch komplizierter und werde ich nur nutzen, wenn ich mit dem o. g. T-SQL Code nicht weiter komme. Aber beschrieben sind beide Wege von Microsoft in dem u. g. Link

Link:

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/try-catch-transact-sql?view=sql-server-2017

SQL Server: Database Mail

Um das Einrichten von Database Mail-Account können diese Schritte manuell vornehmen werden:
Ähnliche Beschreibungen:
http://sqlcache.blogspot.com/2014/11/sql-server-database-mail.html
https://www.gevitas.de/wiki/index.php?title=E-Mails_mit_dem_Microsoft-SQL-Server

Beschreibung:

Vermutlich ist diese Bestätigung notwendig:

Und nun dem „Profil“ ein Namen geben und einen SMTP-Account hinterlegen:

Und nun sind die Zugriffsdaten des Exchange Server notwendig…
Wir empfehlen dafür einen eigenen Exchange Account und dies mit dem IT-Administratoren abzusprechen – also eigentlich wie ein normaler Anwender.
Z.B. könnte dieser heißen wie „SQLServer“. 
Möglicherweise ist aber bei Ihnen bei allen anderen SQL Servern auch schon Database Mail eingerichtet und der gleiche Account benutzt ist. Dazu meist nur benutzt bei kritischen Fehlern an alle Admins versendet werden. Wir werden jedoch vermutlich regelmäßig mehr versenden als nur bei Fehlern.
Noch einmal: Dieser „Account“ wird nur E-Mail versenden und nie E-Mail „lesen“ – Also falls E-Mails eingehen, werden diese ewig in dem Postfach liegen bleiben.

Port, SSL-Häkchen und E-Mail Server sind den Adminstratoren bekannt
(„Reply e-mail“ bitte genauso eintragen, wie die „E-mail address“)
Links Information über E-Mail Server:
https://support.office.com/de-de/article/server-einstellungen-die-sie-von-ihrem-e-mail-anbieter-benötigen-c82de912-adcc-4787-8283-45a1161f3cc3

Nach dem „OK“ sind wir wieder zurück:

Und müssen „Next“ klicken und in diesem Schritt muss das Profil aktiviert werden…

In diesem nächstem Schritt müssen wir vermutlich die maximale Größe von E-Mails anpassen. Eine „0“ mehr, also 10 MB erlauben:

Dann wird das lediglich noch einmal zusammengefasst und man muss mit „Finish“beenden. Danach sollten alle fünf Aktionen mit „Success“ beendet sein.

Und der Versand von E-Mails kann jetzt getestet werden:

Falls die Test-Email nicht am Ziel angekommen ist, finden Sie den dort wo die „Send Test E-Mail…“ Popup war, auch das „View Database Mail Log“…

Typische Fehlerldung: „The SMTP Server Requires a Secure Connection or the Client was not Authenticated“
https://blog.sqlauthority.com/2018/06/30/sql-server-database-mail-error-the-smtp-server-requires-a-secure-connection-or-the-client-was-not-authenticated-the-server-response-sas-5-5-1/

Links:
Leider hilft die spezielle SQL Server 2017 – Site gar nicht:
https://docs.microsoft.com/de-de/sql/relational-databases/database-mail/configure-database-mail?view=sql-server-2017

Links:
https://docs.microsoft.com/de-de/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql?view=sql-server-2017

 

Fehlermeldungen:

Msg 22050, Level 16, State 1, Line 3
Failed to initialize sqlcmd library with error number -2147467259.

Hinweis: Die gleiche Fehlermeldung bekommt man auch, wenn das „QuerySQL“ nicht mit einer vollständigen „Select * FROM Datenbank.Schema.Tabelle“ Formalimus arbeitet. Diese Stored Procedure ruft die „QuerySQL“ in einer neuer Query Umgebung (IMHO: in Master)… Und die Fehlermeldung halte ich als irreführend!