Форум сайта python.su
0
Здравствуйте уважаемые разработчики. Нигде не могу найти объяснения. Работаю с dbf файлом библиотекой dbf 0.96. Научился читать данные с него, искать нужные записи. Создавать новый dbf файл и записывать в него нужные данные. Теперь мне нужно отобразить данные dbf файла в виде таблицы. И из этой таблицы выбирать данные и записывать в новый файл. Вопрос такой. Как правильно организовать эту работу? Открыть dbf файл и из него выбирать нужные записи? Если так, то записей в файле порядка 25000. Работать с файлом будут несколько часов. И все это время файл будет открыт? Или используется другая (правильная) технология? Спасибо.
Офлайн
253
MaratDОбычные Файлы могут быть открыты для чтения, для записи в для записи в эксклюзивном режиме (когда другим не дают доступа на чтение) и т.п.
Или используется другая (правильная) технология?
Офлайн
0
doza_and
(Похоже это не ваш случай, закрывайте файл самостоятельно).
А когда его закрывать? Когда закончат работать, т. е. держать его открытым несколько часов? Или открывать по новому запросу и закрывать после прочтения данных? С файлом будет работать один человек.
Офлайн
0
Или правильнее будет перенести все данные dbf файла в QTable и работать с ней, а файл закрыть?
Офлайн
253
MaratDЕсли работает один человек то это не очень принципиально. Для небольшого объема данных я бы считал все и закрыл файл, потому что программа будет проще если не заниматься постоянным чтением и записью. Если оставите файл открытым (например как делает MS Office), то не забудьте залочить его чтобы случайно не изменить другими средствами. Но если в действе должны принимать участие несколько человек то возникает вопрос должны изменения одних сказываться на состоянии GUI у других? Если да, то насколько детально? Обновляться по окончании работы, обновляться по требованию пользователя, при каждой прокрутке таблицы, при каждом нажатии клавиши на клавиатуре у любого из пользователей? Если по требованию, то наверное можно файл открывать и закрывать, для более частых транзакций надо перегнать данные в нормальную СУБД (лучше вообще отказаться от палеонтологического dbf оставив при необходимости экспорт). Еще более частые транзакции делают обычно не средствами СУБД.
правильнее
Отредактировано doza_and (Фев. 2, 2016 08:14:55)
Офлайн
0
doza_and
Для небольшого объема данных я бы считал все и закрыл файл, потому что программа будет проще если не заниматься постоянным чтением и записью.
Спасибо. Количество записей около 25000. Ну пусть 30000 максимум. Меняется периодически.
Это считается небольшой объем или нет?
И еще вопрос. QTable позволяет сортировать и осуществлять поиск записей?
Офлайн
253
MaratDОткуда мне знать, может у вас записи по гигабайту каждая. А может вы это на контроллере с 10К памяти будете запускать.
Это считается небольшой объем или нет?
MaratDНе знаю, никогда Qt не пользовался, не возникало необходимости. Тут есть умельцы, ответят как подтянутся.
QTable позволяет сортировать и осуществлять поиск записей?
Офлайн
0
doza_and спасибо большое!
Сильно помог.
А куда еще можно считать dbf если не в QTable, чтобы нормально отобразить таблицу?
Офлайн
186
> QTable позволяет сортировать и осуществлять поиск записей?
Что такое QTable? QTableView или QTableWidget?
Офлайн
0
Я пока не определился QTableView или QTableWidget. Если есть опыт работы с чем-нибудь из этого поделитесь пожалуйста. С чем проще и где можно искать, сортировать считанные данные. Спасибо.
Офлайн