Hallo zusammen,
ich stehe gerade vor folgender Herrausforderung.
In einem Warenwirtschaftsystem gibt es 3 Mandanten die alle auf die gleichen Artikeldaten zugreifen sollen. Um nicht bei jedem Mandaten
die Arikel zu pflegen, hab ich in PHP ein Script geschrieben welches die Daten aus dem "Mastermandanten" in die anderen Datenbänke synchronisiert.
Das klappt alles auch ganz toll bis auf die Bilddaten. Die Bilder sind binär in der Datenbank gespeichert. Der Feldtyp ist varbinary(MAX).
Der Code-Teil für die Bilder sieht dann so aus:
Das Feld blobkey ist die Veknüpfung zur Artikelnummer, das Feld Ordnung ist der Zähler wenn es mehr als ein Bild zum Artikel gibt. Das feld bild
sind die binären Bilddaten.
Mein Problem ist jetzt, das die Bilder in der Warenwirtschaft (in den aktualisierten Datenbänken) nach dem ausführen des Scriptes nicht angezeigt werden können weil
die Formate fehlerhaft sind. Irgendwie zersäge ich die Daten zwischen dem auslesen und dem reinschreiben.
Hat jemand eine Idee?
Gruss Nevada
ich stehe gerade vor folgender Herrausforderung.
In einem Warenwirtschaftsystem gibt es 3 Mandanten die alle auf die gleichen Artikeldaten zugreifen sollen. Um nicht bei jedem Mandaten
die Arikel zu pflegen, hab ich in PHP ein Script geschrieben welches die Daten aus dem "Mastermandanten" in die anderen Datenbänke synchronisiert.
Das klappt alles auch ganz toll bis auf die Bilddaten. Die Bilder sind binär in der Datenbank gespeichert. Der Feldtyp ist varbinary(MAX).
Der Code-Teil für die Bilder sieht dann so aus:
PHP Code:
$SQLsrv->targetDB = 'DATABASE0';
$blobkey = 'AR'.$artikelnrDB0;
$sqlBildDB0 = "select blobkey, ordnung, CAST('bild' AS VARBINARY(MAX)) as bild from dbo.bild where blobkey = '$blobkey'";
$BildinDB0 = $SQLsrv->fetch_all($sqlBildDB0);
$SQLsrv->targetDB = 'DATABASE2';
foreach($BildinDB0 as $valueBild)
{
$blobkeyinDB0 = $valueBild['blobkey'];
$bildordnung = $valueBild['ordnung'];
$bild = $valueBild['bild'];
$sqlBildDB2 = "select blobkey from dbo.bild where blobkey = '$blobkeyinDB0' and ordnung = '$bildordnung'";
$BildinDB2 = $SQLsrv->fetch_one($sqlBildDB2);
$bildkeyDB2 = $BildinDB1['blobkey'];
if(!empty($bildkeyDB2))
{
$sqlBild = "update dbo.bild set bild = '$bild' where blobkey = '$blobkeyinDB0' and ordnung = '$bildordnung'";
//echo $sqlBild.'<br>';
$resupdateBild = $SQLsrv->execute_sqlsrv($sqlBild);
}
else
{
echo $sqlBild = "insert into dbo.bild
(Blobkey, Kennung, Bild, Ordnung, Beschreibung, Zusatz, Datum, Dateiname, Kennzeichen1)
values
('$blobkeyinDB0', '', '$bild', '$bildordnung', '', '', '', '', '')
";
//echo $sqlBild.'<br>';
$resinsertBild = $SQLsrv->execute_sqlsrv($sqlBild);
}
}
sind die binären Bilddaten.
Mein Problem ist jetzt, das die Bilder in der Warenwirtschaft (in den aktualisierten Datenbänken) nach dem ausführen des Scriptes nicht angezeigt werden können weil
die Formate fehlerhaft sind. Irgendwie zersäge ich die Daten zwischen dem auslesen und dem reinschreiben.
Hat jemand eine Idee?
Gruss Nevada
Comment