Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.09;
Скачать: CL | DM;

Вниз

Дамп MySql в в Access   Найти похожие ветки 

 
blackman ©   (2009-06-08 17:28) [0]

Никто не пробовал грузить? Может компоненты какие-то есть?
Без установки MySql на компе!


 
blackman ©   (2009-06-08 22:03) [1]

В инете поискал, но все за деньги...
Неужели эту муру придется самому писать? :(


 
Kerk ©   (2009-06-08 22:18) [2]

Да поставь ты себе mysql и odbc-провайдер под него. И то и то бесплатно. Думаю, уж проблем с перегоном данных из одного ADO-источника в другой не будет.


 
blackman ©   (2009-06-09 08:52) [3]

Kerk ©   (08.06.09 22:18) [2]
Не на моей машине. Там нельзя ставить.


 
Styx_   (2009-06-09 10:57) [4]

Дык дамп - это же просто SQL? Типа CREATE TABLE, INSERT INTO... Там могут попадаться специфические для мускуля конструкции, но их любой другой SQL-сервер должен за комментарии счесть.

> Не на моей машине. Там нельзя ставить.

То есть это требуется делать регулярно?


 
blackman ©   (2009-06-09 11:35) [5]

Styx_   (09.06.09 10:57) [4]
В том-то и дело, что регулярно. А специфические преобразовать в понятные Access. Иначе и вопроса бы не было :)


 
boriskb ©   (2009-06-09 11:48) [6]


> blackman ©

А примеры несоответсвия SQL- конструкций можно?

Их много?


 
Styx_   (2009-06-09 11:56) [7]


> А специфические преобразовать в понятные Access.

А там разве есть что-то, что может быть интересно не-мускулю?


 
test ©   (2009-06-09 11:59) [8]

boriskb ©   (09.06.09 11:48) [6]
insert into tab(f1,f2) values(1,2),(3,4),(5,6) и тд, дамп так и выгружается обычно.


 
palva ©   (2009-06-09 12:09) [9]


> А примеры несоответсвия SQL- конструкций можно?

Ну например, Insert в MySql поддерживает вставку сразу большого числа записей - полистайте дамп увидите - всего один оператор, а вставляет всю таблицу. А в Access (насколько я знаю) придется на каждую запись писать свой оператор - типа вместо очередной запятой сдублировать текст INSERT INTO ...(...) VALUES Вот это точно вам понадобится переделывать.

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


 
test ©   (2009-06-09 12:23) [10]

Где то слышал про использование MySQL в виде одной(? или пачки) dll, субд ставить не надо, но управление через сввою прогу.


 
blackman ©   (2009-06-09 12:41) [11]

Несоответствий море, включая BLOB поля как HEX в текстовом виде...
Я уж не говорю о CREATE TABLE где типы тоже не... И индексы тоже

test ©   (09.06.09 12:23) [10]
Где такое чудо?


 
Styx_   (2009-06-09 13:02) [12]


> Где такое чудо?

http://www.mysql.com/products/embedded/
А вообще и обычный MySQL Server ставить-то и не надо - я всегда на флешке с собой таскаю, с консоли запустил - и поехало.


 
blackman ©   (2009-06-09 13:33) [13]

Styx_   (09.06.09 13:02) [12]
Низя... :) Только из дампа.


 
Styx_   (2009-06-09 13:38) [14]

Дык импортировать дамп в MySQL Embedded, а оттуда уже добывать данные в таком виде, в каком больше нравится.


 
blackman ©   (2009-06-09 13:44) [15]

Styx_   (09.06.09 13:38) [14]
Не ДЫК! Нет у меня его. Почему и пишу БЕЗ УСТАНОВКИ...


 
Styx_   (2009-06-09 13:55) [16]


> Нет у меня его

Кого его-то? libmysqld.dll? Оно на то и embedded, что Вы подключаете библиотеку к своей программе и имеете в ней встроенный MySQL Server.


 
blackman ©   (2009-06-09 14:25) [17]

Styx_   (09.06.09 13:55) [16]
Дампа нет. Он у юзера.
И не имю я права запускать MySQL. Что тут непонятного? В самом начале сказал


 
Styx_   (2009-06-09 14:28) [18]

А свою программу запускать имеете право?


 
Медвежонок Пятачок ©   (2009-06-09 14:30) [19]

если регулярно, значит база одновляется.
значит где-то точно запущен сам майскл.


 
blackman ©   (2009-06-09 15:05) [20]

Медвежонок Пятачок ©   (09.06.09 14:30) [19]
Где-то это точно :)
Но вопрос совсем не в этом.
Надо сделать прогу импортирующую дамп в access и все.


 
test ©   (2009-06-09 15:45) [21]

blackman ©   (09.06.09 14:25) [17]
Так его запускать и не надо, к своей проге подключаешь dll и оперируешь своей прогой с дампом, пока в код не полезут или опознают dll, не поймут что там на самом деле sql бд создается перегоняется и уничтожается.


 
test ©   (2009-06-09 15:47) [22]

Либо парсер писать свой, в ельфях стандартные компонеты код SQL разбирают в них можно посмотреть.


 
blackman ©   (2009-06-09 16:21) [23]

test ©   (09.06.09 15:45) [21]
Нет. Слишком большой. Надо сразу в асс...
Какие стандартные для асс...?
Парсю уже :)  Куда деваться...


 
test ©   (2009-06-09 16:27) [24]

test ©   (09.06.09 15:47) [22]
ельфях == Дельфях

blackman ©   (09.06.09 16:21) [23]
В любом случае сразу всю память забьеш, посмотри ZeosDBO(sourceforge.net) может у них в парсере MySQL к нормальному виду приводят. Можно будет у них посмотреть принципы разбора MySQL дампа.


 
blackman ©   (2009-06-09 17:19) [25]

Ничего не забью. Не буду я в память грузить. Zeos тут не... Access не стандартен по SQL


 
test ©   (2009-06-09 17:34) [26]

blackman ©   (09.06.09 17:19) [25]
"Access программа для работы с базой Борей" (с)Экслер "Записки жены программиста"


 
blackman ©   (2009-06-09 17:46) [27]

Экслер ? Этот пишет много, но знает мало :)


 
Нат ©   (2009-06-09 21:32) [28]


>  А в Access (насколько я знаю) придется на каждую запись
> писать свой оператор

Чушь это. Просто нужен не "Insert ... Value..." а "Insert ... From ...".
Даже поддерживается [IN внешняяБазаДанных]
Достаточно открыть справку по Акцессу.


 
palva ©   (2009-06-09 21:56) [29]


> Чушь это

Возможно и чушь. Я и написал "насколько я знаю". Если бы вы написали как это сделать, я бы знал больше. А искать и открывать справку для решения чужих проблем я, естественно, не буду.


 
test ©   (2009-06-09 22:27) [30]

Нат ©   (09.06.09 21:32) [28]
Код в студию!


 
palva ©   (2009-06-09 22:32) [31]

Скорее всего имелось в виду это:
FROM (
SELECT val1, val2
UNION ALL
SELECT val3, val4
...
)


 
palva ©   (2009-06-09 22:53) [32]

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


 
Нат ©   (2009-06-10 03:17) [33]

palva
Вы честно указали "насколько знаю". Именно данное конкретное заблуждение соответственно и было классифицировано.
Что никоим образом не отождествляется с другими Вашими знаниями.
Наверняка и во многом, Ваши знания превосходят мои.
Опять же проблема не Ваша. Не в обиду.

В качестве примера привожу дельфийский код, перегоняющий данные из старой (до сих пор функционирующей базы в другую):
   strSQL:="INSERT INTO Customers ( CustID, Name, Respondent, "
         + " Departament, Addr, Country, District, City, Index, "
         + " PBox, Tel, Fax, Email, WEB, PersID) IN " + quotedStr(FullName)
         + " SELECT DISTINCTROW Код, Название, Фио, Отдел, "
         + " Адрес, Страна, Область, Город, Индекс, АЯ, Телефон, Факс, "
         + " Email, HTTP, Персонал "
         + " FROM НашиКлиенты";

