![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка I/O error 102. Что за ошибка и как убрать? [D5, Win2k]
Guitar © (2004-12-24 21:09:00)Я использую компонент SaveDialog1 для сохранения набора данных из ADOQuery1. Когда выполняется SaveDialog1.Execute то появляется стандартный диалог с пользователем. И если нажать "Отмена" то появляется это ошика. Что это значит и как её обработать?
Guitar (2004-12-24 23:10:00) [1]Всё. Сделал. ))) Тема закрыта.
Guitar (2004-12-24 23:01:00) [2]Не, её то как раз я пытался обработать этим кодом, что выше. А после моего сообщения вылазит системная ошибка
Project1:I/O error 102
Zeqfreed (2004-12-24 22:56:00) [3]какая именно ошибка? EDatabaseError?
Zeqfreed (2004-12-24 22:55:00) [4]а может попробовать назначить файл после ADO...First?
Guitar (2004-12-24 22:55:00) [5]Эта ошибка появляется после моего сообщения "Ошибка".
try
ADOQuery1.First;
except
messagedlg('Îøèáêà', mtinformation, [mbok], 0);
CloseFile(f);
exit;
end;
Guitar (2004-12-24 22:53:00) [6]Сейчас ошибка стала появляться в результате другого события. Если в ADOQuery нет данных. А пользователь всё-равно пытается сохранить файл.
Может это о чём-то кому-то скажет...
Zeqfreed (2004-12-24 22:51:00) [7]блин, ваще все нафиг перепутал я там ))
спать видимо пора
Zeqfreed (2004-12-24 22:50:00) [8]хм, сорри, вроде энд там и был, запутался ) сорри
Zeqfreed (2004-12-24 22:49:00) [9]Много чего вообщето
procedure TForm1.Button6Click(Sender: TObject);
var
fname, Str : string;
f : TextFile;
i : Integer;
begin
fname := edit6.text;
SaveDialog1.Filename := fname;
if SaveDialog1.Execute then begin
AssignFile(f, SaveDialog1.FileName);
try
ADOQuery1.First;
except
messagedlg('Error?', mtinformation, [mbok], 0);
CloseFile(f);
Exit;
end; //Закончить обработку исключительной ситуации надо?
Rewrite(f);
while not ADOQuery1.EOF do begin
Str := '';
for i := 0 to ADOQuery1.FieldCount - 1 do begin
Str := Str + '|' + ADOQuery1.Fields[i].AsString;
WriteLn(f, Str);
ADOQuery1.Next;
end; //чтобы все 3 строки выполнялись в цикле
end;
CloseFile(f);
end else showmessage('Cancel');
end;
Ещё что-то вроде менял, не помню
Ты попробовал? не работает?
Guitar (2004-12-24 22:43:00) [10]4 Zeqfreed
А что изменилось. И зачем?
Zeqfreed (2004-12-24 22:40:00) [11]Выходит из процедуры...
Guitar (2004-12-24 22:36:00) [12]Вот такой вопрос. Это я плохо поимаю. В коде
try
ADOQuery1.First;
except
messagedlg('Îøèáêà', mtinformation, [mbok], 0);
CloseFile(f);
exit;
end;
Когда срабатываетexit, то программы выходит из процедурыprocedure TForm1.Button6Click(Sender: TObject);или какой то её части?
Zeqfreed (2004-12-24 22:36:00) [13]Так должно работать:
procedure TForm1.Button6Click(Sender: TObject);
var
fname, Str : string;
f : TextFile;
i : Integer;
begin
fname := edit6.text;
SaveDialog1.Filename := fname;
if SaveDialog1.Execute then begin
AssignFile(f, SaveDialog1.FileName);
try
ADOQuery1.First;
except
messagedlg('Error?', mtinformation, [mbok], 0);
CloseFile(f);
Exit;
end;
Rewrite(f);
while not ADOQuery1.EOF do begin
Str := '';
for i := 0 to ADOQuery1.FieldCount - 1 do begin
Str := Str + '|' + ADOQuery1.Fields[i].AsString;
WriteLn(f, Str);
ADOQuery1.Next;
end;
end;
CloseFile(f);
end else showmessage('Cancel');
end;
olookin (2004-12-24 22:28:00) [14]Но хотя бы отладчик где отсанавливается?
Guitar (2004-12-24 22:27:00) [15]КОроче я сам запутался. )))))))))ХА ХА)))
Буду искать. )))
olookin (2004-12-24 22:25:00) [16]Э... А если exception не срабатывет, то все остальное работает отлично, да?
begin...end (2004-12-24 22:21:00) [17]> Guitar
Приношу извинения. В [12] и [16] я НЕ ПРАВ. Ошибка в чём-то другом.
Запутался в end'ах.
Ещё раз - извините.
Guitar (2004-12-24 22:14:00) [18]А нет не прошло, сейчас по другой причине вылазит.
4 begin...end © (24.12.04 22:11) [16]
Сейчас попробую исправить.
Guitar (2004-12-24 22:11:00) [19][11] aus (24.12.04 22:03)
Вы ПРАВЫ!!!
Тема закрыта.
begin...end (2004-12-24 22:11:00) [20]> [14] Guitar © (24.12.04 22:08)
Конечно, ничего не изменилось. А что должно было измениться-то? Ситуация, которую я описал в [12], осталась. Вы по-прежнему пытаетесь открыть для записи файл, с которым не связан путь с помощью AssignFile.