Вниз
Скачать: 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.026 c
3-1118300253
Валерий
2005-06-09 10:57
2005.07.18
Ппосмотр BLOB полей


14-1119792617
syte_ser78
2005-06-26 17:30
2005.07.18
как зовется програмка?


14-1119344318
WondeRu
2005-06-21 12:58
2005.07.18
"Осторожно, СПИД!"


11-1102892454
черный дембель
2004-12-13 02:00
2005.07.18
Метод Post в http


1-1120226418
jagr
2005-07-01 18:00
2005.07.18
Умножение матрицы на вектор с небольшой загвоздкой




   Наверх