powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ошибка записи в базу I/O error 32
25 сообщений из 26, страница 1 из 2
ошибка записи в базу I/O error 32
    #39272635
petrovitch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
подскажите, что может значить такая ошибка "I/O error 32" при записи в базу?
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272638
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovitch,

The process cannot access the file because it is being used by another process.
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272640
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И причём тут ошибки рантайма Delphi ?
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272645
petrovitch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

Наверное потому, что программа написанная на delphi работает с базой, с этой же базой работают еще несколько похожих программ и сайт.
Эта система работает около 5 лет, а проблема возникла сейчас, сегодня.
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272646
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovitchа проблема возникла сейчас, сегодня.
А с чего ты взял, что эта проблема вообще как-то связана с базой? Процитированная ошибка,
как уже сказали, не порождается Firebird.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272649
petrovitch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Вот такой код

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
try
        with query do
        begin
          sql.Clear;
          sql.Add('INSERT INTO Data' +
              '(test )' + ' values ' + '(:test)');


          AddToLog('Дата %d', [data^.UnixTime]);

          tdt := (data^.UnixTime / 86400) + 25569;

          ParamByName('test').AsDateTime := Now;
          ExecQuery;
        end;
      end; 

    end;

  except
    on E: Exception do
      AddToLog('%d: Ошибка сохранения данных %s', [data^.DeviceID, E.Message]);
  end;



возвращает Ошибка сохранения данных I/O error 32
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272650
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и почему это firebird, а не какой-нибудь Advantage/NexuDB//SQLite/BDE/etc ?
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272652
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в общем - брать SysInternals/Microsoft Process Monitor и смотреть на каком именно файлде эта ошибка вылазит.

Потом брать Process Explorer и смотреть кто ещё этот файл держит
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272656
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovitch
Код: pascal
1.
          AddToLog('Дата %d', [data^.UnixTime]);


возвращает Ошибка сохранения данных I/O error 32

ну и при чём тут вобще SQL ??????

petrovitch
Код: pascal
1.
          tdt := (data^.UnixTime / 86400) + 25569;



вот это вычисление, результаты которого выбрасываются на помойку, тоже доставляет, да.
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272657
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovitchвозвращает Ошибка сохранения данных I/O error 32

У Firebird тексты ошибок гораздо длиннее. И ты врёшь, это не весь код: begin-end не
сбалансированы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272663
petrovitch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

в процедуру передается rb, ниже по коду инкремент i, параметров в запросе больше
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
  try
    i := 0;
    while i < length(rb) do
    begin
      if ((header^.Atype and 56)>0 )  then
      begin

        with query do
        begin
          sql.Clear;
          sql.Add('INSERT INTO Data' +
              '(test )' + ' values ' + '(:test)');


          AddToLog('Дата %d', [data^.UnixTime]);

          tdt := (data^.UnixTime / 86400) + 25569;

          ParamByName('test').AsDateTime := Now;
          ExecQuery;
        end;
      end; 

    end;

  except
    on E: Exception do
      AddToLog('%d: Ошибка сохранения данных %s', [data^.DeviceID, E.Message]);
  end;
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272670
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovitchwith query do
query - что за компонент?
а вообще - см. 19401584
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272672
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ставлю на то, что эту ошибку выкидывает AddToLog. Ты в логе перед ошибкой видишь строчку
'Дата %d'?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272674
petrovitch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

спасибо, попробую разобраться с Microsoft Process Monitor.
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272675
petrovitch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

пока не могу посмотреть, не могу зайти на сервер.
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272679
petrovitch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

query: TpFIBQuery;
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272716
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovitch
Код: pascal
1.
2.
3.
4.
5.
6.
  try
...
  except
    on E: Exception do
      AddToLog('%d: Ошибка сохранения данных %s', [data^.DeviceID, E.Message]);
  end;

Открой для себя разные типы исключений
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272751
Супер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ariochвычисление, результаты которого выбрасываются на помойку, тоже доставляет, да.
В этом коде каждая строчка доставляет.
Вот это
Код: pascal
1.
2.
3.
          sql.Clear;
          sql.Add('INSERT INTO Data' +
              '(test )' + ' values ' + '(:test)');

феерично как минимум дважды:
во первых, потому, что в цикле.
во вторых, склеивание текста запроса из констант - вообще супер.
короче, аффтар, пеши есчо.
По ошибке - Dimitry Sibiryakov прав - 99.9% вероятность что это AddToLog.
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272800
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СуперВот это
Код: pascal
1.
2.
3.
          sql.Clear;
          sql.Add('INSERT INTO Data' +
              '(test )' + ' values ' + '(:test)');

феерично как минимум дважды:
во первых, потому, что в цикле.
во вторых, склеивание текста запроса из констант - вообще супер.


Ну тут не все так страшно - параметр есть? Есть. А то что запрос "слеен" - дело личных предпочтений - может так автору удобней.
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272806
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

параметр то есть. Вот только грохать текст запроса и собирать его заново каждый раз в цикле как то не комильфо. Тем более что запрос не препариуется единожды, так что смысл тут от параметра разве что в защите от инъекций.
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272824
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Я только про "склеивание". Все остальное - УГ.
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272854
DarkMasterто что запрос "слеен" - дело личных предпочтений - может так автору удобней.Оно конечно...
Тогда уж клеить так клеить:
Код: pascal
1.
2.
          sql.Add('I'+'N'+'S'+'E'+'R'+'T'+' '+'I'+'N'+'T'+'O'+' '+'D'+'a'+'t'+'a' +
              '('+'t'+'e'+'s'+'t'+' '+')' + ' '+'v'+'a'+'l'+'u'+'e'+'s'+' ' + '('+':'+'t'+'e'+'s'+'t'+')');
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272891
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Клей Момент!
You wrote on 13 июля 2016 г. 11:13:14:

Клей Момент> Тогда уж клеить так клеитьклеить лучше бап.
можно изолентой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39272914
...
Рейтинг: 0 / 0
ошибка записи в базу I/O error 32
    #39273123
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СуперВ этом коде каждая строчка доставляет.
Вот это
Код: pascal
1.
2.
3.
          sql.Clear;
          sql.Add('INSERT INTO Data' +
              '(test )' + ' values ' + '(:test)');

феерично как минимум дважды:
во первых, потому, что в цикле.
во вторых, склеивание текста запроса из констант - вообще супер.


Склейка происходит при компиляции, так что это вопрос вкуса, может быть у него это ради единообразия с другими запросами.

В цикл это засунуть конечно круто - думаю раньше запрос слегка менялся, вместе параметра константу засовывали прямо текстом в запрос. Потом узнали про существование параметров, но вытащить получившийся инвариант из цикла не догадались.

Ещё радует лишние вызховы Clear/Add вместо банального SQL.Text := '.....';

По ошибке - Dimitry Sibiryakov прав - 99.9% вероятность что это AddToLog.

ну дык я то же самое сказал

автор вероятно просто думает, что ВСЕ процедуры внутри with-блока могут относиться только к Query....
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ошибка записи в базу I/O error 32
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]