AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Bilder von MSSQL in MySQL kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder von MSSQL in MySQL kopieren

Ein Thema von Hansi · begonnen am 30. Jan 2011 · letzter Beitrag vom 30. Jan 2011
Antwort Antwort
Seite 1 von 2  1 2      
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#1

Bilder von MSSQL in MySQL kopieren

  Alt 30. Jan 2011, 10:23
Datenbank: MSSQL MYSQL • Version: x • Zugriff über: ADO Zeos
Hallo,

in meinem Programm kopiere ich Jpeg-Bilder von einer MSSQL (Feldtyp Image) in eine MYSQL (Blob). Das funktioniert und die Bilder kommen auch korrekt an.
Umgekehrt wenn ich aus dieser MySQL das Bild wieder in eine MSSQL speichern will speichert er irgendwas ab und das Bild ist defekt (Kodierungsfehler meint Windows).

Muss ich da was bestimmte beachten?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Bilder von MSSQL in MySQL kopieren

  Alt 30. Jan 2011, 10:24
Wie Transferierst du?
Markus Kinzler
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#3

AW: Bilder von MSSQL in MySQL kopieren

  Alt 30. Jan 2011, 10:29
meinst du das?

Mit Zeos von MySQL in die MSSQL DB und mit ADO von MSSQL in die MYSQL.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Bilder von MSSQL in MySQL kopieren

  Alt 30. Jan 2011, 10:29
Und wie sieht der Code aus?
Markus Kinzler
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#5

AW: Bilder von MSSQL in MySQL kopieren

  Alt 30. Jan 2011, 10:37
ich hatte den Code in mehreren Schleifen drinnen und da hat er "Schrott" kopiert. Nachdem ich den Code rausgenommen habe und einzeln durchlaufen lassen habe, tut es... Man muss nicht alles verstehen.

Code:
With ZQ1 do begin
        Active := False;
        SQL.Clear;
        SQL.Text := ' Insert Into bilder (artikelbild, artikel_id, path, bild, size, bildnummer) Values '+
                    ' (:p1, :p2, :p3, :p4, :p5, :p6)';
        ParamCheck := True;
        ParamByName('p1').Value := AQ2.FieldByName('a_artikelbild').Value;;
        ParamByName('p2').Value := AQ2.FieldByName('a_artikel_id').Value;
        ParamByName('p3').Value := AQ2.FieldByName('a_path').Value;
        ParamByName('p4').Value := AQ2.FieldByName('a_bild').Value;
        ParamByName('p5').Value := AQ2.FieldByName('a_size').Value;
        ParamByName('p6').Value := AQ2.FieldByName('a_bildnummer').Value;
        ExecSQL;
      end;
Fehler lag also zwischen den Ohren. Danke für die Hilfe...
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Bilder von MSSQL in MySQL kopieren

  Alt 30. Jan 2011, 14:23
Da sind immer noch Fehler drin.
Die Zuweisung an SQL.Text beinhaltet automatisch ein SQL.Clear .
SQL.Clear ist hier also überflüssig.
Aber das eigentliche Problem ist, dass du dein Code-Fragment mehrfach aufrufst.
Immer wieder SQL.Text zuzuweisen ist aber unfein, denn dies löst intern in der Komponente einiges an Arbeit (Parsen der Parameter, Datenbankanfrage wegen den Datentypen) aus.
Die saubere Lösung wäre also den SQL.Text ausserhalb der Schleife zuzuweisen.
Und auch das Active := False ist eine überflüssige Anweisung.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Bilder von MSSQL in MySQL kopieren

  Alt 30. Jan 2011, 14:36
Die eigentliche Konvertierung findet irgendwo innerhalb der ZEOS statt
Markus Kinzler
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#8

AW: Bilder von MSSQL in MySQL kopieren

  Alt 30. Jan 2011, 14:52
@sx2000: Vielen Dank für den Hinweis mit False und clear; lasse ich ab sofort weg. Das mit der Schleife prüfe ich wie ich das umsetze.

leider habe ich inzwischen ein neues Problem. Und zwar funktioniert die Übertragung. bei größeren Bilder ich rede hier von 70kb jpg fehlen unten am Bild immer Zeilen. Bei kleineren Bildern mit 30kb tut es.
Bestimmt liegt es daran, dass nicht alle Daten übertragen werden. Nur wo liegt der Fehler? hat jemand eine Idee?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Bilder von MSSQL in MySQL kopieren

  Alt 30. Jan 2011, 16:21
Bei MySQL gibt es eine Server-Einstellung, die die maximale von erlaubten Blob-Streams bei der Übertragung regelt.
Pervers ist, dass die Übertragung scheinbar funktioniert, auf dem MySQL-Server die Daten aber nur bis zu diesem Wert gespeichert werden.

Den Parameter-Namen habe ich gerade nicht zur Hand ...

Obwohl ... hast du das Feld im MySQL tatsächlich als BLOB definiert?
Da gehen nur 64kB rein

Du solltest es mal mit einem MEDIUMBLOB versuchen
http://dev.mysql.com/doc/refman/5.1/...-overview.html
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (30. Jan 2011 um 16:32 Uhr)
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#10

AW: Bilder von MSSQL in MySQL kopieren

  Alt 30. Jan 2011, 20:05
Hallo,

Danke für den Hinweis mit dem Blob. Habe ich geändert.

leider kommen die Bilder immer noch defekt an.

Meine Bilder sind ja schon in beiden DB also mssql und mysql gespeichert. Muss ich da was mit Stream usw machen oder reicht da nicht ein "normales" update SQL und "hin und her kopieren"?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz