|
3 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 39
|
|
лаг Paradox 7...09.01.2012, 14:15. Показов 3082. Ответов 15
Метки нет (Все метки)
Такой вопрос, не могу понять в чем лаг: использую Paradox 7, создаю таблицу, заношу данные в таблицу как пользователь, используя экзешник. Все вроде бы нормально, но бывает так, что данные бац и после следующего открытия проги с БД часть внесенных перед этим данных исчезает..О_о
в чем проблема может быть?????????????
0
|
|
| 09.01.2012, 14:15 | |
|
Ответы с готовыми решениями:
15
update лаг paradox Paradox 7 |
|
86 / 86 / 24
Регистрация: 27.02.2010
Сообщений: 397
|
|
| 09.01.2012, 16:56 | |
|
Вы напишите какой "экзешник".
Может в нем вся пролема, а не в paradox??
0
|
|
|
3 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 39
|
||||||
| 10.01.2012, 00:26 [ТС] | ||||||
|
есть форма, на ней: Table1,Datasource1, DBGrid1,DBNavigaror...
...
все стандартно...как по книге...не раз делалось...но лаг какой-то не пойму. Запускаю эту форму("экзешник")...вношу данные в таблицу...сохраняю штук 10...потом закрываю...и иногда данные просто не сохраняются!! ну??
0
|
||||||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 10.01.2012, 14:14 | |
|
1. Работайте с парадоксом через TDataBase, открывая его в начале и закрывая в конце ЯВНО ! Для создания нужного алиаса используйте методы TSession
2. Книгу в печку !
1
|
|
|
3 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 39
|
|
| 10.01.2012, 16:49 [ТС] | |
|
можно в двух словах о TDataBase и его исп-е??(в чем преимущества) впервые слышу...опыта мало(
Добавлено через 10 минут и еще такой момент, прочитав про него, вопрос возник: псевдонимы через TDataBase создаются как бы динамические???..т.е внутри программы? если я перетащу программу на другой комп работать будет?
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|||||||||||
| 10.01.2012, 18:39 | |||||||||||
- На ПК предустановлен "правильный" BDE; - Ваша программа использует "нужный" алиас, либо сама создавая его (то ли постоянно, то ли на время работы, "прибивая" перед завершением), либо который был предварительно создан программистом, устанавливавшим программу на ПК (например через BDE Admin). Добавлено через 8 минут Преимущество использования TDataBase в централизации интерфейса с базой данных. В частности: - Если в проекте много объектов связи с БД (TTable, TQuery...), то в случае изменения "адреса" БД (например при установке на ПК пользователя программы вместе с папкой БД) НЕ придется менять путь к базе во ВСЕХ этих объектах - достаточно изменить только в TDataBase. А при наличии ссылки на алиас и этого делать не нужно, т.к. путь к базе задается в алиасе, а править алиас можно не влазия в программу. - Можно использовать многие полезные функции, например, получить список таблиц в БД (вместо того, что сканировать каталог перебирая файлы "ручками") - Прозрачность логики интерфейса, привыкание к современной клиент-серверной технологии, строящейся на идеологии "соединения" - Читабельность кода, особенно в случае использования нескольких баз данных одновременно
1
|
|||||||||||
|
3 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 39
|
||
| 10.01.2012, 21:40 [ТС] | ||
|
Надо попробовать поработать с TDataBase, конечно, т.к. лаги мне совсем не нужны! ![]() ![]() Спасибо
0
|
||
|
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
|
||
| 11.01.2012, 06:29 | ||
|
1
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||||||
| 11.01.2012, 12:33 | ||||||
1
|
||||||
|
3 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 39
|
|||||||||||||||||
| 11.01.2012, 15:58 [ТС] | |||||||||||||||||
|
ага...и ее, и препода вместе с ней, старье преподает студентам((
Добавлено через 8 минут
Добавлено через 7 минут На счет темы топика... о, а вот такую версию мне выдвинули: возможно, после работы программы не сохраняются изменения в базе Paradox и надо писать:
0
|
|||||||||||||||||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|||||||||||
| 12.01.2012, 11:52 | |||||||||||
1) Если Вы ориентируете приложение на ЗАРАНЕЕ созданный (админом при установке проги) алиас, то не надо его создавать, а просто используйте в св-ве TdataBase.AliasName как константу 2) Если Вы хотите сделать программу независимой от локальных DBE-настроек, то надо создать ВРЕМЕННЫЙ алиас, но при завершении программы (например в OnDestroy формы) убивать его (хотя, ЕМНИП он вроде автоматом убивается). В этом случае никакого SaveConfigFile не нужно. Да и вообще это опасно потому, что у пользователя, работающего с Вашей прогой, может не оказаться достаточнных прав и прога тупо будет глючить еще и при попытке сохранить алиас в коф-файле БДЕ. о, а вот такую версию мне выдвинули: возможно, после работы программы не сохраняются изменения в базе Paradox и надо писать: Не надо запоминать созданный на время работы алиас Добавлено через 17 минут
Ну и кроме того предваряющая работу татальная проверка базы просто приведет к тормозам и зависанию проги при старте. Эффект этот будет усугубляться при увеличении кол-ва как таблиц, так и данных в таблицах. Вдобавок такие проверки требуют еще и монопольного доступа к таблице, что опять же приведет к конфликтам при многопользовательской работе. Короче, Вы поняли что подводных камней масса, поэтому используйте стандартные средства, достаточно функциональные и надежные (если это слово вообще может быть применено в отношении БДЕ), тем более что их за глаза хватает при правильной постановке задачи и грамотном проектировании. В частности потеря данных у Вас случается потому, что Вы не выполняете корректно закрытие таблицы после завершения внесения в нее изменений. Потери информации, нарушения индексов, порушенные таблицы, "висячие" блокировки и т.д. - вот неполный перечень "радостей" парадокса. Конечно, при определенной технологии работы с базой и программой, хороших руководствах по копированию-восстановлению базы, грамотных и внимательных пользователях все эти прелести можно свести к минимуму, но избавиться от них полностью НЕВОЗМОЖНО ! Поэтому если это возможно - скорее забудьте про парадокс и БДЕ - это уже не вчерашний, это позавчерашний день !
1
|
|||||||||||
|
3 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 39
|
||
| 12.01.2012, 16:25 [ТС] | ||
|
Забыть до конца этого года про парадокс и БДЕ пока, к сожалению, не возможно( На счет корректного закрытия таблицы, что вы имели ввиду?? Я закрываю в главной форме все свои таблички Table.Close или Table.Active=false, так?? (сорри, если вопрос покажется глупым,только с БД и парадоксом начали работать с этого учеб. года, знаний, сами понимаете, не хватает)
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 12.01.2012, 18:48 | |
|
Если Вы закрываете редактировавшийся набор данных так, как пишете здесь (т.е Close или Active = false, что одно и то же) и при этом он (набор данных) был РЕДАКТИРУЕМЫМ (CanModify = true) и этот код у Вас ОТРАБАТЫВАЕТ при закрытии программы, то данные в таблицу попадут физически. (При условии конечно, что нет других ошибок, например по блокировкам или нарушении целостности).
А вот если код не отрабатывает (например, программа вывалилась по AV и нужный код просто не был обработан - в результате БДЕ не венесла нужных поправок в ФИЗИЧЕСКИЕ таблицы, то получите либо "где мои изменения" либо еще что похлеще ![]() Наиболее частая ошибка новичков, работающих по Фаронову-Архангельскому (т.е. в принципе неправльно, зато напето что мол пишем "базовые" приложения за полчаса чуть ли не одной мышой, покуривая и почесывая пониже живота) , - открытие таблиц в дизайне. При запуске возникает "эффект экселя" - т.е. форма показывает "живую" таблицу БД, которую можно редактировать вдоль и поперек. И ни один из перечисленных авторов не говорит, что в этом случае имеется уже МНОГОПОЛЬЗОВАТЕЛЬСКОЕ юзание таблиц, где один юзер - это наше приложение а рантайме, а второй - сама делфя. Отсюда и конфликты, и пропажи информации и глюки при попытках выполнить операции, требующие "монополии" (например, реструктуризация таблиц, за которую в ран тайме надо вообще отрывать горе-программистам пальцы и я.., ну Вы поняли короче). При этом "умельцы" обычно приводят "железные" агрументы типа "у меня все работало 20 лет" (ну да, при этом прога за эти двадцать лет запускалась 3 раза и все эти три раза вызывали его, гения кодинга, чтобы он "чинил базу") или еще лучше: "в книжке написано". При этом не учитывают, что в некоторых книжках написано не больше правды, чем на заборах. Поэтому НИКОГДА при отладке логики программы не делайте пуск на выполнение при открытых БДЕ-наборов данных. Открыли, настроили например сетки и сразу закрыли.
1
|
|
|
3 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 39
|
|||
| 12.01.2012, 20:08 [ТС] | |||
![]() Хорошо хоть не поздно) Мне конечно с парадокса никак не слезть, но исправляться в хоть в этом плане надо
0
|
|||
|
3 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 39
|
|
| 29.01.2012, 14:49 [ТС] | |
|
КАК правильно закрыть программу с БД ?????
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 30.01.2012, 12:18 | |
|
TDataBase.Close;
Еще совет. Предпочтительнее все компоненты работы с БД (TDataBase,TTable,TQuery etc) выносить в отдельный модуль (TdataModule), где также можно написать УНИФИЦИРОВАННЫЕ участки кода (например, процедуру поиска в произвольном датасете, сортировку и т.д.) Открытие (установление соединения) и закрытие выполнять не при создании/уничтожении модуля, а контекстными командами главной формы. Все действия с БД, включая открытие и закрытие как БД, так и таблиц (датасетов) кодировать НЕ непосредственно в обработчиках событий, а в отдельный методах датамодуля, оформляя по возможности независимым от конкретных объектов (ссылку на датасет, поле, и прочее можно вполне передавать черезь параметры процедур или функций) - таким образом Вы добьетесь существенного уменьшения ИЗБЫТОЧНОСТИ кода, упроситв отладку и сократив размер исходников. Обращаться к процедурам легко из любого места кода, в т.ч. и из событийных обработчиков
0
|
|
| 30.01.2012, 12:18 | |
|
Помогаю со студенческими работами здесь
16
Paradox 7 Не редактируется БД Paradox Delphi и Paradox Сортировка Paradox Delphi и Paradox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|