|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
Помогите подружить этих товарищей: ASE12-15,Windows,Perl Пробовал установить DBD::Sybase, что то не вышло, насколько я понял этот модуль только под Linux. И можно вдобавок примеров использования парочку? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2015, 19:55 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
xukПомогите подружить этих товарищей: ASE12-15,Windows,Perl Пробовал установить DBD::Sybase, что то не вышло, насколько я понял этот модуль только под Linux. И можно вдобавок примеров использования парочку? на сколько я знаю, не только для линукс. что конкретно не получается? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2015, 01:26 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
ASE свои odbc-ные драйвера наверное поставил, так что можно задействовать этот интерфейс... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2015, 12:32 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
MasterZiv, не ставится модуль с помощью dmake C:/Strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-w64-mingw 32/bin/ld.exe: dbdimp.o: bad reloc address 0x4 in section `.data' C:/Strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-w64-mingw 32/bin/ld.exe: final link failed: Invalid operation collect2.exe: error: ld returned 1 exit status dmake.EXE: Error code 129, while making 'blib\arch\auto\DBD\Sybase\Sybase.xs.dll' ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 17:51 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
Sergey OrlovASE свои odbc-ные драйвера наверное поставил, так что можно задействовать этот интерфейс... был бы признателен за подробности ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 17:51 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
MasterZivxukПомогите подружить этих товарищей: ASE12-15,Windows,Perl Пробовал установить DBD::Sybase, что то не вышло, насколько я понял этот модуль только под Linux. И можно вдобавок примеров использования парочку? на сколько я знаю, не только для линукс. что конкретно не получается? пробовал поставить на разных машинах, под xp, под 8-кой, правда все под strawberry perl ошибка такая: C:/Strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-w64-mingw 32/bin/ld.exe: dbdimp.o: bad reloc address 0x4 in section `.data' C:/Strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-w64-mingw 32/bin/ld.exe: final link failed: Invalid operation collect2.exe: error: ld returned 1 exit status dmake.EXE: Error code 129, while making 'blib\arch\auto\DBD\Sybase\Sybase.xs.dll' ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 17:54 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
xuk, ActiveState Perl не пробовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 23:49 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
xukSergey OrlovASE свои odbc-ные драйвера наверное поставил, так что можно задействовать этот интерфейс... был бы признателен за подробности Согласно http://search.cpan.org/dist/DBD-Sybase/dbd-sybase.pod DBD::Sybase не использует ODBC. Так что сообщение было просто не в тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 23:54 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
xukMasterZiv, не ставится модуль с помощью dmake C:/Strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-w64-mingw 32/bin/ld.exe: dbdimp.o: bad reloc address 0x4 in section `.data' C:/Strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-w64-mingw 32/bin/ld.exe: final link failed: Invalid operation collect2.exe: error: ld returned 1 exit status dmake.EXE: Error code 129, while making 'blib\arch\auto\DBD\Sybase\Sybase.xs.dll' Что такое dmake -- я не знаю, кто такой strawberry perl -- тоже, но это явно ошибки С-шного сборщика. Возможно, твой Perl использует другие форматы объектных модулей, чем библиотека OpenClient, поставляемая под Windows (она собирается под VisualC). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2015, 23:58 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
xuk, http://strawberryperl.com/ Strawberry Perl is a perl environment for MS Windows containing all you need to run and develop perl applications. It is designed to be as close as possible to perl environment on UNIX systems. It includes perl binaries, compiler ( gcc ) + related tools, all the external libraries (crypto, math, graphics, xml ...), all the bundled database clients and all you expect from Strawberry Perl. Из этого видно, что Strawberry Perl использует GCC как компилятор, а его объектные модули не всегда совместимы с объектными модулями, собранными в MSVC. Так что просто попробуй ActiveStatePerl. У меня как-то давно всё это работало. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 00:04 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
MasterZivxukпропущено... был бы признателен за подробности Согласно http://search.cpan.org/dist/DBD-Sybase/dbd-sybase.pod DBD::Sybase не использует ODBC. Так что сообщение было просто не в тему. Так и не надо dbd::Sybase, тут просто dbi:odbc, винда все-таки. Выбор Strawberry Perl очевидно из-за 64-битной архитектуры, если это не критично. то лучше использовать ActivePerl, он хоть совместим со CPAN, и модули может ставить оттуда... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 00:20 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
ActiveState - нельзя использовать in corporate environment. Раньше было можно. Сейчас нельзя. По этой причине я перешел на strawberry... В обоих вариантах Перла можно использовать sybperl пакет. Версия 2.18 прекрасно собирается через gcc и прекрасно работает. Сложности: 1) OpenClient библиотека (которая собственно и есть интерфейс к ASA) идет с настройками для VS и Borland. Для того чтобы можно было использовать OC с gcc - нужно пойти в каталог %SYBASE%/%SYBASE_OCS%/include найти там cspublic.h (кажется), найти в нем секцию которая объявляет макрос для внешних функций DLL и добавить проверку на mingw в пару к VS и Borland. 2) Надо пойти в %SYBASE%/%SYBASE_OCS%/lib и скопировать все *.lib в *.a. 3) Если у вас OC 15 и dll зовутся libsybcs.dll и подобное, то надо пойти в несколько подкаталогов в %sybper%/*, Найти там соответсвующие Makefile.pl и поправить регулярку поиска библиотек. Так же надо поправить процедуру определения версии OC. 4) Очень не желательно использовать 64-х битную версию strawberry. Не помню сейчас почему конкретно, но подружить sybperl с ней я так и не смог. Зато на 32-х битный все встало с трех вышеупомянутых напильников. Сразу предупрежу, что у меня так и не получилось завести асинхронный режим в Strawberry. В ActiveState он работал замечательно, а под strawberry на проверке готов асинхронный запрос или нет - перл умирает без единого вяка (даже без GPF). Но пока оно мне было не сильно нужно, плюнул и не стал копать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 01:37 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
White OwlActiveState - нельзя использовать in corporate environment. Раньше было можно. Сейчас нельзя. По этой причине я перешел на strawberry... В обоих вариантах Перла можно использовать sybperl пакет. Версия 2.18 прекрасно собирается через gcc и прекрасно работает. Сложности: 1) OpenClient библиотека (которая собственно и есть интерфейс к ASA) идет с настройками для VS и Borland. Для того чтобы можно было использовать OC с gcc - нужно пойти в каталог %SYBASE%/%SYBASE_OCS%/include найти там cspublic.h (кажется), найти в нем секцию которая объявляет макрос для внешних функций DLL и добавить проверку на mingw в пару к VS и Borland. 2) Надо пойти в %SYBASE%/%SYBASE_OCS%/lib и скопировать все *.lib в *.a. 3) Если у вас OC 15 и dll зовутся libsybcs.dll и подобное, то надо пойти в несколько подкаталогов в %sybper%/*, Найти там соответсвующие Makefile.pl и поправить регулярку поиска библиотек. Так же надо поправить процедуру определения версии OC. 4) Очень не желательно использовать 64-х битную версию strawberry. Не помню сейчас почему конкретно, но подружить sybperl с ней я так и не смог. Зато на 32-х битный все встало с трех вышеупомянутых напильников. Сразу предупрежу, что у меня так и не получилось завести асинхронный режим в Strawberry. В ActiveState он работал замечательно, а под strawberry на проверке готов асинхронный запрос или нет - перл умирает без единого вяка (даже без GPF). Но пока оно мне было не сильно нужно, плюнул и не стал копать. Можно поподробнее про пункт 1 и 3, с Си совсем не дружу, а в %sybper%/Makefile.pl регулярку не нашел, которая ищет библиотеки. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2015, 15:35 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
xukМожно поподробнее про пункт 1 и 3, с Си совсем не дружу, а в %sybper%/Makefile.pl регулярку не нашел, которая ищет библиотеки.Тогда в морг. Проще и надежнее будет использовать DBD:ODBC. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2015, 18:30 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
Дайте пожалуйста пример скрипта с подключением через ODBC к удаленной базе, у меня это впервые. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2015, 16:34 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
Все прикрутил с помощью ODBC, все отлично было, пока не заметил такую штуку: вызывается встроенная процедура внутри которой динамический SQL, так вот ту часть процедуры которая в курсоре ОДБЦ обрабатывает корректно, а ту которая за пределами нет. если запустить процедуру с помощью ISQL то все отлично. пример: процедура начало-- динамический sql 1 <курсор динамический sql 2 конец курсора> процедура конец-- вот где динамический sql 1 @a = 'select @b = xxx from aaa' exec @a после его выполнения @b = null а isql выбирает туда значение корректно. выносил динамический sql 1 в отдельную процедуру, эффект тот же. Помогите кто знает? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2015, 13:09 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
метедом тыка выяснил, что внутри процедуры не отрабатывает присвоение переменных например: set @a = select aaa from xxx set @a = (select aaa from xxx) select @a = aaa from xxx @a в любом случае NULL, isql соответственно работает без ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2015, 15:20 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
xukВсе прикрутил с помощью ODBC, все отлично было, пока не заметил такую штуку: вызывается встроенная процедура внутри которой динамический SQL, так вот ту часть процедуры которая в курсоре ОДБЦ обрабатывает корректно, а ту которая за пределами нет. если запустить процедуру с помощью ISQL то все отлично.Чушь. ODBC не разбирается что находится внутри процедуры. На сервер уходит команда "запустить", а потом драйвер сидит и ждет ответа. Все. Если процедура работает в isql - она будет работать в ODBC. Если ты видишь волшебные чудеса - значит ты чего-то не видишь. xukвот где динамический sql 1 @a = 'select @b = xxx from aaa' exec @aЭто что за синтаксис такой? Из какого он диалекта SQL? Так делать нельзя. Нельзя от слова "совсем". Вообще, динамический sql это очень сложная и опасная штука. Реальной нужды в ней практически никогда не бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2015, 21:09 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
xukметедом тыка выяснил, что внутри процедуры не отрабатывает присвоение переменных например: set @a = select aaa from xxx set @a = (select aaa from xxx) select @a = aaa from xxx @a в любом случае NULL, isql соответственно работает без ошибок.Ты на какой СУБД живешь? Если ASE, то синтаксис должен быть select @a = aaa from xxx И работать будет только если select aaa from xxx возвращает одну строку. Если больше - ошибка, если ни одной - @a is null. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2015, 21:12 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
Живу на ASE, динамический SQL используется для вычисления названия таблиц, они разбиты по датам. Все же пока мой вывод подтверждается, все что создано динамически в процедуре, не внутри курсора, не выполняется. Вот еще пример что работает через isql, но не работает через perl+odbc create table #tmp2( sd char(10)) Select @dat_entry = ' insert into #tmp2 select convert(char(10),isnull(min(dat),'+char(39)+char(39)+'),112) from '+dbo.name(,@dat_beg)+' where dat != null and dat >= '+char(39)+convert(char(8),@dat_beg,112)+char(39)+' Exec(@dat_entry) select * from #tmp2 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 15:28 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
White Owl, диалект T-sql, без динамического sql как обойтись пока не представляю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 15:30 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
xukЖиву на ASE, динамический SQL используется для вычисления названия таблиц, они разбиты по датам.Это ты так партицирование делаешь? О Господи! Читать тут: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20020_1251/html/databases/X15880.htm Грубо говоря, сделай на все свои таблицы индекс по полю на основе которого ты делаешь разбиение (dat наверное). Склей все эти таблицы в один view. Делай выборки из view. Разнеси таблицы по разным devices (и желательно по разным физическим). Оптимизатор сам сообразит что таблицы которые вне диапазона сканировать не нужно и будет работать только с теми физическими таблицами с которыми надо. Все. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 17:25 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
White Owl, Ну это все хорошо, но вьюху нужно пересоздавать постоянно, т.к. таблицы заполняются и создаются новые онлайн, на оптимизатор надежды никакой, сколько раз он подводил не сосчитать. Но основной вопрос не как обойти динамическое создание скрипта, а почему оно не работает и как это починить если вообще возможно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 12:20 |
|
ASE12-15,Windows,Perl
|
|||
---|---|---|---|
#18+
xukWhite Owl, Ну это все хорошо, но вьюху нужно пересоздавать постоянно, т.к. таблицы заполняются и создаются новые онлайн,И? Это разве проблема? Создаешь новый сегмент, пересоздаешь view. все просто и легко. xukНо основной вопрос не как обойти динамическое создание скрипта, а почему оно не работает и как это починить если вообще возможно?Вынеси создание скрипта на клиента. Откажись от хранимых процедур (во всяком случае на этом участке). Формируешь все sql запросы на клиенте и посылаешь серверу простые запросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 17:09 |
|
|
start [/forum/topic.php?fid=55&fpage=6&tid=2009768]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 264ms |
total: | 410ms |
0 / 0 |