Переключение на Главную Страницу Страницы: 1 [2] 3 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) Статья о использовании прямых запросов (число прочтений - 116058 )
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #15 - 20. Октября 2006 :: 01:16
Печать  
Для выполнения запроса используется переменная Запрос, а не RS. Это вообще то дополнение к статье Acsent'a, причем не обработанное им. Отсюда и некоторые недорозумения в тексте.

Строку подключения я брал из документации, как там написано так и у меня.

А вот насчет блокировок - оч. интересное дополнение. Попробую свой заброшенный класс Регистр доделать с учетом этих исправлений.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #16 - 20. Октября 2006 :: 08:17
Печать  
Подкидываю еще пару приколов прямых запросов в ДБФ Улыбка

Прикол 1. "Кеширование", блин.
В конфигурации есть несколько расходных накладных, которые делают практически одно и то же. (Конфигурация осталась еще с времен ТиС 7.0 - что-то вроде редакции 2.0). Для тестирования проведения этих документов есть юнит-тест. Он создает под каждый из этих документов приходную накладную, создает расходную накладную и проводит ее. Далее смотрит движения по регистрам. Так вот, обнаружил любопытственную вещь: после переписывания проведения под прямые запросы тест стал нормально проходить первый вид документов, а на остальных падал. Выяснил почему: при проведении второго вида документов документ видел нулевые остатки товара, хотя товар только что был специально оприходован. Если документ потом провести вручную, то он проводился. Если изменить порядок тестирования видов, то опять же первый вид документов проводится, а следующие падают. Вылечилось переподключением к базе: т.е. для глобального объекта вида "OLEDBData" при входе в модуль проведения выполняем сначала "Закрыть", а потом опять "Соединение". Очень похоже на то, что FoxPro пытается кешировать запросы, а отключить это я не смог...

Прикол 2. Несовместимость форматов 1С и FoxPro.
Создаем справочник "ТестовыйСправочник". В нем два реквизита: "Новый1" и "Новый2". Реквизиты текстовые. Создаем простейший запрос:

Процедура Сформировать()
     ТекстЗапроса = "
           |SELECT
           |      $Спр.Новый1 AS Новый1,
           |      $Спр.Новый2 AS Новый2
           |FROM
           |      $Справочник.ТестовыйСправочник AS Спр
           |";
           
     Запрос = СоздатьОбъект ("ПрямойЗапрос");
     Запрос.Текст = ТекстЗапроса;
     Выборка = Запрос.Выполнить ();
     Выборка.ВыбратьСтроку ();
КонецПроцедуры

Все в порядке, пока длины этих реквизитов не превышают 255 символов. Если для них выставить длину побольше, то у меня перестает отображаться второй реквизит - выдаются пустые значения. То же самое, если файл справочника открыть через Excel: первый реквизит виден, а второй - фиг. Получается, что прямыми запросами не удается вытащить реквизиты, которые следуют после реквизитов со слишком большой длиной.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #17 - 22. Октября 2006 :: 07:14
Печать  
Цитата:
Прикол 1. "Кеширование", блин.

А попробуй с такой строкой подключения, плиз (акцент на OLE DB Services=0).
Код
Выбрать все
Путь = КаталогИБ();
Рез_oledb = db_oledb.Connect("Provider=VFPOLEDB.1;Deleted=Yes;Data Source=" + Путь + ";Mode=ReadWrite;User ID="";Password="";Mask Password=False;Collating Sequence=RUSSIAN;OLE DB Services=0");
 

  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #18 - 22. Октября 2006 :: 15:29
Печать  
spock писал(а) 22. Октября 2006 :: 07:14:
А попробуй с такой строкой подключения, плиз (акцент на OLE DB Services=0).

Попробовал - не помогло. Строка такая:
Код
Выбрать все
		глСтрокаПрямогоПодключенияКБД = Шаблон ("Provider=VFPOLEDB.1; Mode=ReadWrite;OLE DB Services=0;
		|Data Source=[КаталогИБ ()];");
 

  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #19 - 17. Ноября 2006 :: 06:08
Печать  
Для пополнения ФАК'а ссылка на драйвер FoxPro для OLE DB:
http://download.microsoft.com/download/b/f/b/bfbfa4b8-7f91-4649-8dab-9a647636036...

Файл надо скачать и установить, если при выполнении запросов к ДБФ-базе выдается ошибка "Класс не зарегистрирован".
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #20 - 06. Декабря 2006 :: 11:53
Печать  
Алексей, есть какие-нибудь изменения/дополнения к статье.
Я собираюсь ее закинуть в общую доку на 1С++.

ЗЫ Народ, если есть замечание к статье в части ДБФ, кидайте сюда.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
potap
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 1
Зарегистрирован: 10. Января 2007
Re: Статья о использовании прямых запросов
Ответ #21 - 10. Января 2007 :: 07:37
Печать  
В описании примера работы с виртуальными таблицами, в запросе
ТекстЗапроса = "
|SELECT
|      Рег.Товар as [Товар $Справочник.Номенклатура],
|      Рег.КоличествоНачальныйОстаток as КоличествоНачОст,
|      Рег.КоличествоПриход as КоличествоПриход,
|      Рег.КоличествоРасход as КоличествоРасход,
|      Рег.КоличествоКонечныйОстаток as КоличествоКонОст,
|      Рег.СуммаНачальныйОстаток as СуммаНачОст,
|      Рег.СуммаПриход as СуммаПриход,
|      Рег.СуммаРасход as СуммаРасход,
|      Рег.СуммаКонечныйОстаток as СуммаКонОст,
|FROM
|      $РегистрОстаткиОбороты.ОстаткиТоваров(:НачДата, :КонДата~,,,
|                               Склад = :ВыбСклад,
|                               (Товар), (Сумма, Количество)) as Рег";
есть ошибки, не надо запятой перед from и не хватает одной запятой при перечислении параметров.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2342
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #22 - 31. Января 2007 :: 20:51
Печать  
artbear писал(а) 06. Декабря 2006 :: 11:53:
Алексей, есть какие-нибудь изменения/дополнения к статье.
Я собираюсь ее закинуть в общую доку на 1С++.
ЗЫ Народ, если есть замечание к статье в части ДБФ, кидайте сюда.

Вообще маловато примеров работы. я в свое время специально серфил по инету для выяснения особенностей работы с виртуальными таблицами остатков, т.к в доке их не нашел...
  
Наверх
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #23 - 01. Апреля 2007 :: 06:29
Печать  
Добавлены запросы с группировкой "Период"
Приведен пример работы с ИндексированнойТаблицей
Сделано несколько косметических изменений.

Вобщем с апгрейтом!

trdm, опять перепечатывай  Смех
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2342
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #24 - 02. Апреля 2007 :: 10:04
Печать  
Улыбка ну, перепечатывать рановато, а вот *.chm перекомпилю.
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #25 - 02. Апреля 2007 :: 10:19
Печать  
А смысл перекомпилировать?
или ты вордовский файл разбираешь в html, подсовываешь его в проект 1С++/Documents.dsp и уже в МС ВС++ компилишь?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2342
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #26 - 02. Апреля 2007 :: 10:21
Печать  
Да разбираю, у меня своя, самопальная не 1С++-я.
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #27 - 02. Апреля 2007 :: 10:32
Печать  
Не понял, подробнее скажи, как разбираешь, и что за самопальная? Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2342
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #28 - 02. Апреля 2007 :: 14:26
Печать  
artbear писал(а) 02. Апреля 2007 :: 10:32:
Не понял, подробнее скажи, как разбираешь, и что за самопальная? Печаль

да не разбираю а просто в html сохраняю, сори.
а цсм-ка просто сборник с разных ресурсов по скулю и 1С, ничего сверхестественного.
У Янга есть, я ему высылал...
  
Наверх
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #29 - 02. Апреля 2007 :: 14:59
Печать  
trdm, так ждать от тебя примеров по ВТ или самому копать?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 
ОтправитьПечать