Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Comanche
1

Могут ли оставаться в MDB-базе "хвосты" после стирания и что с этим делать?!

19.12.2008, 12:25. Просмотров 705. Ответов 4
Метки нет (Все метки)


У меня в MDB-базе есть табличка Events - 'события'. Одно из её полей -
'Статус'. На сегодняшний день юзер может туда вколотить только одно из
трёх возможных значений: 'Открытое', 'Закрытое' или 'Отменилось'. Это
контролируется сейчас просто через ComboBox типа DropDownList на форме
ввода таблицы - там фиг выберешь что-нибудь, кроме того, что в списке.
Поэтому в самой MDB-базе я и не стал на вкладке 'Подстановка' задавать
Тип Элемента Управления как 'Список' - оставил 'Поле'; контроль ввода
и так приличный.

Пару недель назад никакого контроля ввода у меня ещё не было, и поле
'Статус' могло принимать любые значения (например, 'Будущее',
'Прошедшее' и т.п.). Но все такие старые записи с недопустимыми (на
сегодня) значениями поля 'Статус' я уже давным давно потёр в базе
ручками (в Аксессе).

И тут, блин, вызов adoEvents.Recordset!Статус выдаёт мне вдруг строчку
'Будущее' !!!!! Лезу в Аксесс, смотрю базу, - нету там такой записи. И
давно уже не может быть - говорю же, затёр я их! Впихиваю в код рядышком
всякие Debug.Print adoEvents.Recordset!EventID и т.д. - т.е. распечатку
других полей записи таблицы Events. Смотрю, чё оно мне напечатало. Да,
была пару недель назад такая запись - с таким EventID и прочими полями.

Она что: не стёрлась? Дал в Аксессе 'Сжатие и восстановление базы' -
по фигу. Ну могу понять, что стирание на самом деле не стирает, а просто
'помечает' (по старому DBF-формату ещё помню). Но неужто эти 'помеченные'
записи контрол ADODC (в моём примере имеет имя adoEvents) тоже будет
обрабатывать? Причём он их не выводит, в итоге, в связанный DataGrid,
и стёртых записей в гриде НЕТУ. Я и натолкнулся на эту беду случайно:
просто при заполнении ComboBox-а (в котором есть только три элемента -
см. выше) из базы попытка установить его св-во Text в строку 'Будущее'
дало, ессс-но, ошибку (на то он и DropDownList).
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2008, 12:25
Ответы с готовыми решениями:

"Ошибка файла, данные могут быть утеряны" Что делать?
Уважаемые программисты! Помогите, пожалуйста! Я не специалист по компьютерам, простой...

Что делать если пишет такое "Не удается преобразовать из "int" в "System.IntPtr"."
Всем привет, столкнулся с тем, что пишет (Не удается преобразовать из "int" в "System.IntPtr".)...

С++ консольное приложение win32, матерится на первое "pow" после "if", а на "system" говорит что неопределён.
#define _CRT_SECURE_NO_WARNINGS #include "stdafx.h" #include <math.h> #include <iostream>...

Что выведется на экран после выполнения следующего утверждения: Console.WriteLine("Sharp is neat".Replace("is", "AAA")
A) SharpAAAneat B) SharpAAA neat C) Sharp AAA neat D) Sharp AAAneat

4
0 / 0 / 0
Регистрация: 08.10.2008
Сообщений: 31
21.12.2008, 16:38 2
есть программка ... для чистки мусора..может поможет...
http://www.softpc.ru/cgi-bin/download.cgi?id=1180
0
Comanche
21.12.2008, 22:53 3
Спасибо, конечно, но:
во-первых, эта ссылка не работает,
во-вторых, вы предлагаете вариант 'лечения', а мне нужен вариант
'профилактики', т.е. чтобы на момент выхода из СВОЕЙ программы УЖЕ
был нормальный вариант базы, без 'хвостов'.
0 / 0 / 0
Регистрация: 08.10.2008
Сообщений: 31
22.12.2008, 12:13 4
сорри ... ссылка может действительно не работает.. давно скачивал.. если дадите свой емэйл.. сброшу... она небольшая.

==чтобы на момент выхода из СВОЕЙ программы УЖЕ
был нормальный вариант базы, без 'хвостов'.==
это как??... т.е. пока пишешь... чего то делать, что бы база была нормальной?.... чесно говоря мне практически всегда помогало сжатие базы... в крайнем случае создание новой и импорт в неё всего из старой. а этот модуль... вычищает остальные 'огрехи' майкрософта... кстати написан в ВБА... так что... может поможет понять как делать 'профилактику'...=)
0
Comanche
22.12.2008, 12:54 5
'...написан в ВБА...' - вот это уже интересно. Если прилагаются исходники, конечно.

Мой и-мейл: pc-er@mail.ru

Спасибо.
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2008, 12:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Пишет: "Несовместимые типы операндов "char" и "const char*"". Что делать?
#include "stdafx.h" #include <ctime> #include <iostream> #include <conio.h> #include <locale.h>...

Что делать с ошибкой: C2440: инициализация: невозможно преобразовать "int **" в "int *"
Задание, сделать класс динамического массива шаблонным. Вот, вроде бы сделал, но наткнулся на...

При создании нового файла "*.mdb" возникает "ошибка связи с сервером OLE"
При создании нового файла "*.mdb" "ошибка связи с сервером OLE". Выскакивают окна Окно 1...

Составить програму, которая б после каждой буквы "е" в данном слове дописывала букву "о" и меняла словосочетание "да" на "нет"
Составить програму, которая б после каждой буквы "е" в данном слове дописывала букву "о" и меняла...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.