Народ!
Направьте в нужную сторону)))
Необходимо импортнуть данные в друпал из БД MSSQL
Даже не импортнуть а по умному смигрировать из MSSQL в MYSQL (конвертеры баз не предлагать).
Только решения на базе Друпала.
Каким образом?
Я бы тоже. ))) но надо просто законнектится к MSSQL вычитать данные из таблицы (процедура единоразовая и больше никогда не будет повторяться) и в цикле посохранять в ноды раскидав значения из полей соответствующим переменным. В общем вся проблема в том что я не могу соединиться с БД (все включено про php.ini) а вот кусок кода:
ну и далее по коду это все должно пойти в цикл с присваиванием, выдает вот такие ошибки соотв:
Warning: mssql_connect()[function.mssql-connect]: Unable to connect to server: 192.168.0.36:1433 in D:\htdocs\tag\cron11.php on line 2(1433 если указывать порт)
blya
Warning: mssql_select_db(): supplied argument is not a valid MS SQL-Link resource in D:\htdocs\tag\cron11.php on line 4
Warning: mssql_query(): supplied argument is not a valid MS SQL-Link resource in D:\htdocs\tag\cron11.php on line 5
Это пример из простого файла на пхп, из друпала те-же ошибки только вид сбоку )).
Это уже от злости. День секасам с этим занимаюсь и толку ноль!!!
Да еще забыл, если поставить в php.ini
mssql.secure_connection = on
то тоже не работает.
При подключении к mssql есть ОЧЕНЬ много граблей, настоятельно рекомендую пользоваться odbc - работает достаточно прозрачно, тем более что это операция единовременная.
При подключении к mssql есть ОЧЕНЬ много граблей, настоятельно рекомендую пользоваться odbc - работает достаточно прозрачно, тем более что это операция единовременная.
К сожалению задача поставлена иначе, но буду признателен за ссылки на материал, поскольку с проблемой столкнулся впервые и к сожалению больно ударилси головой )))
А что значит иначе ? Важен результат, или важен способ которым он будет достигнут ?
Иначе значит посредством подключения к MSSQL. Альтернативный способ это для меня лично, в обход задачи, может потом проканает.
Конвертаторов накачал как грязи, но блин руководство считает что это грубо и не по европейски ))) в общем (не наш метод). Уже пока писал поступило в аську предложение на перле скрипт писать, извращенцы. Я про Perl только знаю что есть такое слово ))) (к сожалению наверное)
Ну тогда сложно сказать. Навряд ли здесь есть извращенцы которые держат друпал на mssql.
Особенно улыбнуло "руководство считает что это грубо и не по европейски"
Когда им нужно повесить на стену картину они тоже считают что вбить гвоздь молотком "это грубо и не по европейски" ? Они наверное берут дрель, потом электический шуруповерт, и вешают картину на саморез. В результате получают тот же результат.
Какая разница какими способами достигнута цель, если результат один и тот же. Непонятна. Разве что в целях самообразования.
Ну тогда сложно сказать. Навряд ли здесь есть извращенцы которые держат друпал на mssql.
Особенно улыбнуло "руководство считает что это грубо и не по европейски"
Когда им нужно повесить на стену картину они тоже считают что вбить гвоздь молотком "это грубо и не по европейски" ? Они наверное берут дрель, потом электический шуруповерт, и вешают картину на саморез. В результате получают тот же результат.
Какая разница какими способами достигнута цель, если результат один и тот же. Непонятна. Разве что в целях самообразования.
Самообразование вещь полезная. Попробую объяснить суть проблемы.
Я в настоящий момент создаю сеть интернет магазинов на уберкарте 6 сайтов работающих на одной базе данных, для каждого магазина свои группы товаров и т.д. Все эти магазины в настоящее время работают независимо друг от друга и на разных движках (самописных). Из трех магазинов работающих с мускульной базой уже данные смгрированы, осталось еще три которые написаны на asp или как-то так не силен я в этом. И у этих магазов БД соответственно MSsql, данные на них обновляются до момента запуска переехавшего магазина уже на друпальном движке т.е. нужен механизм позволяющий сказать заказчику "стоп на сутки" и в течении этих суток смигрировать данные и запуститься.
Мы представляем себе этот механизм так, коннект к БД средствами пхп из друпала или стороннего скрипта вычитка данных из ряда таблиц и node_save в цикле.
В общем все уперлось в коннект
Если вариантов не предложится решать трабл все равно надо, и это решение я обязательно тут выложу так сказать для наследников и для тех кому это может пригодится.
Если процедура разовая, то что мешает сначала таблицы MSSQL сначала его же срествами в промежуточный формат. Например обычный файл с разделителями. А сложные поля выгрузить в отдельные файлы создав в таблицах ссылки. А потом грузи в MySQL без проблем. Изврат конечно, но разово - вполне. Если с первой частью у самого проблема - найми того кто сделает думаю что будет не дорого и не долго.
подключиться к mssql - решаемо несколькими способами (поиск database дравера или написание для drupal, способ подключения любой: php-mssql php-odbc php-pdo pear... нужен только для select)
написание выборки данных и проекция их на drupal-базу (например: feedapi + feedapi_mapper, node_save или свой модуль, которому ничего не мешает подключаться к старой базе и выбирать из неё дополнения)
подключиться к mssql - решаемо несколькими способами (поиск database дравера или написание для drupal, способ подключения любой: php-mssql php-odbc php-pdo pear... нужен только для select)
Сложность осталась тут, не могу понять почему нету коннекту :(, буду сегодня разбираться в очередной раз.
ябы перегнал все в SQL запросы или хml и потом бы их обработал в соответствии со структурой реализованной на Drupal
ХML Предпочтительней та как можно написать любой формат на XLS
а слить проще через свою прожку (я писал для общения с ACCESS)
Там была задача именно приконнектится и батч процессом смигрировать данные. Эта задача до сих пор не решена, для той процедуры мы просто из-за нехватки времени сконвертили базу в MySQL и перегнали данные скриптом.
Я, помню, сам мучался однажды с такой проблемой несколько дней подряд - не мог подконнектиться к MSsql через mssql_connect. Все форумы в интернете облазил, но никакой совет не помог. Но потом как-то заработало (.dll файл в php поменял, а может Всевышний помог:)) - но работало нестабильно, тьфу... Врагу не пожелаешь.
Комментарии
Я бы сначала перегнал таблицы в mysql (например через odbc), а потом уже писал бы конвертирование в нужные ноды-термины...
Я бы тоже. ))) но надо просто законнектится к MSSQL вычитать данные из таблицы (процедура единоразовая и больше никогда не будет повторяться) и в цикле посохранять в ноды раскидав значения из полей соответствующим переменным. В общем вся проблема в том что я не могу соединиться с БД (все включено про php.ini) а вот кусок кода:
if ($conn) {print 'yahoo';} else {print 'blya';}
mssql_select_db('test_semerc', $conn);
$results = mssql_query('SELECT * FROM dbo.Products;');
ну и далее по коду это все должно пойти в цикл с присваиванием, выдает вот такие ошибки соотв:
blya
Warning: mssql_select_db(): supplied argument is not a valid MS SQL-Link resource in D:\htdocs\tag\cron11.php on line 4
Warning: mssql_query(): supplied argument is not a valid MS SQL-Link resource in D:\htdocs\tag\cron11.php on line 5
Это пример из простого файла на пхп, из друпала те-же ошибки только вид сбоку )).
лол
Это уже от злости. День секасам с этим занимаюсь и толку ноль!!!
Да еще забыл, если поставить в php.ini
mssql.secure_connection = on
то тоже не работает.
При подключении к mssql есть ОЧЕНЬ много граблей, настоятельно рекомендую пользоваться odbc - работает достаточно прозрачно, тем более что это операция единовременная.
К сожалению задача поставлена иначе, но буду признателен за ссылки на материал, поскольку с проблемой столкнулся впервые и к сожалению больно ударилси головой )))
А что значит иначе ? Важен результат, или важен способ которым он будет достигнут ?
Иначе значит посредством подключения к MSSQL. Альтернативный способ это для меня лично, в обход задачи, может потом проканает.
Конвертаторов накачал как грязи, но блин руководство считает что это грубо и не по европейски ))) в общем (не наш метод). Уже пока писал поступило в аську предложение на перле скрипт писать, извращенцы. Я про Perl только знаю что есть такое слово ))) (к сожалению наверное)
У меня почему то предположения такие что библиотека все таки не работает.
Ну тогда сложно сказать. Навряд ли здесь есть извращенцы которые держат друпал на mssql.
Особенно улыбнуло "руководство считает что это грубо и не по европейски"
Когда им нужно повесить на стену картину они тоже считают что вбить гвоздь молотком "это грубо и не по европейски" ? Они наверное берут дрель, потом электический шуруповерт, и вешают картину на саморез. В результате получают тот же результат.
Какая разница какими способами достигнута цель, если результат один и тот же. Непонятна. Разве что в целях самообразования.
Самообразование вещь полезная. Попробую объяснить суть проблемы.
Я в настоящий момент создаю сеть интернет магазинов на уберкарте 6 сайтов работающих на одной базе данных, для каждого магазина свои группы товаров и т.д. Все эти магазины в настоящее время работают независимо друг от друга и на разных движках (самописных). Из трех магазинов работающих с мускульной базой уже данные смгрированы, осталось еще три которые написаны на asp или как-то так не силен я в этом. И у этих магазов БД соответственно MSsql, данные на них обновляются до момента запуска переехавшего магазина уже на друпальном движке т.е. нужен механизм позволяющий сказать заказчику "стоп на сутки" и в течении этих суток смигрировать данные и запуститься.
Мы представляем себе этот механизм так, коннект к БД средствами пхп из друпала или стороннего скрипта вычитка данных из ряда таблиц и node_save в цикле.
В общем все уперлось в коннект
Если вариантов не предложится решать трабл все равно надо, и это решение я обязательно тут выложу так сказать для наследников и для тех кому это может пригодится.
Если процедура разовая, то что мешает сначала таблицы MSSQL сначала его же срествами в промежуточный формат. Например обычный файл с разделителями. А сложные поля выгрузить в отдельные файлы создав в таблицах ссылки. А потом грузи в MySQL без проблем. Изврат конечно, но разово - вполне. Если с первой частью у самого проблема - найми того кто сделает думаю что будет не дорого и не долго.
Потерял нить дискуссии...
Задачи:
Какие сложности?
Сложность осталась тут, не могу понять почему нету коннекту :(, буду сегодня разбираться в очередной раз.
Там была задача именно приконнектится и батч процессом смигрировать данные. Эта задача до сих пор не решена, для той процедуры мы просто из-за нехватки времени сконвертили базу в MySQL и перегнали данные скриптом.
Попробовал у себя применить вышеприведенный скрипт
Подключение выполнилось успешно.
У MS Sql есть два вида авторизации: встроенная sql и Windows авторизация
я пробовал с логином из sql авторизации
Я, помню, сам мучался однажды с такой проблемой несколько дней подряд - не мог подконнектиться к MSsql через mssql_connect. Все форумы в интернете облазил, но никакой совет не помог. Но потом как-то заработало (.dll файл в php поменял, а может Всевышний помог:)) - но работало нестабильно, тьфу... Врагу не пожелаешь.