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

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

Ошибка: Поставщик данных ....... состояние E_FAIL [D2005, XP]


Страницы:   1 2

oleg_veles ©   (2011-07-26 11:02:00) 

Добрый день ! Помогите разобраться с ошибкой:
Поставщик данных или другая служба вернули состояние E_FAIL.
Вылетает при выполнении следующего куска:
procedure TForm2.BitBtn2Click(Sender: TObject);
Var
Stroca: String;
Konec: String;
Nachalo: String;
Schet:String;
d: Integer;
r: Integer;
m:integer;
n:integer;
f:integer;
begin
    Begin
    //Определим количество записей в секции
    For i:=0 to Memo1.Lines.Count -1 do // Запускаем цикл поиска строки начала документа
    If Pos('СЕКЦИЯДОКУМЕНТ', Memo1.Lines[i])<>0 Then
       Begin
         m := i;
       End;
    For d:=0 to Memo1.Lines.Count -1 do // Запускаем цикл поиска строки конца документа
    If Pos('КОНЕЦДОКУМЕНТА', Memo1.Lines[d])<>0 Then
       Begin
         n := d;
       End;
    r := n-m;// Количество строк документа
    end;
    For i:=0 to Memo1.Lines.Count -1 do // Запускаем цикл поиска строки начала документа
    If Pos('СЕКЦИЯДОКУМЕНТ', Memo1.Lines[i])<>0
    Then
    Begin
      ADOTable1.Append;
      for f := 1 to r  do
        Begin
          rsh := Memo1.Lines[f + i];// Строка документа
          Stroca := Copy(rsh, 1, 6);
          Konec :=  Copy(rsh, 1, 14);
          Schet :=  Copy(rsh, 1, 13);
          Znach := Copy(rsh,Pos('=',rsh)+1, Length(Rsh));
          if Znach = '' then Znach := '0';
          ADOTable1.Edit;
          If (Stroca = 'ДАТАСП') OR (Stroca = 'ДАТАПО') OR (Stroca = 'ДАТАОП') Then Begin
                   ADOTable1Data.Value := Znach
                   end
                   Else
          If (Stroca = 'СУММА=') OR (Stroca = 'СУММАП') OR (Stroca = 'СУММАР') Then Begin
                   ADOTable1Summa.Value := Znach
                   end
                   Else
          If (Schet = 'ПЛАТЕЛЬЩИКСЧЕ') OR (Schet = 'ПЛАТЕЛЬЩИКИИК') OR (Schet = 'ПЛАТЕЛЬЩИК2  ') Then Begin
                   ADOTable1PlatSchet.Value := Znach
                   end
                   Else
          If Stroca = 'НАЗНАЧ' Then Begin
                   ADOTable1NaznPlat.Value := Znach;
          ADOTable1Bank.Value := Nomer;
          If Konec = 'КОНЕЦДОКУМЕНТА' Then End;
       End;
          ADOTable1.Post;
    End;
    ADOTable1.Active := False;
    Memo1.CharCase := ecNormal;
    ADOTable1.Active := True;
end;

Вылетает непонятно в каком месте и не зависит (проверял) от загружаемого файла, т.е. может два раза файл загрузиться, а третий (пятый, двадцатый) появится эта ошибка. Харанее благодарен за ответ...


Anatoly Podgoretsky   (2011-07-26 11:39:00) [21]

> oleg_veles  (26.07.2011 11:02:00)  [0]

TAdoDataset


oleg_veles   (2011-07-26 11:36:00) [22]


> Даже после трассирования непонятно?


      End;
  >>>       ADOTable1.Post;
   End;


oleg_veles   (2011-07-26 11:35:00) [23]

To Dennis I. Komarov

> 2. Учить SQL

Где тут SQL !

> 3. Судя по присутствующим терминам "ПЛАТЕЛЬЩИК", "СУММА"
> и т.п. автора придать анафеме

И за что ? За то что вынужден выполнять прихоть бухов? Ты видно счастливый делаешь только то что хочешь...
А по существу вопроса можешь что подсказать ?


И. Павел   (2011-07-26 11:34:00) [24]

> Вылетает непонятно в каком месте

Даже после трассирования непонятно?


oleg_veles   (2011-07-26 11:31:00) [25]

Он проклятый :-( , но уйти ни как... там древняя программуля обрабатывает полученные данные. Мне только и надо из декста в mdb перегнать...


Dennis I. Komarov   (2011-07-26 11:30:00) [26]

Ужасть, а не код.
1. циклы for заменить на один while
2. Учить SQL
3. Судя по присутствующим терминам "ПЛАТЕЛЬЩИК", "СУММА" и т.п. автора придать анафеме


SQLEXPRESS   (2011-07-26 11:19:00) [27]

Access?


Страницы:   1 2

Наверх

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