|
Ошибка ADODB.Recordse | ☑ | ||
|---|---|---|---|---|
|
0
Baglandir
22.01.13
✎
12:17
|
Есть код
ВремРС=Новый COMОбъект("ADODB.Recordset"); ВремРС.CursorLocation=3; Макет=ПолучитьМакет(ИмяМакета); Если вСРСзаписать Тогда // для срс дату менять на "ДФ=ггггММдд" // и эти два поля первые // а в тз передвинуть поля до вызова процедуры // т.к. здесь не получится в разных таблицах разные ВремРС.Fields.Append("DocType", 3); ВремРС.Fields.Append(ПолеДатаСРС, 202,200); КонецЕсли; Для Ном = 1 По Макет.ВысотаТаблицы Цикл ИмяПоля = Макет.Область(Ном, 1).Текст; ИмяПоля = стрзаменить(ИмяПоля,"]",""); ИмяПоля = стрзаменить(ИмяПоля,"[",""); Если вСРСзаписать и (ИмяПоля = ПолеДатаСРС или ИмяПоля = "DocType")Тогда продолжить; КонецЕсли; ТипПоля = Макет.Область(Ном, 2).Текст; ЕстьДлинаПоля = найти(ТипПоля,"("); ДлинаПоля="0"; Если ЕстьДлинаПоля > 0 Тогда ДлинаПоля = Сред(ТипПоля ,ЕстьДлинаПоля+1); ДлинаПоля = лев(ДлинаПоля ,стрдлина(ДлинаПоля )-1); ТипПоля = лев(ТипПоля ,ЕстьДлинаПоля-1); КонецЕсли; СтрокаТипаПоля=НомераТиповПолей.Найти(нрег(ТипПоля), "ИмяТипаПоля"); Если не СтрокаТипаПоля=Неопределено Тогда ТипПоля=СтрокаТипаПоля.ТипПоляЧисло; иначе сообщить("не нашли тип поля "+ИмяМакета+" "+нрег(ТипПоля)); КонецЕсли; Если ДлинаПоля="0" и ТипПоля="202" Тогда ДлинаПоля="200"; КонецЕсли; Если не ДлинаПоля="0" тогда ВремРС.Fields.Append(ИмяПоля, ТипПоля, ДлинаПоля); иначе Попытка ВремРС.Fields.Append(ИмяПоля, ТипПоля); Исключение сообщить("ИмяПоля "+ИмяПоля+ " "+ном+" "+ТипПоля+" "+ИмяМакета+" "+описаниеошибки()); КонецПопытки; КонецЕсли; КонецЦикла; ВремРС.Open(); Для каждого стр Из таблица Цикл ОбработкаПрерыванияПользователя() ; ВремРС.AddNew(); До определенного времени работало нормально , с начала нового года - начало выдавать ошибку при вызове ВремРС.AddNew() "недостаточно памяти" Если у когото есть хоть какието идею буду благодарен . |
| Форум | Правила | Описание | Секции | Поиск |