#0
by smitti911
Есть код : При выполнении сообщает коннект и 1С падает. Тоже самое при использовании 1СQA. Если в консольке набрать select * from 1sjourn , идет выполнения запроса (секунды 3) и падает 1С с сообщением RunTime Error. Что может быть не так?
#0
by smitti911
Есть код : При выполнении сообщает коннект и 1С падает. Тоже самое при использовании 1СQA. Если в консольке набрать select * from 1sjourn , идет выполнения запроса (секунды 3) и падает 1С с сообщением RunTime Error. Что может быть не так?
#3
by big
+ и имя таблицы 1sjourn. Т.е. - без нижнего подчеркивания впереди. У тебя запрос для SQL на самом деле
#5
by smitti911
В консольке 1sqa выбираю драйвер фокс FAILED! ICommandText::Execute: File '_1sjourn.dbf' does not exist. А если писать 1sjourn.dbf запрос начинает выполнятся и 1С падает
#8
by big
тебе же пишет, что файла с таким именем нету ))) в папке с базой у тебя нет такого файла! :) У тебя есть файл 1sjourn.dbf. Присмотрись ))
#12
by smitti911
Ваш запрос работает нормально, почему же в консольке не отрабатыват select * from $Справочник.ТМЦ ?
#14
by smitti911
select * from 1SCONST за 6 сек 340000 строк закрыл открыл 1с , тот же запрос призводит к вылету.... то еть работает через раз...
#15
by Ёпрст
1. поставить православный vfp 2.убрать провайдер от ужаста, если нужны запросы в монопольке, использовать это: 3. строка подключения должна быть такой : ОлеДБ = СоздатьОбъект("OLEDBData"); Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ + ";Mode=ReadWrite;Collating Sequence=MACHINE"; Запрос.Выполнить("EXECSCRIPT('SET REPROCESS TO 60 SECONDS')"); Запрос.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')"); Запрос.Выполнить("Exec('SET TABLEVALIDATE TO 0')"); 4. чтобы запрос быстро отрабатывал, читаем тут
#18
by smitti911
Проблема осталась, 1 раз работает нормально, потом вылет, реиндексация, опять работает или опять вылет...Ничего не понятно......
#20
by Ёпрст
ну и не видно, как и че ты запущаешь и какие запросы выполняешь, какой зоопарк из вк стоит ит .д
#26
by Злопчинский
ну.. это можно рассматривать как деградацию + одну из ступеней перехода на снеговика с его "прямыми" запросами.. ;-)
#27
by Ёпрст
на счет vfp - всё написано в . 1sqlite не способен на delete/insert/update/запрос к чужой базе, тут только запрос на оледб.
#28
by smitti911
Пока перезагрузку не могу сделать (работают юзвери), но есть новая ошибка: Не найден ключ реестра с данным класидомHKCRoledbdataCLSID для объекта: oledbdata Прог-ид oledbdata не найден в реестре и помечен как обработанный для исключения повторной генерации. Ошибка генерации файлов по прог-иду: oledbdata
#31
by smitti911
Или так, есть процедура очистки базы прямым запросом Код: рс.Выполнить("EXECSCRIPT('SET REPROCESS TO 60 SECONDS')"); рс.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')"); рс.Выполнить("Exec('SET TABLEVALIDATE TO 0')"); Сообщить("Обработка таблиц документов"); Состояние("...удаляются строки документов..."); Состояние("...удаляются шапки документов..."); | | Сообщить(" ...удаляются периодические реквизиты, заполняемые документами..."); Сообщить(" ...удаляются перекрестные ссылки..."); Исключение Сообщить(" ...удаляются ссылки из журнала документов..."); Где можно оптимизировать запросы ?Проводки и ссылки удаляются очень долго.
#33
by smitti911
Интересует табличка 1SENTRY. Есть еще проблемка, если журнал цеплять через иннер джоин то VFP ругается Function name is missing.Может мое условие можно переписать оптимальней?
#36
by SSSSS_AAAAA
А конкретней? В списке форумов предлагаете искать? На каком языке этот код? Для какого драйвера этот код?
#38
by smitti911
Сейчас читаю про попадание в индекс, например: Например мы хотим выбрать документы из 1SJOURN за период . Код: |WHERE Жур.Date BETWEEN :НачДата~~ AND :КонДата~~ то оптимизатор не найдет индекса, так как «Жур.Date» не соответствует «DTOS(date)+time+iddoc» К счастью FoxPro поддерживает упорядочение строк – и можно использовать оператор BETWEEN . Длина строки «time+iddoc» равна 15. Определим переменные МинСтрока= " " Собственно условие Код: WHERE DTOS(date)+time+iddoc BETWEEN (DTOS(:НачДата~~)+' ') AND (DTOS(:КонДата~~)+'ZZZZZZZZZZZZZZZ') (для простоты переменные МинСтрока и МаксСтрока не используются)
#40
by SSSSS_AAAAA
Зайдем с другой стороны. Что еще пишет в сообщении об ошибке кроме Function name is missing? На какую строку ругается?
#42
by Ёпрст
А тебе.. можно запихать выборку доков во временную табличку и соединять потом везде в делете
#43
by SSSSS_AAAAA
dtos(:НачДата~~) в сочетании с УстановитьТекстовыйПараметр("НачДата", '01.01.80') - чушь, приводящая к ругани на несоответствие типов. К тому же, '01.01.80' есть большие грабли в деле правильного понимания драйвером сего безобразия.
#46
by SSSSS_AAAAA
Я очень даже в теме VFPOLEDB на DBF. VFPOLEDB на dtos со строковым параметром будет ругаться на несоответствие типов.
#47
by SSSSS_AAAAA
Изучай: Visual FoxPro 9.0 Справка по языку Возвращает дату в виде символьной строки формата ггггммдд из заданного выражения типа "дата" (Date) или "дата-время" DateTime. Параметры dExpression Указывает выражение типа "дата" для преобразования посредством функции DTOS в строку из восьми цифр. tExpression Указывает выражение типа "дата-время" для преобразования посредством функции DTOS в строку из восьми цифр. Символьное Примечания Эта функция полезна для индексирования таблиц, содержащих поля типа "дата" и "дата-время". Она равнозначна функции DTOC для случая, когда указывается первый необязательный аргумент. Вид и содержимое символьной строки, возвращаемой функцией DTOS, не зависит от установок SET DATE или SET CENTURY.
#50
by smitti911
Запрос >>> OLEDBCommand error: FAILED! ICommandText::Execute: Function name is missing ).
#51
by SSSSS_AAAAA
Спасибо, но в таких рекомендациях не нуждаюсь. Эту справку и так почти наизусть знаю.
#53
by Ёпрст
в табличке движений регистра будут доп поля - не надо будет делать соединение с журналом (аналогично будут поля, ежели стоит галка на одном из измерений регистра)
#54
by SSSSS_AAAAA
М-да, очень информативно. Но видно, что стоит закрывающая скобка, которой не найдено соответствие.
#55
by Ёпрст
для проводок, нужно задействовать этот индекс DTOS(DATE)+TIME+DOCID+STR(NUMBER,5)+STR(CORNO,5)
#58
by smitti911
Движуху надо оставить по банк.випис. и зарплатная часть //*******************************************
#61
by smitti911
select Пров.TIME FROM 1SENTRY as Пров INNER JOIN 1SJourn ON 1SJourn.IDDoc = Пров.DocID WHERE 1SJourn.Date BETWEEN :НачДата AND :НачДата~ Запрос >>> OLEDBCommand error: FAILED! ICommandText::Execute: Command contains unrecognized phrase/keyword.
#62
by SSSSS_AAAAA
Ничем. В фоксе нет такого средства. Но есть возможность посмотреть уровень оптимизации. SYS(3054). Но для этого запрос надо отлаживать в фоксе, и только потом готовый запрос тащить в другие системы.
#64
by Ёпрст
select Пров.TIME FROM 1SENTRY as Пров INNER JOIN 1SJourn as Жур ON Жур .IDDoc = Пров.DocID WHERE Жур .Date BETWEEN :НачДата~~ AND :НачДата~~
#69
by SSSSS_AAAAA
Мсье знает как посмотреть индексы на табличку, но вопрос был про использование индексов в запросе, а это сильно разные вещи.
#71
by smitti911
Лучше переписать через INNER JOIN с журналом или оставить как есть только попадать в индекс.Что бістрее отработает?
#79
by Ёпрст
см. в этом запросе, можно выкинуть соединение с журналом и воткнуть условие на дату из проводки
#80
by SSSSS_AAAAA
И что? Первое вообще не пойми что, второе - строка, которая может быть получена от функции dtos при передаче ей значения типа ДАТА, например {^2001-01-1}.
#83
by SSSSS_AAAAA
Или под словом "его" имеется в виду план запроса? Если так, то разочарую - в фоксе нет понятия "план запроса", впрочем, как нет и понятия "дбф база" :)
#84
by SSSSS_AAAAA
"ведь индекс DTOS(date)+time+iddoc , почему нету прироста по скорости?" Потому, что, как минимум, наличие какого-то индекса не гарантирует его использования.
#93
by Ёпрст
и зачем это всё ? Зачем в этом запросе ограничение по виду ? Это свёртка же, там нужно у всех доков проводки выкидывать
#94
by Ёпрст
если у двух документов нужно оставить, то так тогда хотя бы and not in ($ВидДокумента.ПервыйДок,$ВидДокумента.ВторойДок) но никак не or
#95
by smitti911
Ну назовем это неполная свертка, нужно несколько видов доков оставить с проводками, движухой и т.д.Такая вот тупая задача.Незнаю как бухи будут сводить остатки.... Сейчас запускал чистку за 1 день по виду док. приходная.Время выполнения 45 сек причем 33 из них это чистка 1ссентри
#96
by SSSSS_AAAAA
Сильный аргумент. :) Лучше ссылочку на доку по планам запросов в фоксе кинул для изучения, может где мимо меня промелькнула?
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: Помогите с запросом (ОС, дата ввода)
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Помогите с компонентой V7 plus работа с XML
- v7: Перенос данных Бухгалтерия из v7 в v8
- v7: v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения()
- v7: Помогите с запросом к регистру взаиморасчетов
В этой группе 1С
- Добавить группировку колонок в типовой отчет по ЗУП
- Get запрос к веб-сервису сайта
- Доступность: Интеграция. Что это?
- Обмен УТ 11 с БП 3.0, себестоимость
- v7: При проведении время документа изменяется на конец дня. Почему и как изменить?
- Инвентаризация на ордерном складе УТ11.1
- Проблема с подключением торгового оборудования к 1С 8.3
- Регламентное задание тестирование выполнения
- Элементарная Торговля - бесплатная конфигурация 1С для малого бизнеса
- Как создать несколько ftp аккаунтов на ftp сервере в windows 7 ?
- Бухгалтерия 3.0, проблема с рабочим местом кассира
- Печать штрих-кода PDF417
- переход с 1С:Предприятие 8.2 (8.2.19.80) на 8.3.5.1098 за и против
- КД. В ТЧ не подставляются счета номенклатуры
- УдалитьРегистрациюИзменений РегистрСведений
- Формы статистической отчетности П4 и П4 НЗ в ЗУП 2.5
- Проверить заполнение параметров СКД
- Вписать табличный документ в одну страницу
- РегистрБухгалтерии и управляемые блокировки
- Работа с деревом УФ. Пересчитать сумму в колонке дерева.