AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Bild selektieren und wo anders updaten?
Thema durchsuchen
Ansicht
Themen-Optionen

Bild selektieren und wo anders updaten?

Ein Thema von OrNEC · begonnen am 29. Mai 2014 · letzter Beitrag vom 30. Mai 2014
Antwort Antwort
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#1

Bild selektieren und wo anders updaten?

  Alt 29. Mai 2014, 15:03
Datenbank: SQLite • Version: 3 • Zugriff über: SQLiteSimpleDelphi-Wrappers von Tim Anderson
Hallo,

ich habe folgende Frage: ich erstelle in der DB ein Datensatz, hole dessen ID und update in diese Zeile ein Bild, dass zuvor mittels OpenDialog ausgewählt wurde. Nun möchte ich ein Datensatz duplizieren, dafür erstelle ich in der DB einen neuen Datensatz und falls das Bild bleiben soll, soll es einfach nur in die neue Zeile kopiert werden. Wie mache ich das nur? Also rein logisch ist es klar, ich selektiere das Bild mit der ZeileID=n und update es in die ZeileID=n+x. Wie schreibe ich nur den Code dazu? Praktisch wäre es die COPY Funktion, aber in der SQL Sprache kann ich das ja nur mittels Select und Insert Into realisieren.

Danke!


Delphi-Quellcode:
    if srcpic = 'pic-newthen
    begin
      fs := TFileStream.Create(dest, fmOpenRead);
      try
        varid := db.GetLastInsertRowID;
        sSQL2 := 'UPDATE media SET picture = ? WHERE id_media = ' + IntToStr(varid);
        db.UpdateBlob(sSQL2, fs);
      finally
        FreeAndNil(fs);
      end;
    end else if srcpic = 'pic-sollbleibenthen
             begin
             // hier also ungefähr so -> UPDATE media SET picture = ? WHERE (select picture where id_media=n) WHERE id_media=m
             end;

Geändert von OrNEC (29. Mai 2014 um 15:22 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Bild selektieren und wo anders updaten?

  Alt 29. Mai 2014, 15:27
insert into media ( <Felder ohne id>) select <Felder ohne id> from media where id = :id;
Markus Kinzler
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Bild selektieren und wo anders updaten?

  Alt 29. Mai 2014, 15:38
Kann man das nicht mit UPDATE lösen? INSERT INTO wird vorher für den Text verwendet, weil noch ein INSERT INTO schreibt das Bild in eine neue Zeile.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Bild selektieren und wo anders updaten?

  Alt 29. Mai 2014, 15:44
Das Statement kopiert den Datensatz komplett,
Vielleicht wäre es sinnvoll die Bilder in einer separaten Tabelle zu speichern und diese nur zu referenzieren
Markus Kinzler
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Bild selektieren und wo anders updaten?

  Alt 29. Mai 2014, 15:53
Das Statement kopiert den Datensatz komplett,
Vielleicht wäre es sinnvoll die Bilder in einer separaten Tabelle zu speichern und diese nur zu referenzieren
Ja ich verstehe, aber ich muss die Bilder immer updaten. Geht das etwa in meinem Fall nicht?

Die Anwendung und die DB werden klein sein, deswegen braucht man keine separate Tabelle. ))
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Bild selektieren und wo anders updaten?

  Alt 29. Mai 2014, 19:16
Ich glaube ich habe es, dank einem SQL-Buch von G. Kuhlmann, F. Müllmerstadt. Alles cool beschrieben.


sSQL2 := 'UPDATE media SET picture = (SELECT picture FROM media WHERE id_media = n) WHERE id_media = ' + m);
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz