Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка I/O error 102. Что за ошибка и как убрать? [D5, Win2k]


Страницы:   1 2

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.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо