![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
CiH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.12.2008 Репутация: нет Всего: нет |
Дого пытался узнать, как считать данные из MS Access. На форумах отвечали, типа, Win32::ODBC, а там всё просто. Но это "всё просто" никто обяснить не хотел. С английски я не в ладах. На русском документации нет. А то, что выдаёт переводчик, разве только Задорнову читать со сцены. Нашёл наконец образец кода, подстроил под себя.
Скрин структуры таблицы в прикреплённом файле. Мне не нужно ничего туда добавлять, убирать. Просто нужно считать данные и всё. В базе, в таблице cdata есть куча записей, однако на выходе получаю пустой файл. Подскажите, пожалуйста, что тут неправильно. Только не забывайте, что новичок. Присоединённый файл ( Кол-во скачиваний: 11 ) ![]() |
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
CiH, скрипт вроде верный, хотя и написан новичком (ну и в таком стиле тоже, сейчас немного иначе), но повторюсь - рабочий.
|
|||
|
||||
CiH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.12.2008 Репутация: нет Всего: нет |
Ошибку нашёл.
![]() Иногда чтобы найти ошибку, достаточно рассказать о ней другому. ![]() |
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
вот такой код что выводит?
Добавлено @ 18:45 CiH, и в чем ошибка? Это сообщение отредактировал(а) nitr - 22.1.2009, 18:45 |
|||
|
||||
ginnie |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Извиняюсь за
![]() nitr, почему
а не
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
||||
|
|||||
CiH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.12.2008 Репутация: нет Всего: нет |
Ошибка до смешного проста. Невнимательность.
Строка 5 SELECT * FROM cdata А таблица называется Cdata (с заглавной буквы) Поменял, и заработало. Наверно это... Хотя.... тот код, который ты привёл, выводит $VAR24081 = { 'pport' => '', 'cref' => '-1', 'uport' => ' 1066', 'cport' => ' 50300', 'cdata' => '24179149', 'rpuls' => '0', 'sqno' => '24081', 'info' => '0', 'flags' => '16814624', 'ppuls' => '1', 'dlps' => '414656', 'duration' => '54', 'rdata' => '17091121111111', 'xdata' => '', 'type' => 'A', 'tdate' => '2008-12-15 10:54:26' }; На каждую запись. Значит он таки видит данные. И видит верно. Ниччччииииво не понимаю. Это сообщение отредактировал(а) CiH - 22.1.2009, 19:19 |
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
ginnie, привычка чтоб её... Кстати, ваша поправка в данном случае вернее - \%h.
CiH, может вы и в мой код автоматически вставили верное название таблицы? |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
CiH, т.к. данных у Вас много, разумно вывод в файл делать внутри цикла получения данных, чтобы не сохранять все данные в массиве.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
CiH |
|
||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.12.2008 Репутация: нет Всего: нет |
Нет, специально проверил. Может прихоти Win2k?
В принципе, фай - это для контроля. Мне нужен массив для дальнейшей обработки. А вот на счёт данных, даже и не знаю что делать. В месяц будет, наверное до 40 000 записей. Это за год пол-миллиона.... А я пока умею только в тексте хранить. Может, посоветуете что? Если я вам ещё не надоел. Только не забывайте, плиз, что я Новичок (именно с большой буквы). Это сообщение отредактировал(а) CiH - 23.1.2009, 12:19 |
||||
|
|||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
CiH, чтобы посоветовать что-то дельное, надо понять что Вам нужно. Опишите, что Вам нужно сделать, а мы подскажем, как и не нужно стеснятся, мы здесь любим всем помогать, особенно новичкам!
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
CiH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.12.2008 Репутация: нет Всего: нет |
Есть АТС. С него снимается биллинг. (кто куда когда звонил)
Написал небольшой скрипт, который считает стоимость звонков и т.д. Дальше всё записывается в текстовые файлы (общий + отдельно каждый номер) в формате Кто - Куда - стоимость - Когда. При необходимости вызываю подпрограмму, которая складывает стоимость звонков за кокой-либо период по каким-либо номерам. Сделано в виде менюшек под cmd (в tk мне лезть ещё рановато, учитывая полное отсутствие документации на русском, а с CGI позже покопаюсь). В принципе все более-менее сложные расчёты делаются на стадии считывания и добавления в "базу" ![]() И скорость приличная. Но. Файл растёт не по дням а по часам (в месяц по 5-6 Mb). И я опасаюсь, что через пол года скорость подсчёта будет существенно замедлена. С dbm попробовал - не подходит. Подсчёт должен проводиться как по номеру, так и по дате (в перспективе и по номеру назначения). Вот и думаю, что взять за основу? Кстати, один вопрос, сколько дескрипторов одновременно можно открыть в винде 2000? Это сообщение отредактировал(а) CiH - 23.1.2009, 13:12 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
CiH, скажите, почему имея БД не использовать ее для решения этой задачи? Зачем хранить данные в текстовых файлах?
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
CiH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.12.2008 Репутация: нет Всего: нет |
БД MS Access.
Скорость подсчёта за месяц. Access - 17 min. Perl - 19 sec. Представь годовой отчёт ![]() А считать приходится часто. Начальство лимиты выставило. Это сообщение отредактировал(а) CiH - 23.1.2009, 13:52 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Скорее всего, Вы неверно работаете с БД (возможно нет нужных индексов). Приведите запрос, который долго работает.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
CiH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.12.2008 Репутация: нет Всего: нет |
Код привести не могу, писал не я. Как я понял, долго сопоставляется исходящий звонок с кодом оператора и страны (их более 2000).
Это сообщение отредактировал(а) CiH - 23.1.2009, 15:04 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |