Re: Создание курсоров через ADO | |
---|---|
nikepopov Сообщений: 10 Дата регистрации: 14.03.2018 |
Ну, во встроенными объектами есть трудности:
Если использовать объект XBase: 1. Скорость чтения просто колоссально низкая 2. У меня таблицы очень большие, памяти на создание аналога в 1С (ТаблицаЗначений) для того, чтобы при помощи связей отобрать нужные не хватит Если говорить про объект "ВнешниеИсточникиДанных", то 1. Нужно снимать конфигурацию с поддержки 2. Дополнительных преимуществ нет, так как это обычная работа через OLEDB. Так что вариант с работой через стандартный ODBC вроде самый разумный. |
Re: Создание курсоров через ADO | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Если количество "выбираемых" элементов не большое (в пределах пары десятков), то можно:
- динамически формировать текст запроса к основной таблице, подсовывая в условие
- тупо сделать цикл, вынимая по 1 записи (или группе записей) из мега-таблицы на каждом проходе, и сливая всё это вместе уже на стороне 1с. Варианты, конечно, не супер, но вполне рабочие (первый тоже оптимизируем по индексу - конечно если индекс таки есть, и он структурный cdx - т.е. автоматом подключается и используется). Во всяком случае это уж лучше чем пытаться не поддерживаемый синтаксис изподвыподверта использовать ------------------ WBR, Igor |
Re: Создание курсоров через ADO | |
---|---|
Foxtrot Автор Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
мне почемуто видится если по аналогии с фоксом, что вместо того чтобы писать USE mytable ты пытаешься использовать CRATEOBJECT(
возможно я ошибаюсь и чегото проглядел ------------------ Мойте ноги, моя ноги вы моете и руки |
Re: Создание курсоров через ADO | |
---|---|
nikepopov Сообщений: 10 Дата регистрации: 14.03.2018 |
Пробовал. Иногда проходит, но в некоторых случаях появлялась ошибка недопустимой длинны команды. Я отказался от метода, так как надёжность превыше всего. |
Re: Создание курсоров через ADO | |
---|---|
nikepopov Сообщений: 10 Дата регистрации: 14.03.2018 |
Я когда писал всё это был как в бреду. Много синтаксиса не пропускает OLEDB провайдер. Это было скорее похоже на "угадай команду". В Fox-e команда проходит, а через провайдер - ни под каким соусом. Но про CRATEOBJECT я даже не читал. Такого я ещё не видел. |
Re: Создание курсоров через ADO | |
---|---|
Foxtrot Автор Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
как я и предсказывал, все на много проще. к примеру такой вариант
создаешь в 1це таблицу, пихаешь в нее все что душе угодно пишешь прогу на фоксе, которая создасть вторую таблицу на основе всех твоих ухищрений вызываешь сие творение из 1це открываешь результаты в 1це профит! ------------------ Мойте ноги, моя ноги вы моете и руки |
Re: Создание курсоров через ADO | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ну так следить надо за размером генерируемой строки В 9-м фоксе сняли лимит на число элементов в in, а до того вроде бы 24 только можно было перечислять. Максимальный размер команды в самом фоксе 8Кб, сколько в провайдере даже и не знаю... И да, там ещё есть SYS(3055) задающая, если очень грубо, количество условия в WHERE - каждый элемент в IN по сути это одно условие, и по умолчанию SYS(3055)=320 что должно соответствовать 40 условиям. Может ещё и это мешало. И да, использовать надо крайние версии ПО - VFP OLE DB провайдер уровня VFP9 SP2. Что мешает делать запрос по частям (ограничивая в пределе каждую часть одним условием) и потом объединять результат на стороне 1с - тоже неясно. Не должно оно быть очень уж медленно для разумных размеров выборок. ------------------ WBR, Igor |
Re: Создание курсоров через ADO | |
---|---|
pasha_usue Сообщений: 3649 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Можно сделать очень тупой COM-Server на фоксе. Причем сариализовать в структуру, которую 1С умеет десериализовывать: либо XML, либо ЗначениеИзСтрокиВнутр().
|
Re: Создание курсоров через ADO | |
---|---|
Foxtrot Автор Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
тож ведь так думал
но ежели нет опыта, то это только усложнит задачу исполнителю ------------------ Мойте ноги, моя ноги вы моете и руки |
© 2000-2024 Fox Club  |