Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe ein Problem, bei dem ich ein wenig feststecke.

Ich muss alle Tabellen von Access in eine MySQL Datenbank importieren. Soweit kein Problem, doch in einer Tabelle befinden sich OLE-Objekte (ausschließlich Bilder) welche ich zwar auch importiert bekomme, wo von Access über die ODBC-Schnittstelle jedoch scheinbar noch etwas angehängt wird, so dass die Informationen, welche sich in MySQL befinden nicht wirklich nutzbar sind.

Der import von Access (über ODBC) -> MySQL (direkt) soll über PHP erfolgen

Hat jemand eine Idee, wie ich die OLE-Objekte unverändert zurückgegeben bekomme?

verstehe ich das richtig, das Access soll weg und dafür nimmst Du mySQL + PHP?

Du musst die OLE Objekte wieder in die binär Formate umwandeln (d.h. urspüngliche Dateien) und dann in Blobs (davon rate ich aber ab) in der mySQL Tabelle ablegen. Wandel die OLE Objekte in Dateiform zurück, und speichere innerhalb der mySQL Tabelle einen Pfad auf die Datei, die Du dann auf dem Server hinterlegt. PHP kannst Du dann anhand des Dateityps anweisen, einen entsprechenden Mimetyp beim Versand der Daten zu generieren

HTH Phil

verstehe ich das richtig, das Access soll weg und dafür nimmst Du mySQL + PHP?

Du musst die OLE Objekte wieder in die binär Formate umwandeln (d.h. urspüngliche Dateien) und dann in Blobs (davon rate ich aber ab) in der mySQL Tabelle ablegen. Wandel die OLE Objekte in Dateiform zurück, und speichere innerhalb der mySQL Tabelle einen Pfad auf die Datei, die Du dann auf dem Server hinterlegt. PHP kannst Du dann anhand des Dateityps anweisen, einen entsprechenden Mimetyp beim Versand der Daten zu generieren

HTH Phil

Ja du hast es richtig verstanden ;)

ABER ... das Problem ist ja dass ich die Bilder nicht mehr in eine Dateiform bekomme, da PHP mit dem, was über ODBC von Access geliefert nichts anfangen kann.

Wenn ich mir das ganze als String ansehe, schreibt er was von PhotoImpact.

Wenn ich das ganze als Datei speichere ist der selbe Mumpitz, und das Bild kann nicht geöffnet werden da es fehlerhaft ist.

Und nein (Falls die Frage kommen sollte) dir Bilder in Access sind nicht fehlerhaft, von dort aus ist das öffnen Problemlos möglich.

Das ist ja mein dilemma...

wo ich die Bildere speiche ist im endeffekt egal, da ich über ODBC eh nur mist bekomme.

Bin schon am Probieren, ob es hilft, wenn ich bestimmte Bytes einfach weglasse. Bisher aber leider auch ohne Ergebnis.

Ich kenne das Problem, da ich das selbst hatte. Du musst die Bilder eben wieder in JPEG / PDF / PNG o.ä. umwandeln. Eine andere Möglichkeit hast Du nicht. Ich würde innerhalb von Windows die Daten öffnen und in einem anderen Format speichern.

Mir ist nicht bekannt, dass es eine fertige PHP OLE Komponente gibt, außerdem wärst Du dann an PHP unter Windows gebunden. Und der Ansatz einfach ein paar Bytes wegzulassen wird nicht funktionieren, denn soweit ich weiß ist OLE ein Binärformat. Wenn Du dies machen willst, dann musst Du im Grunde einen OLE Export selbst in PHP schreiben und Dir muss das Format komplett bekannt sein (ich gehe nicht davon aus, dass man das irgendwo nachlesen kann)

Danke @HJST1979, genau das meinte ich: OLE in Access öffnen und neu speichern in JPEG o.ä.

Phil

Bearbeitet von flashpixx

sowas hab ich fast befürchtet, nachdem ich nirgens was gefunden habe...

Problem ist nur, dass es doch etliche Bilder sind... bei 100 währe das ja noch machbar, auch wenns derbe nervig währe... aber es sind doch um einiges mehr... sehr viele kleine.

Wenn ich nun jedes Bild dafür einzeln exportieren muss, dann erschieß ich mich, nachdem ich Microsoft in die Luft gesprengt habe :D

Vielen dank für die Antworten :)

Ich werde es nun wirklich so machen, dass ich mir aus Access heraus die Dateien erstellen lasse, und dem Dateinamen den Primärschlüssel gebe, damit ich diese auch wiederfinden kann.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.