Главная страница
    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.054 c
1-1119848784
john_mag
2005-06-27 09:06
2005.07.18
StringGrid


3-1117714649
suharew
2005-06-02 16:17
2005.07.18
Возможна ли такая ситуация. Кэшируется База?


3-1118158793
Alex Romanskiy
2005-06-07 19:39
2005.07.18
Вставка в две таблицы с помощью IBDataSet.


9-1112696766
_sHaDe_
2005-04-05 14:26
2005.07.18
Вопрос по WaterPlane.


1-1118066353
Дмитрий_05
2005-06-06 17:59
2005.07.18
Событие на закрытие Popup





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский