Вниз
Скачать: CL | DM;

Подскажите, почему не происходит очистка таблицы?   Найти похожие ветки 

← →
DimonS ©   (2005-06-08 09:22) [0]

Есть такой код для копирования БД:
procedure TFormZ.N11Click(Sender: TObject);
var
s:string;
begin
tbCopy.DatabaseName:="\\Ivc-3\zarplata\zarplata\11\BAZA\dataz";
tbCopy.TableName:=tbDat.fieldByName("Mes").AsString+tbDat.fieldByName("God").AsString+"_Z.db";

Table3.Open;

try
  tbCopy.Open;
except
     ShowMessage("ÁÄ íåäîñòóïíà!");
     exit;
end;

Table3.First;

Table3.MasterFields:="";
while not Table3.Eof do Table3.Delete;

tbCopy.First;
while not tbCopy.Eof do
begin
    Table3.Insert;
    for i:=1 to tbCopy.FieldCount-1 do
    begin
         Table3.Fields[i].Value:=tbCopy.Fields[i].Value;
    end;
    Table3.Post;
tbCopy.Next;
end;
Table3.MasterFields:="TabN";
end;

И вот при выполнении его в режиме отладки после команды
Table3.First;

Table3.MasterFields:="";
сразу же выполняется строка tbCopy.First; , а строка while not Table3.Eof do Table3.Delete; не выполняется, т. е. даже не заходит на нее и все данные с другой базы дописываются в эту.

Что это за глюк? Вроде раньше где-то встречался с этим, но не помню...


← →
dolmat   (2005-06-08 09:55) [1]

while not Table3.Eof do Table3.Delete;
замена Table3.emptitable;


← →
Bronco ©   (2005-06-08 10:10) [2]

Проверь чему равно Table3.Eof, возможно таблица пуста и оптимизатор не считает нужным выполнять цикл. Или попробуй отключить оптимизацию.


← →
Anatoly Podgoretsky ©   (2005-06-08 10:16) [3]

Последовательность не та
Table3.First;
Table3.MasterFields:="";

Предполагаю еще и ошибки в алгоритме


← →
DimonS ©   (2005-06-08 10:33) [4]

В том то и дело, что база не пустая. И притом, рядом же стоит код ТОЧНО ТАКОЙ ЖЕ, но для другой таблице, там все работает!!!

Вот он:
procedure TFormZ.N9Click(Sender: TObject);
begin
tbCopy.DatabaseName:="\\Ivc-3\zarplata\zarplata\11\BAZA\";
tbCopy.TableName:="fio.db";

fio.Open;

try
  tbCopy.Open;
except
     ShowMessage("ÁÄ íåäîñòóïíà!");
     exit;
end;

FIO.First;
while not FIO.Eof do FIO.Delete;

tbCopy.First;
while not tbCopy.Eof do
begin
    fio.Insert;
    for i:=0 to fio.FieldCount-1 do
    begin
         FIO.Fields[i].Value:=tbCopy.Fields[i].Value;
    end;
    fio.Post;
tbCopy.Next;
end;
end;

Если убрать строку Table3.MasterFields:="";, то происходит то же самое. Перепробовал уже все, что можно.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
14-1118909237
Gorlum
2005-06-16 12:07
2005.07.18
Помогите найти ответы


1-1120330054
n0p
2005-07-02 22:47
2005.07.18
Маленький баг...


1-1119530302
webpauk
2005-06-23 16:38
2005.07.18
Потеря цвета


14-1119606881
хм
2005-06-24 13:54
2005.07.18
486 корпус


3-1117991302
dim2002
2005-06-05 21:08
2005.07.18
Сортировка в ADO




   Наверх