![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка: Поставщик данных ....... состояние E_FAIL [D2005, XP]
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?