Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.18;
Скачать: 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 вся ветка

Текущий архив: 2005.07.18;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.044 c
14-1119721945
Anatoly Podgoretsky
2005-06-25 21:52
2005.07.18
File Size Analyzer


4-1116867164
MrAndrey_ka
2005-05-23 20:52
2005.07.18
Перехват WM_PAINT


1-1119615468
heckfy1
2005-06-24 16:17
2005.07.18
Настройка принтера


3-1116594233
highlander
2005-05-20 17:03
2005.07.18
Настройка BDE и проблема кириллицы


5-1090308239
Death_R
2004-07-20 11:23
2005.07.18
Создание компонента при изменении свойств другого компонента





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский