Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];
ВнизКак правильно работать с базами Access ? Найти похожие ветки
← →
Andrewtitoff © (2008-02-26 13:41) [0]Здравствуйте!, подскажите пожалуйста как лучше работать с Access-овскими базами, у меня база состоит из нескольких таблиц, основная(которая нужна мне) находится на сервере, мне нужно периодически сверять ее со списком(он у меня в текстовике) и править, я пользуюсь для доступа к базе ADO, все отлично работает, только как то медленно(у меня в базе около 7-ми тысяч записей, я читаю с текстового файла, там примерно 3700 записей и сверяю есть ли это в базе и если да то записываю туда некий параметр) так вот все это дело обрабатывается порядка 10-ти часов..., можно ли это как нибудь ускорить?, или я что то не так делаю?
Вот часть кода:
procedure TForm1.Button2Click(Sender: TObject);
var
f : textfile;
f2 : textfile;
s : string;
ch1 : boolean;
count : integer;
begin
......
count:=0;
AssignFile(f,"regnum.txt");
AssignFile(f2,"nonregnum.txt");
Reset(f);
Rewrite(f2);
while not Eof(f) do
begin
Form1.Update;
readln(f,s);
inc(count);
Form1.Caption:="["+Format("%.4d",[count])+"] = "+s;
ADOTable4.First;
ch1:=false;
while not ADOTable4.Eof do
begin
if ADOTable4.Fields[0].Value=s then
begin
ListBox1.Items.Add(s);
label3.Caption:="OK";
ADOTable4.edit;
ADOTable4.Fields[63].Value:=-1;
ADOTable4.Post;
ADOTable4.Last;
ch1:=true;
Break;
end;
ADOTable4.Next;
end;
if ch1=false then
begin
ListBox2.Items.Add(s);
label3.Caption:="False";
Writeln(f2,s);
end;
end;
closeFile(f);
closeFile(f2);
end;
← →
Сергей М. © (2008-02-26 13:46) [1]Индекс по полю таблицы, с которым ассоциирован объект Fields[0], имеется ?
← →
Сергей М. © (2008-02-26 13:52) [2]ADOTable4.Post;
ADOTable4.Last; <-- это зачем ?
← →
Andrewtitoff © (2008-02-26 13:53) [3]Честно говоря незнаю, а как это можно узнать?, я еще как то не очень разобрался как работать с базами... =(((
← →
Andrewtitoff © (2008-02-26 13:55) [4]> ADOTable4.Last; <-- это зачем ?
Ой, эт ненадо, это у меня сначала вместо Break стояло...
← →
Сергей М. © (2008-02-26 13:59) [5]
> Честно говоря незнаю
Значит нет.
Разработчик базы ты ?
← →
Andrewtitoff © (2008-02-26 14:06) [6]Нет, не я..., эта база задолго до меня тут, и человек который ее разрабатывал здесь больше не работает и контакта с ним нету... =(((
← →
Сергей М. © (2008-02-26 14:14) [7]Открой базу средствами MS Access.
Открой таблицу в режиме конструктора - там и найдешь инф-цию об индексах.
← →
Andrewtitoff © (2008-02-26 14:21) [8]Написанно:
Индексированное поле: нет
это оно?...
Там кстати в Fields[0] данные не повтаряются, там хранятся регистрационные номера лифтов, так что они повторятся немогут...
← →
Сергей М. © (2008-02-26 14:25) [9]
> это оно?
Оно самое.
> повторятся немогут
Не суть как важно.
Важней то, что поиск записи по индексированному полю с использованием SQL-запроса (см. TADOQuery) в твоем случае будет гораздо быстрей.
← →
Andrewtitoff © (2008-02-26 14:51) [10]Ясно, а его можно поменять на индексированное?, ничего от этого не изменится в работоспособности?(там много связанных таблиц)
← →
Сергей М. © (2008-02-26 15:03) [11]
> можно поменять на индексированное?
Можно.
Только не поменять, а просто создать уникальный индекс по этому полю.
Индекс никак не повлияет на работоспособность прочих объектов БД, но при этом позволит многократно ускорить позиционирование в наборах данных, формируемых запросами к этой таблице.
← →
Andrewtitoff © (2008-02-26 15:08) [12]А как это сделать?
В режиме конструктора Индексированное поле: нет поменять на Да?,
если так то что выбрать ("Допускаются совпадения"или"Совпадения не допускаются")?
← →
Andrewtitoff © (2008-02-26 15:12) [13]млин, "Для связанных таблиц невозможно изменение данного свойства"..., а как создать индекс по полю?
← →
Сергей М. © (2008-02-26 15:19) [14]
> поменять на Да?,
Да.
> что выбрать
Очевидно же - "Совпадения не допускаются"
> Для связанных таблиц невозможно изменение данного свойства
"Развяжи" соотв.таблицы, создай соотв.индексы, затем снова "свяжи".
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c