Copilot intelligent? - Ein Witz!

Interessante, alltägliche Themen und Diskussionen.
Antworten
Kai Dahm
Einsteiger
Einsteiger
Beiträge: 10
Registriert: 19.10.2017, 23:40
Hat sich bedankt: 1 Mal
Gender:

Copilot intelligent? - Ein Witz!

Beitrag von Kai Dahm » 10.02.2025, 11:49

Ich hatte gestern abend die Idee zu einem PowerShell Script, welches mir die Möglichtkeit gibt das Ändern bestimmter Werte in einer MariaDB Datenbank Tabelle zu automatisieren.
Da ich zu Faul war im Netz zu suchen habe ich Copilot die folgende Frage gestellt:

"Besteht die Möglichkeit, mit einem PowerShell Script bestimmte Werte in einer MariaDB Datenbank Tabelle zu ändern?"

Die Antwort von Copilot war ein unbrauchbares PowerShell Script. Kein Ja oder Nein oder welche Voraussetzungen erfüllt sein müssen. Die einzige Information, die ich dem Script entnehmen konnte war, das ich eine MySql.Data.dll benötige.

Nächste Frage:

"Wo kann ich die benötigte MySql.Data.dll downloaden?"

Antwort von Copilot war ein Link zu nuget.org.

Wiederum keine richtige Antwort auf meine Frage nach der Download-Möglichkeit der MySql.Data.dll.
Auf nuget.org bekommt man nur Pakete, die erst noch kompiliert werden müssen. Habe ich die Möglichkeit zu kompilieren? Nein.

Weitere Frage an Copilot:

"Wo kann ich die neueste 64-bit Version einer fertig kompilierten MySql.Data.dll für Windows 11 downloaden?"

Antwort von Copilot war ein Link zu einer Download-Seite vonOracle.

Dort stellte ich dann fest, dass nur ein 32-bit Installations-Paket namens Connector/Net angeboten wurde, das die benötigte MySql.Data.dll enthalten sollte. Es werden also weitere nicht benötigte Sachen von Oracle installiert und der PC zugemüllt.

Frage an Copilot:

"Das von Oracle angebotene Paket ist eine 32-bit Version. Gibt es eine Seite im Internet, wo ich die kompilierte 64-bit Version der MySql.Data.dll herunterladen kann?"

Antwort von Copilot:

Wiederum der Link zu Oracle und die Empfehlung in einschlägigen Foren nach der MySql.Data.dll zu suchen.

Inzwischen weiß ich, dass es diese DLL nur als 32-bit Version gibt. Es gibt also KEINE 64-bit Version. Also habe ich Copilot gefragt:

"Gibt es überhaupt eine 64-bit Version der MySql.Data.dll?"

Antwort von Copilot:

Wieder der Link zu Oracle und die Empfehlung die nächsten WOCHEN in einschlägigen Foren zu suchen, da die 64-bit Version zur Zeit nur sehr schwer zu bekommen sei.

Also, wenn ich solche Hilfe bekomme, fällt mir nur ein uralter Spruch ein: "Dumm geboren und nichts dazu gelernt..."
Übrigen war das nicht mein erstes Abenteuer mit Copilot. Aber wie sagt man so schön - "Die Hoffnung stirbt zuletzt..."

P.S.
Ich benutze in VS-Code u.a. das Codeium-Plugin in der kostenfreien Basis-Version. Dieses Plugin hat mir direkt die gewünschten Informationen geliefert, und auch, nach Abklärung einiger Parameter, ein lauffähiges PowerShell Script erstellt.

Sorry, das musste ich jetzt mal los werden...

Tante Google

Copilot intelligent? - Ein Witz!

Beitrag von Tante Google » 10.02.2025, 11:49


Benutzeravatar
g-force
Elite
Elite
Beiträge: 2599
Registriert: 07.10.2016, 19:30
Hat sich bedankt: 395 Mal
Danke erhalten: 396 Mal
Gender:

Re: Copilot intelligent? - Ein Witz!

Beitrag von g-force » 10.02.2025, 13:26

ChatGPT:
"Besteht die Möglichkeit, mit einem PowerShell Script bestimmte Werte in einer MariaDB Datenbank Tabelle zu ändern?"

Ja, das ist möglich. PowerShell kann mit MariaDB (oder MySQL) interagieren, indem es das **MySQL Connector .NET**-Modul oder ODBC verwendet. Hier ist eine Möglichkeit, bestimmte Werte in einer MariaDB-Tabelle zu ändern:

---

### **1. Voraussetzungen**
- Installiere den **MySQL Connector .NET** von [hier](https://dev.mysql.com/downloads/connector/net/).
- Stelle sicher, dass der MariaDB-Server erreichbar ist und du die richtigen Zugangsdaten hast.

---

### **2. PowerShell-Skript zum Aktualisieren von Daten**
Das folgende Skript aktualisiert eine Spalte (`column_name`) in einer Tabelle (`table_name`) anhand einer Bedingung (`WHERE`-Klausel):

```powershell
# MariaDB Verbindungsinformationen
$Server = "localhost" # oder IP-Adresse des Servers
$Database = "deine_datenbank"
$User = "dein_benutzername"
$Password = "dein_passwort"

# Verbindung zur MariaDB herstellen
$ConnectionString = "Server=$Server;Database=$Database;Uid=$User;Pwd=$Password;SslMode=none;"
$Connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$Connection.ConnectionString = $ConnectionString
$Connection.Open()

# SQL UPDATE-Befehl definieren
$UpdateQuery = "UPDATE table_name SET column_name = 'neuer_wert' WHERE id = 1;"

# SQL-Befehl ausführen
$Command = $Connection.CreateCommand()
$Command.CommandText = $UpdateQuery
$Command.ExecuteNonQuery()

# Verbindung schließen
$Connection.Close()

Write-Output "Daten wurden erfolgreich aktualisiert."
```

---

### **3. Wichtige Anpassungen**
- Ersetze `deine_datenbank`, `dein_benutzername`, `dein_passwort` mit deinen echten Datenbank-Zugangsdaten.
- Passe `table_name`, `column_name` und `WHERE id = 1` an deine Bedürfnisse an.

Möchtest du eine dynamische Eingabe (z. B. von der Konsole oder aus einer Datei), kann man PowerShell-Parameter verwenden.

Soll ich das Skript für eine bestimmte Anwendung optimieren? 😊
Windows VISTA x64 - Integration ALLER Updates: viewtopic.php?t=29624
Windows 7 x86/x64 - Integration ALLER Updates: viewtopic.php?t=26485
Windows 8.1 x86/x64 - Integration ALLER Updates: viewtopic.php?t=28193
Windows XP x86/x64 ISO mit allen Updates: viewtopic.php?t=28348
Mein Home-Server: http://gofile.me/7psKS/PzsffQNWU

Kai Dahm
Einsteiger
Einsteiger
Beiträge: 10
Registriert: 19.10.2017, 23:40
Hat sich bedankt: 1 Mal
Gender:

Re: Copilot intelligent? - Ein Witz!

Beitrag von Kai Dahm » 10.02.2025, 17:18

Danke für Deine Antwort :daumen: , aber wie gesagt, habe ich das Script inzwischen mit dem Codeium-Plugin (kostenloses KI-Plugin) für Visual Studio Code erstellt.
Und es funktioniert einwandfrei.

Kai Dahm
Einsteiger
Einsteiger
Beiträge: 10
Registriert: 19.10.2017, 23:40
Hat sich bedankt: 1 Mal
Gender:

Re: Copilot intelligent? - Ein Witz!

Beitrag von Kai Dahm » 10.02.2025, 20:24

An die, die es interessiert:

Ich nutze RadioDJ, eine freie Radio Automations Software. Mit dem Programm kann man ein Internet-Radio unter anderem automatisch betreiben. Bei mir läuft das Ganze im lokalen Netz, bzw. in der Wohnung in Bereichen, die über meinen Router abgedeckt sind.
RadioDJ arbeitet mit einer eigenen MariaDB Datenbank. In dieser Datenbank existieren mehrer Tabellen, u.a eine Tabelle 'songs' in der RadioDJ Informationen wie z.B. Songname, Interpret, Albumname, usw. zu einzelnen Musik-Titeln beim Importieren speichert. Unter anderem gibt es auch eine Spalte 'image', in der früher der Pfad und Name eines Cover-Bildes gespeichert wurde. Leider hat der Entwickler von RadioDJ auf die Community gehört und das Programm so geändert, dass pro Song ein Bild gespeichert wird. Gleichzeitig wird das Bild als [Song-Name].jpg ein einem gesonderten Verzeichnis abgelegt. Bei meiner Musik-Sammlung mit knapp 90.000 Titeln im AAC-Format heißt das, dass knapp 90.000 Bilder (alle 500 x 500 Pixel mit 300 DPI) in einem Verzeichnis liegen würden. Jeder kann sich vorstellen, wie unübersichtlich und Speicherplatz-fressend das Ganze ist.
Daher meine Idee, die in der Datenbank gespeicherten Bild-Namen mit einem PowerShell Script anzupassen bzw. zu ändern.
Inzwischen habe ich das Script stark erweitert. sodass es nun folgendermaßen abläuft:

Nach dem Aufrufen des Scripts wird man nach den Login-Daten zur RadioDJ Datenbank und einem Root-Verzeichnis für die Cover-Bilder gefragt. Das Script öffnet eine Verbindung zur Datenbank mit den Login-Daten und sucht in der Tabelle songs Schritt für Schritt nach den Einträgen 01 in der Spalte Titel-Nr.
Wird die 01 gefunden, wird der zugehörige Album-Interpret, Albumname und das Erscheinungsjahr ausgelesen. Aus diesen Werten konstruiert das Script nun einen neuen Wert nach dem Schema

\[Anfangsbuchstabe des Album-Interpreten]\[Album-Interpret]\[Erscheinungsjahr] - [Albumname].jpg

Beispiel: \A\Atlantis\1975 - Get On Board.jpg

Jetzt wird geprüft, ob dieser konstruierte Wert schon in den zum Album gehörenden image-Feldern existiert. In die image-Felder, in denen kein oder ein anderer Wert gespeichert ist, wird der konstruierte Wert gespeichert.
Anschießend wird der zur Titel-Nr. gehörende Wert von path ausgelesen. In diesem Feld ist der Pfad und der Name
zur zugehörigen Musik-Datei (in meinem Fall eine AAC-Datei) gespeichert. Mit diesem Wert greift das Script nun auf die Datei zu, und extrahiert aus den ID3-Tags das Cover-Bild.
Jetzt wird das beim Starten des Scripts eingegebene Root-Verzeichnis mit dem zu 01 gehörigen Wert aus der Spalte image kombiniert, sodass ein kompletter Pfad mit Dateiname entsteht.
Für das vorherige Beispiel wäre das: [LW]:\[Root]\A\Atlantis\1975 - Get On Board.jpg
Es folgt eine Prüfung, ob das Verzeichnis schon existiert. Falls nicht, wird es erstellt. Danach wird das Cover-Bild in dem Verzeichnis gespeichert.
Anschließend sucht das Script nach dem nächsten 01 Wert in der Spalte Titel-Nr. und das ganze Spiel beginnt von Vorne.
Findet das Script keinen 01 Eintrag mehr, wird die Verbindung zur Datenbank geschlossen und das Script beendet.

Mit dem Script konnte ich die kapp 90.000 Titel-Bilder auf rund auf 7.500 Cover-Bilder reduzieren, und diese sind auch noch in Unterverzeichnisse sortiert

Antworten