Конвертация Access в Mysql

zaartix

Новичок
Конвертация Access в Mysql

Нашел программу, она заявляет, что конвертирует базу без потерь (access2mysql). В акцесовской базе в одной из таблиц есть фотографии. Они жизненно важны, но, к сожалению, после конвертации в mysql поле, которое должно в себе содержать фото - его не содержит (поле типа blob, как положено). вместо фото везде 3 непонятных символа...
Кто-нибудь знает каким образом можно хотябы просто достать все фото из базы (access)? А лучше сразу загнать их в mysql...
 

zaartix

Новичок
возможно я задал вопрос не совсем там, где ему место... тогда прошу модераторов перенести его туда, где такого рода вещи обсуждаются...
 

Прохожий

Guest
или может есть модули для работы пхп с базой акцесс?
 

Profic

just Profic (PHP5 BetaTeam)
http://mdbtools.sf.net
это единственный более-менее достойный кандидат
 

StUV

Rotaredom
не пробовал поставить MyODBC и просто из акцесса экспортировать базу на сервер MySQL ?
 

StUV

Rotaredom
1. установи MyODBC
2. открываешь базу в акцессе
3. Файл\Экспорт...
4. В листе "Тип файла" выбираешь "ODBC Databases ()"
5. набираешь имя таблицы
6. далее указываешь источник данных для базы мускула (ты должен создать алиас для этой базы - можно из BDE Administrator'a или еще как-то...)
7. Жмешь ОК
8. ВСЕ :)
 

zaartix

Новичок
тут я каюсь, разобрался сам, рано спросил...
короче говоря имею в таблице майсикуэля код картинки, все хорошо, но вот незадачка, акцесс перед каждым кодом вставлял еще свои 150-180 символов (путь до картинки на лок. компутере и т.д.). В общем мне надо избавится от этой всей дряни, а вот как уже незнаю ...
 

zaartix

Новичок
могу привести пару примеров того, что акцесс поместил перед кодом пикчуры:
1.
"      яяяяПакет Package    Package М  Senator.gif C:\DOCUME~1\Root\C316~1\PLANE'~1\Senator.gif  - C:\DOCUME~1\Root\C316~1\PLANE'~1\Senator.gif џЛ GIF89ap
2.
"      яяяяПакет Package    Package эД  A27.gif C:\DOCUME~1\Root\C316~1\PLANE'~1\a27.gif  ) C:\DOCUME~1\Root\C316~1\PLANE'~1\a27.gif “Д GIF89a3

Вот, начиная с GIF89 идет код картинки.
 

StUV

Rotaredom
попробуй регами вырезать ненужное...
честно говоря - ничего другого в голову не приходит
 

zaartix

Новичок
ничего универсального нельзя придумать, т.к. перед гифами последние 2 хекс символа тоже всегда разные (уж не говоря обо всех остальных), а тип файлов может быть и гиф и джепег
 

StUV

Rotaredom
попробовал сам - да, действительно получается какая-то [...]
надо подумать ...
 

StUV

Rotaredom
интересная вещь - если в EMS MySQL Managere http://ems-hitech.com/mymanager/ выделенное изображение (blob-поле) просмотреть в blob-редакторе как image - то ничего не выводится, а если сохранить из hexdecimal-раздела в файл, то получается нормальное изображение.... (что-то в этом должно быть :)
 

zaartix

Новичок
я думаю, что можно только средсвами самого акцеса пытаться исправить эту неприятность
 

zaartix

Новичок
интересно, куда тогда он девает ту часть, которая нам все портит...
 

StUV

Rotaredom
я попробовал с jpeg-ом - если сравнить получаемые файлы в текстовом редакторе - то получается, что акцесс при конвертации иначе расставляет переносы строки и добавляет вместо старых переносов новые символы - поэтому изображение не просматривается...
 

zaartix

Новичок
тоесть переносы ставит по-своему вообще? всмысле из джепега уже нельзя никак будет сделать картинку? (я думаю, что джепегу не все-равно где переносы)

Я сравнивал гифы - там только вначало вставляется часть кода и все, если ее убрать, то фотка - оригинал и фотка-из-базы идентичны.
 

deek

Новичок
> достать все фото из базы (access)?
Код:
Public Sub ExportMyPictures()
  Dim stm As ADODB.Stream, rst As ADODB.Recordset, myFileName As String

  Set rst = CurrentProject.Connection.Execute("SELECT my_picture FROM my_table")
  Set stm = New ADODB.Stream

  While Not rst.EOF  
    myFileName = "......"
    With stm
      .Open
      .Type = adTypeBinary
      .Write rst.Fields("my_picture").Value
      .SaveToFile myFileName, adSaveCreateOverWrite
      .Close
    End With
    rst.MoveNext
  Wend

  Set rst = Nothing
  Set stm = Nothing

End Sub
> загнать их в mysql
думаю, как вставить содержимое файла в блоб, объяснять не надо.
 

zaartix

Новичок
вааааааааах, deek, если твой пример сработает - я сниму шляпу...
Я так понял это VBA? Очень хотелось бы их под именами вроде id сохранить, а не с оригинальными названиями... Можно почитать где-нибудь про то как работать vb с access? Ну или можно сразу подсказать как вместо имени файла указать id записи.
 
Сверху