Sie sind vermutlich noch nicht im Forum angemeldet - Klicken Sie hier um sich kostenlos anzumelden Impressum 
Sie können sich hier anmelden
Dieses Thema hat 7 Antworten
und wurde 276 mal aufgerufen
 RADIOandDJ allgemein
chris67 Offline

Besucher

Beiträge: 13

10.12.2006 13:44
UPDATE-Befehl im Sql-Tab möglich? antworten
Hallo Jürgen,

ist es möglich ein UPDATE-SQL aus dem SQL-Tab heraus auszuführen?

Ich würde dies gerne nutzen um z.B. alle Datensätze mit dem Interpret-Feldinhalt "Alannis Morrissette" nach "Alanis Morissette" zu ändern.

Oder werden die Sql-Statements generell (als "Paththrough-Abfragen) durchgereicht?
Dann würde sich die Frage ja erübrigen und es wären generell alle SQL-Befehle anwendbar.

Gruß

Chris

Jürgen Beisler Offline




Beiträge: 1.170

10.12.2006 22:07
UPDATE-Befehl im Sql-Tab möglich? antworten
Hallo Chris,

Zitat:

Ich würde dies gerne nutzen um z.B. alle Datensätze mit dem Interpret-Feldinhalt "Alannis Morrissette" nach "Alanis Morissette" zu ändern.



ich glaube ändern geht nicht, das ist doch nur eine SQL-Abfrage.

Probe es einfach mal.
Außerdem, selbst wenn es ginge, wären damit noch nicht die ID3-Tags korrigiert.

Gelöschtes Mitglied
Beiträge:

14.12.2006 18:35
UPDATE-Befehl im Sql-Tab möglich? antworten
Hallo Jürgen,

ich habe das mit dem UPDATE-SQL ausprobiert.

>>
UPDATE musik3
SET Interpret='Dido' WHERE Interpret='Dodi'
<<


Es wird ausgeführt, generiert jedoch eine Fehlermeldung: "Fehler beim Erstellen des Cursor-Handle".
Außerdem wird eine Fehlermeldung angezeigt beim erneuten Wechseln zum SQL-Tab von einem anderen Tab aus.
"quSQL:Das Feld 'Interpret' wurde nicht gefunden"

--------

Ich hatte halt die Idee zuerst die Einträge in der Datenbank per SQL "gerade zu ziehen" und anschließend die Tags daraus korrekt als Metadaten zurück in die MP3-Dateien zu schreiben.

Sollte doch über Extras/Einträge der Datenbank komplett in .... möglich sein, oder mache ich da einen Denkfehler?

Gruß

Chris

Jürgen Beisler Offline




Beiträge: 1.170

14.12.2006 19:04
UPDATE-Befehl im Sql-Tab möglich? antworten
hallo Chris,

gehe doch einfach auf Bearbeiten, dann nach Interpret sortieren.
Jetzt kannst Du doch mit Shift mehrere Einträge markieren und alle in einem Rutsch korrigieren

chris67 Offline

Besucher

Beiträge: 13

01.01.2007 20:15
UPDATE-Befehl im Sql-Tab möglich? antworten
Hallo Jürgen,

bei mir funktioniert das in der Interpretenansicht nicht.

Ich stelle aber auch noch einen Eintrag in der Bugliste ein.

Gruß

Chris

Gelöschtes Mitglied
Beiträge:

05.01.2007 17:31
UPDATE-Befehl im Sql-Tab möglich? antworten
Hallo Jürgen,

ich habe da wohl etwas falsch gelesen.

So wie Du beschreibst geht das natürlich.

Allerdings funktioniert es nicht gut wenn die zu editierenden Daten ein anderes (komplizierteres) gemeinsames Merkmal haben als nur der Inhalt des Feldes "Interpret".

Schöner wäre für mich wenn ich das mit einem UPDATE machen könnte.

Dazu habe ich folgende Infos gefunden:

Die Meldung "Fehler beim Erstellen des Cursor-Handle" kommt nach etwas googlen wohl durch die generelle Verwendung des Befehl TQuery.Open bei der Ausführung der SQL-Statements.
Dieser Befehl ist jedoch nur für SQL-Statements mit einem SELECT korrekt. (Diese liefern Datensätze zurück)
Bei "ändernden" Statements z.B. UPDATE, INSERT, ... muß anstelle von TQuery.Open der Befehl TQuery.ExecSQL verwendet werden.

Wie ich schon geschrieben habe funktioniert ein UPDATE ja, doch es kommt die o.g. Meldung.
Du könntest diese Fehlermeldung amS abfangen indem Du den Text in dem, das SQL-Statement enthaltenden, TMemofeld nach dem Wort
"SELECT" parst und anhand dem Vorhandensein entscheidest welchen Befehl Du benutzt.

s.auch z.B.:

http://www.delphicorner.f9.co.uk/articles/comps2.htm

>>
{=========================================================================
This is a very simple routine that will determine which route to take with
respect to executing the SQL query. It gives the component a bit of
intelligence, so the user need only use one call. Essentially, it looks
at the first line of the query; if it finds the word SELECT, then it
knows to call OpenProc, which will open the query and perform a batch move.
=========================================================================}
procedure TEnhQuery.Execute;
begin
if (SQL.Count > 0) then
if DoBatchMove then {Check to see if a batch move is desired}
if (Pos('SELECT', SQL) > 0) then
if (DestinationTable <> '') AND (DestDatabaseName <> '') then
try
DoEnhQueryOpen;
except
raise Exception.Create('Enhanced Query DoEnhQueryOpen procedure did not execute
properly. Aborting');
Abort;
end
else
MessageDlg('You must supply a Destination Table and DatabaseName', mtError, [mbOK], 0)
else
Open
else
try
ExecSQL;
except
raise Exception.Create('ExecSQL did not execute properly. Aborting');
Abort;
end
else
MessageDlg('You have not provided any SQL to execute' + #13 +
'so there is nothing to process. Load the' + #13 +
'SQL property with a query', mtError, [mbOk], 0);
end;
<<


Gruß und ein schönes Wochenende

Chris

Jürgen Beisler Offline




Beiträge: 1.170

06.01.2007 07:57
UPDATE-Befehl im Sql-Tab möglich? antworten
hallo Chris,

Zitat:

Allerdings funktioniert es nicht gut wenn die zu editierenden Daten ein anderes (komplizierteres) gemeinsames Merkmal haben als nur der Inhalt des Feldes "Interpret".



prinzipiell schon.
Gehe auf Suchen, erstelle Deine Abfrage.
Dann ins Kontextmenü: diese Suche als Tabelle exportieren.

Diese exportierte Tabelle nun öffnen, alle markieren und ändern.
Übrigens gibt es diesen Komfort nicht mal bei dem Programm "MP3Tag".

Zitat:

if DoBatchMove then {Check to see if a batch move is desired}



"Batchmove" habe ich früher verwendet, um z.B. die Tabelle auf der "Bearbeiten" Seite zu sortieren.

Irgendwann änderte ich meine Verzeichnisstruktur von den eigenen Dateien wieder zurück nach
C:\Dokumente und Einstellungen\Jürgen\Eigene Dateien\ (früher hatte ich die unter "c:\Daten" liegen).

da merkte auf einmal, dass durch das "ü" bei Jürgen solche Befehle nur eine Fehlermeldung erzeugen.
Die BDE kommt halt aus den USA.
Ab dem Moment sind solche Prozeduren für mich tabu.


Zitat:

Schöner wäre für mich wenn ich das mit einem UPDATE machen könnte.



weißt Du überhaupt, wie schnell man bei so einem Programm den Überblick verlieren kann?
Änderungen bleiben generell der "Bearbeiten" Seite vorbehalten. So eine Abfrage auf den anderen Seiten kann ja auch ganz schnell ungültig sein.
(allein schon nach Datenbankänderungen auf der Bearbeiten-Seite)

Und vergiss bitte nie, die Änderungen müssten dann auch noch in die Tags eingetragen werden.

 Sprung  
Xobor Ein Xobor Forum
Einfach ein eigenes Forum erstellen