Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.037 c
3-1118322970
KorvinOE
2005-06-09 17:16
2005.07.18
Как в ClientDataSet использовать CommandText?


3-1118169990
Erich
2005-06-07 22:46
2005.07.18
Автоинкрементное поле


1-1119619477
dUM
2005-06-24 17:24
2005.07.18
что-то типа ShowModal, но иначе :)


1-1120032563
mefres
2005-06-29 12:09
2005.07.18
перевод числовых денег в строковые


8-1111400251
man1
2005-03-21 13:17
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский