Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Нужна помощь с запросом к ДБФ (число прочтений - 2732 )
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Нужна помощь с запросом к ДБФ
13. Июля 2010 :: 18:38
Печать  
Есть такой пимитивный запрос
 

Select
   $Рег.Счет as [Счет1 $Документ.Счет],
   $Рег.СуммаОплатыВал as СуммаОплатыВал,
   Рег.IDDOC as [Док $Документ],
   Рег.IDDocDef as Док_вид
From $Регистр.ВзаиморасчетыПоставщиковВал as Рег
Where $Рег.Счет = :ВыбСчет

Все отрабатывает. Но в итоговой таблице, значений больше, чем должно быть. Смотрю на движения документа - в регистре одна строка. В результатах запроса - четыре. Путем нехитрых манипуляций - каждое перепроведение добавляет строку в результат запроса. в документе , который делает движение стоит автоматическая очистка движений.
Объясните идиоту, что это и как с ним бороться
  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: Нужна помощь с запросом к ДБФ
Ответ #1 - 13. Июля 2010 :: 18:41
Печать  
Если это имеет значение, поле СуммаОплатыВал - это реквизит регистра
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Нужна помощь с запросом к ДБФ
Ответ #2 - 13. Июля 2010 :: 19:22
Печать  
Скорее всего, у тебя неверная строка подключения. Из-за этого, похоже, в результате ты видишь и строки, помеченные на удаление. А вообще - я бы порекомендовал использовать 1sqlite.
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Нужна помощь с запросом к ДБФ
Ответ #3 - 14. Июля 2010 :: 05:02
Печать  
И во всех 4-х строках   Рег.IDDOC одинаковый ?
  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: Нужна помощь с запросом к ДБФ
Ответ #4 - 14. Июля 2010 :: 07:42
Печать  
Да, IDDoc одинаковое


а Строка подключения:

БД = СоздатьОбъект("ODBCDatabase");
     БД.Соединение("DRIVER=Microsoft Visual FoxPro Driver;Deleted=No;Null=No;
     логИБ());

только начинаю разбираться - за любой совет - огромное спасибо
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Нужна помощь с запросом к ДБФ
Ответ #5 - 14. Июля 2010 :: 09:02
Печать  
Такой запрос, что кажет ?
Код
Выбрать все
	глОлеДБ = СоздатьОбъект("OLEDBData");
	Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Mode=ReadWrite;Collating Sequence=MACHINE";
	Рез = глОлеДБ.Соединение(Соединение);
	гЗапрос = глОлеДБ.СоздатьКоманду();
	гЗапрос.Выполнить("EXECSCRIPT('SET ANSI OFF')");
	гЗапрос.Выполнить("EXECSCRIPT('SET REPROCESS TO 60 SECONDS')");
	гЗапрос.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')");
	гЗапрос.Выполнить("Exec('SET TABLEVALIDATE TO 0')");// Отключили блокировки

	ТекстЗапроса ="
	|Select
    |$Рег.Счет as [Счет $Документ.Счет],
    |$Рег.СуммаОплатыВал as СуммаОплатыВал,
    |Рег.IDDocDef +Рег.IDDOC as [Док $Документ]
    |From Регистр.ВзаиморасчетыПоставщиковВал Рег
    |Where $Рег.Счет = :ВыбСчет
	|";
	гЗапрос.УстановитьТекстовыйПараметр("ВыбСчет", ВыбСчет);
	ТЗ = гЗапрос.ВыполнитьИнструкцию(ТекстЗапроса);
	ТЗ.ВыбратьСьроку(); 

  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: Нужна помощь с запросом к ДБФ
Ответ #6 - 14. Июля 2010 :: 09:09
Печать  
Пишет

Рез = глОлеДБ.Соединение(Соединение);
{Глобальный модуль(24003)}: FAILED! IDataInitialize::GetDataSource(): Класс не зарегистрирован
  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: Нужна помощь с запросом к ДБФ
Ответ #7 - 14. Июля 2010 :: 09:12
Печать  
нужно искать дополнительную библиотеку?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Нужна помощь с запросом к ДБФ
Ответ #8 - 14. Июля 2010 :: 09:27
Печать  
вот это скачай и установи
Microsoft OLE DB Provider for Visual FoxPro
  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: Нужна помощь с запросом к ДБФ
Ответ #9 - 14. Июля 2010 :: 09:40
Печать  
похоже с меня пиво))) куда высылать?)

еще раз проверю)

получается, это была особенность работы  ODBCDatabase с регистрами? чтобы понять для себя.

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Нужна помощь с запросом к ДБФ
Ответ #10 - 14. Июля 2010 :: 09:44
Печать  
Ну, вообще то для дбф или фоксовый провайдер, либо 1sqlite, второе проще, не нужно заботиться о составлении выражений для попадании в индекс + куча удобных методов.
Да и текст запроса проще/быстрее писать - меньше переключаться нужно на другую расскладку.
  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: Нужна помощь с запросом к ДБФ
Ответ #11 - 14. Июля 2010 :: 09:52
Печать  
спасибо!
  
Наверх
 
IP записан
 
Tvish
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 26. Февраля 2010
Re: Нужна помощь с запросом к ДБФ
Ответ #12 - 14. Июля 2010 :: 09:53
Печать  
надо учить матчасть
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать