|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.09.2008, 19:03 | #21 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
М-да-а...
Послушайте, а вам не кажется, что, например, этот кусок: Код:
Код:
Дальше. Ну перестаньте же вставлять лишние команды! Например: Код:
У вас такая путаница в назначении имен таблиц... Попробуйте поставить брейкпойнты на каждый EmptyTable и посмотрите, закрыта ли таблица, которую вы хотите обнулить. Цитата:
Application.ProcessMessages |
|
13.09.2008, 21:04 | #22 |
Форумчанин
Регистрация: 12.12.2007
Сообщений: 104
|
1 Код подправил... тут конечно я что-то недоглядел тупо конечно..
2 Использую полное название всегда так как мне так удобнее у меня никогда нет вопросо что и куда я присваиваю .. мне кажется это очень удобно. 3 Брекпоинты ставил .. при постановке на предыдущую строку ошибки нет .. при постановке на Form3.Table1.EmptyTable; велетает сразу... 4 постановка строки Application.ProcessMessages; ничего не дала ... ошибка повторяется... 5 Не совсем понял про названия таблиц - какая должна быть система... |
13.09.2008, 21:23 | #23 | ||
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Ну так вот же она - причина! Ставите точку останова на строку с EmptyTable, в перечень просматриваемых переменных (ALT-CTRL-W) добавляете значение переменной Table1.Active и смотрите... Наверняка кто-то не дает закрыть таблицу перед очисткой, т.е. к моменту выполнения Table1.EmptyTable значение Table1.Active равно TRUE. То есть вы обратились к конкретной таблице (файлу!!!) и из другой формы тоже... Таблица-файл заблокирован из другой формы! Мой вам совет. Пользуйтесь DataModule и тогда вам будет гораздо проще обращаться к таблицам и не будет возникать путаницы и конфликтов при обращении... Цитата:
Из другой юниты вы "по-простому" обратиться не сможете при всем желании... Обязательно придется указать принадлежность явно. Конечно, то, как вы делаете - это не ошибка, но... Вы хотите иметь как можно более скоростной процессор, а при этом сами замедляете свою работу внесением лишних, не несущих нагрузки, слов, фраз... Последний раз редактировалось mihali4; 13.09.2008 в 21:32. |
||
13.09.2008, 22:27 | #24 |
Форумчанин
Регистрация: 12.12.2007
Сообщений: 104
|
Решил переписать программу как Вы сказали .. те с использованием DataModule ... Создал и вставил туда 6 table и Datasource по числу мне нужных, чтобы они всегда были true и я их закрывал когда надо а потом открывал.. закоментировал все строки и пошел править код..
и на второй же строке strvl:=DataModule4.Table1.RecordCou nt; такая ошибка .. что я не так делаю? --------------------------- Project1 --------------------------- Access violation at address 004B62D5 in module 'Project1.exe'. Read of address 0000005C. --------------------------- ОК --------------------------- |
13.09.2008, 22:40 | #25 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Выложите-ка проект "прицепом" в архиве. |
|
13.09.2008, 22:47 | #26 |
Форумчанин
Регистрация: 12.12.2007
Сообщений: 104
|
Под true я иммел ввиду всегда активные .. чтоб не путатся .. а то у меня куча ошибок, мне надо все упростить.
Вот программа там две копии что у меня сейчас одна вся закоментированая (та что я сейчас пытаюсь оживить) вторая старый бекап определенной даты. |
13.09.2008, 23:07 | #27 |
Форумчанин
Регистрация: 12.12.2007
Сообщений: 104
|
я изменил названия части таблиц для большей прозрачности..
Вот они .. |
13.09.2008, 23:42 | #28 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Вот как нужно изменить файл проекта:
Код:
Ошибка у вас возникает из-за того, что в момент создания Form1 вы пытаетесь обратиться к еще не созданному DataModule4. Кстати, лучше все-таки не держать открытыми таблицы, а делать так: Код:
|
14.09.2008, 19:38 | #29 |
Форумчанин
Регистрация: 12.12.2007
Сообщений: 104
|
Спасибо за очень толковые советы ... переписал программу код уменьшился. EmptyTable все равно выдавал ошибку Table is busy пока я выполнял этот метод с Form2 (по нажатию кнопки с этой формы открываалсь Form3 и производилась очистка таблицы), как только я переместил очистку таблицы при загрузке формы 3 все стало работать нормально... теперь просто добавлю очистку при закрытии Form3 и будет все как я хотел.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу сделать цифровые часы | sid | Общие вопросы Delphi | 25 | 16.12.2009 05:06 |
Не могу сделать выборку с нужными полями, помогите чайнику! | kadet.rus | Microsoft Office Access | 2 | 26.04.2008 14:12 |
Excel max 256 строк VS user надо 300 строк | Exo | Microsoft Office Excel | 3 | 10.01.2008 17:14 |
Сортировка в таблице... | Gektor | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 23.09.2007 12:10 |
Как сделать, чтобы один элемент списка в ComboBox писался в несколько строк? | Andr | Общие вопросы Delphi | 5 | 15.08.2007 22:24 |