При выполнении всех подстановок и строковых функций, получится текст запроса, который сработает и в ADOCommand, прямо в Акцессе и при запуске из VBA.


 
Нат ©   (2009-06-10 03:18) [34]

palva
Вы честно указали "насколько знаю". Именно данное конкретное заблуждение соответственно и было классифицировано.
Что никоим образом не отождествляется с другими Вашими знаниями.
Наверняка и во многом, Ваши знания превосходят мои.
Опять же проблема не Ваша. Не в обиду.

В качестве примера привожу дельфийский код, перегоняющий данные из старой (до сих пор функционирующей базы в другую):
   strSQL:="INSERT INTO Customers ( CustID, Name, Respondent, "
         + " Departament, Addr, Country, District, City, Index, "
         + " PBox, Tel, Fax, Email, WEB, PersID) IN " + quotedStr(FullName)
         + " SELECT DISTINCTROW Код, Название, Фио, Отдел, "
         + " Адрес, Страна, Область, Город, Индекс, АЯ, Телефон, Факс, "
         + " Email, HTTP, Персонал "
         + " FROM НашиКлиенты";

При выполнении всех подстановок и строковых функций, получится текст запроса, который сработает и в ADOCommand, и прямо в Акцессе, и при запуске из VBA (при наличии базы по пути FullName).


 
Нат ©   (2009-06-10 03:27) [35]

Прошу модератора удалить лишний пост, а также данный...


 
test ©   (2009-06-10 08:37) [36]

Нат ©   (10.06.09 03:18) [34]
Ты скажи как множественный insert выполнить в MsSQL, он выглядит так:
insert into tab(f1,f2)
values (1,2),(3,4),(5,6),(7,8),(9,0)

Проблема в том что MySQL выгружает таблицы именно в этом виде
а про
insert into tab(f1,f2)
select f1,f2 from tab1

все знают.


 
palva ©   (2009-06-10 08:50) [37]


> Нат ©   (10.06.09 03:17) [33]

Пока не вижу, как автор может использовать этот код для загрузки дампа, который состоит из операторов типа, указанного в [8]
Я видел использование кода подобного [31], но это было в MS SQL.
Про аксесс не знаю, и попробовать негде.


 
blackman ©   (2009-06-10 09:00) [38]

Нат ©   (09.06.09 21:32) [28]
>  А в Access (насколько я знаю) придется на каждую запись
> писать свой оператор
Чушь это. Просто нужен не "Insert ... Value..." а "Insert ... From ...".
Даже поддерживается [IN внешняяБазаДанных]
Достаточно открыть справку по Акцессу.


palva прав. insert с select здесь абсолютно ни при чем. Вы читали, но не поняли о чем речь.
В дампе myaql insert выглядит примерно так
INSERT INTO `catanal` VALUES (98,"текст1","",25),(84,"(текст2 в скобках)","ntrcn3",106),(.....);
Иначе говоря в одном insert несколько записей, что недопускает access.
Но и это не все! Разное определение типов полей и ключей.


 
blackman ©   (2009-06-10 11:36) [39]

Проверив тщательнее, уточню. Допускает, но необходимы дополнительные скобки, заключающие эти записи в себя.
Мозг сломаешь пока сделаешь соответствие... :(



Страницы: 1 вся ветка

Текущий архив: 2009.08.09;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.01 c
2-1245046647
Iriss
2009-06-15 10:17
2009.08.09
Перевод цветав строку


6-1205611995
art36
2008-03-15 23:13
2009.08.09
Обмен данными с тайм-сервером (сервером точного времени)


11-1205061882
DJ_UZer
2008-03-09 14:24
2009.08.09
В стиле ХР


15-1244493008
Юрий
2009-06-09 00:30
2009.08.09
С днем рождения ! 9 июня 2009 вторник


15-1244451289
Кто б сомневался
2009-06-08 12:54
2009.08.09
Посоветуйте компонент для локализации ПО, для D2009