Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
23.01.2007, 12:27
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
Добрый день. Не могу разобраться с инсертом массива в таблицу и его выборкой оттуда, подскажите, плиз как это сделать ? CREATE TABLE test ( name text, user_id integer[], ); код (perl): #!/usr/bin/perl -w use SQLayer; my $D = SQLayer -> new(database =>$connect{'database'},user=>$connect{'user'}, password=>$connect{'password'}); my @arr=('4','5','6','7','8'); $D->proc("INSERT INTO test VALUES ('main','{@arr}')"); ---- можно ли вставить в это поле массив (у меня не получилось =( ) и в случае использования SQLayer каким методом можно из это го поля (user_id) выбрать массив (my $new_arr=$D-> ??) заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2007, 13:51
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
помогите плиз... хотя бы что читать =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2007, 14:56
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
dio_blessДобрый день. Не могу разобраться с инсертом массива в таблицу и его выборкой оттуда, подскажите, плиз как это сделать ? CREATE TABLE test ( name text, user_id integer[], ); код (perl): #!/usr/bin/perl -w use SQLayer; my $D = SQLayer -> new(database =>$connect{'database'},user=>$connect{'user'}, password=>$connect{'password'}); my @arr=('4','5','6','7','8'); $D->proc("INSERT INTO test VALUES ('main','{@arr}')"); ---- можно ли вставить в это поле массив (у меня не получилось =( ) и в случае использования SQLayer каким методом можно из это го поля (user_id) выбрать массив (my $new_arr=$D-> ??) заранее спасибо. Не скажу я тебе ничего по перлу, но раз никто не отвечает.... Похоже вся фишка в том, что перл не может запихать массив в этот инсерт. Да я вообще плохо могу себе такое представить, как должен передаться массив в обычную текстовую строку. Поэтому я тебе рекомендую попробовать выполнить: $D->proc("SELECT '{@arr}'"); Что получается? Вообще, должно работать вот так: $D->proc("INSERT INTO test VALUES ('main',ARRAY[1, 2, 3])"); Или вот так. $D->proc("INSERT INTO test VALUES ('main',String_To_Array('1,2,3', ','))"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2007, 15:23
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
INSERT INTO test_arr VALUES ('main',ARRAY[1, 2, 3]) - да так, конечно, работает но для такого вида инсерта мне надо мой перловый массив раскладывать в строку, а привыборке из базы - опять сплитить полученную строку в массив... тогда я не понимаю смысла в постгресовском типе данных array - зачем он нужен, если работать как с массивом с ним нельзя(на выходе - всё равно строка...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2007, 15:31
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
или я чего то не понимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2007, 18:52
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
Люди! если я чего не так пишу - направтье, плиз на путь истинный, но очень надо разобраться.Помогите =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2007, 19:29
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
dio_blessЛюди! если я чего не так пишу - направтье, плиз на путь истинный, но очень надо разобраться.Помогите =) На сколько я знаю - то массивы постгреса это его внутрення штука и наружу не сильно выходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.01.2007, 07:16
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
Andrey Daeron dio_blessЛюди! если я чего не так пишу - направтье, плиз на путь истинный, но очень надо разобраться.Помогите =) На сколько я знаю - то массивы постгреса это его внутрення штука и наружу не сильно выходит. Ну, почему не сильно. На сях можно выдернуть, причем в виде массива в том числе. А вот Perl он не ожидает массива с SQL'ного сервака (потому что их в стандарте SQL нет). Собственно и запихать массив в строку запроса для него непросто. Не понимает, зачем. Вообще, у себя я массивы использую в основном только на бэкофисе, потому что фокс тоже воспринимает все как BLOB с текстовым содержимым. В крайнем случае выбираю '(' || Array_To_String(Any_Array, ', ') || ')' а потом уже этот результат использую в IN для сквозного запроса (на фронтэнде или бэкэнде без бани). Не больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.01.2007, 10:25
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
SQLayer вроде бы надстройка над DBI, поэтому там не должно быть специфичных для постреса фич. С постресовым массивом нельзя (пока?) работать как с массивом из перла. DBD-Pg-1.49/t/05arrays.tSKIP: { # XXX Until all the array stuff is working, skip all tests. # Should really be a TODO, but these tests will die. skip 'Array support not implemented', 15; # Insert into array my $values = [["a,b", 'c","d', "e'", '\\"'], ['f', 'g', 'h']]; ok($dbh->do(q{INSERT INTO dbd_pg_test (id, name, testarray) VALUES (?, ?, ?)}, {}, 1, 'array1', $values), 'insert statement with references'); Посмотрите также эту тему . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.02.2007, 02:21
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
не скажу что силёнв перле, скорее наобород, знаю что он есть, но на пхп есть такая ф-я, которая дублируется и в асп, в перле что-то тоже должно быть - serialize(); вот можно просто запихнть массив в строку а когда достаёшь из базы то unserialize(); поищи подобное н перле. К стати объекты и прочее она тоже запихает в строку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.02.2007, 09:38
|
|||
|---|---|---|---|
|
|||
Массивы в таблице |
|||
|
#18+
KisaNetikне скажу что силёнв перле, скорее наобород, знаю что он есть, но на пхп есть такая ф-я, которая дублируется и в асп, в перле что-то тоже должно быть - serialize(); вот можно просто запихнть массив в строку а когда достаёшь из базы то unserialize(); поищи подобное н перле. К стати объекты и прочее она тоже запихает в строкуДа, в перле для этого есть модуль Storable, как я писал в теме, на которую дал ссылку. Но автор, насколько я понял, хотел native implicite преобразование между постгресовым массивом и перловым массивом. А с использованием Storable мы получим преобразование: перловый массив <-Storable-> перловая строка <-> постгресовый varchar. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&tablet=1&tid=2005733]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 401ms |

| 0 / 0 |
