powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Результаты запросов
10 сообщений из 10, страница 1 из 1
Результаты запросов
    #33666587
Denver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Помогите, пожалуйста разобраться.
Выполняю такие запросы:

SELE sum(avans.sum_plat) as sumav;
FROM batchs,avans,abonent;
WHERE batchs.ba_num = avans.ba_num;
and MONTH(batchs.ba_date) = mon_ob;
and MONTH(abonent.begin_phone) -1 = MONTH(avans.data_opl);
and ALLTRIM(abonent.familia) = ALLTRIM(avans.familia);
and ALLTRIM(abonent.street) = ALLTRIM(avans.street);
and ALLTRIM(abonent.home) = ALLTRIM(avans.home);
and ALLTRIM(abonent.kvart) = ALLTRIM(avans.kvart);
and avans.opl = .t.;
INTO cursor avans1

SELE sum(avans.sum_plat) as summa1;
FROM batchs,avans;
WHERE batchs.ba_num = avans.ba_num;
and MONTH(batchs.ba_date) = mon_ob;
and avans.opl = .f.;
INTO CURS avans2

При запуске из Фокса все в порядке, а усли запускаю exeшник, то получаю результат только второго запроса...
...
Рейтинг: 0 / 0
Результаты запросов
    #33666704
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Для начала не мешает написать:
... INTO cursor avans1 NOFILTER .... (...INTO CURS avans2 NOFILTER ...)
2. Как вы в EXE-нике наблюдаете курсоры avans1 и avans2? Через какие объекты?

С уважением, Алексей
...
Рейтинг: 0 / 0
Результаты запросов
    #33666860
Denver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Результаты выполнения запросов идут в отчет, ну и естественно пробовал через browse, в котором результат первого запроса был пустым....
По поводу фильтрации: "При запуске из Фокса все в порядке, а если запускаю exeшник, то получаю результат только второго запроса..."
...
Рейтинг: 0 / 0
Результаты запросов
    #33666930
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понял!
У вас результат первого запроса пустой или курсор avans1 не создается (расшифруйте фразу - "... то получаю результат только второго запроса...")?
Если возвращается пустой курсор, то что-то не так при подсоединении таблицы abonent, проверяйте.
И что есть mon_ob ?

С уважением, Алексей
...
Рейтинг: 0 / 0
Результаты запросов
    #33667103
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это вопрос из разряда "найдите 10 отличий"

Если переписать запросы в читабельном виде, то имеем

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELE sum(avans.sum_plat) as sumav ;
FROM batchs ;
INNER JOIN avans ON batchs.ba_num = avans.ba_num ;
INNER JOIN abonent ON MONTH(abonent.begin_phone) -  1  = MONTH(avans.data_opl) ;
			AND ALLTRIM(abonent.familia) = ALLTRIM(avans.familia) ;
			AND ALLTRIM(abonent.street)  = ALLTRIM(avans.street) ;
			AND ALLTRIM(abonent.home)    = ALLTRIM(avans.home) ;
			AND ALLTRIM(abonent.kvart)   = ALLTRIM(avans.kvart);
WHERE ;
	MONTH(batchs.ba_date) = mon_ob ;
	AND avans.opl = .t.;
INTO cursor avans1 NOFILTER

SELE sum(avans.sum_plat) as sumav ;
FROM batchs ;
INNER JOIN avans ON batchs.ba_num = avans.ba_num ;
WHERE ;
	MONTH(batchs.ba_date) = mon_ob ;
	AND avans.opl = .f.;
INTO cursor avans2 NOFILTER

Ну, и в чем отличия?

1) В первом запросе стоит avans.opl = .t., а во втором avans.opl = .f.
2) В первом запросе есть связь с таблицей abonent, а во втором - нет

Вот в этом направлении и копай. Что у тебя находится в таблице abonent на этапе отладки и в готовом EXE?

И, кстати, что ты получишь в выражении

MONTH(abonent.begin_phone) - 1 = MONTH(avans.data_opl)

Если месяц - это январь? Разве бывает нулевой месяц?
...
Рейтинг: 0 / 0
Результаты запросов
    #33667451
Denver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-K создается пустой курсор. mon_ob - № месяца(берется из формы)
ВладимирМ Дело в том, что аблица Abonent не меняется. А по поводу
MONTH(abonent.begin_phone) - 1 = MONTH(avans.data_opl) Вы совершенно правы, просто я пока не делал привязку к году :) рановато еще :)
...
Рейтинг: 0 / 0
Результаты запросов
    #33667778
Сергей А.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понял, проблема только в том, что в среде разработки запрос выдает результат (не пустой), а в приложении нет? И это при работе с одной и той же базой?
Я бы впервую очередь убедился, что база (таблицы) действительно используется одна и та же, а затем проверил все установки - начать хотя-бы с SET DELETED ON/OFF
...
Рейтинг: 0 / 0
Результаты запросов
    #33670068
Denver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей А.М.Я так понял, проблема только в том, что в среде разработки запрос выдает результат (не пустой), а в приложении нет? И это при работе с одной и той же базой?
Я бы впервую очередь убедился, что база (таблицы) действительно используется одна и та же, а затем проверил все установки - начать хотя-бы с SET DELETED ON/OFF
Да Вы совершенн правы. С установками все в порядке. Таблица одна и та же. В файле результаты выполнения этих запросов. Вверху из среды фокса, вниза из ехешника
...
Рейтинг: 0 / 0
Результаты запросов
    #33670244
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда:
1. приведите свой config.fpw
2. main.prg (или что там у вас является главной программой)
3. EXE-ка запускается на той же машине, гже среда разработки (VFP) или на отдельной.
4. Как открываются источники данных для запросов: batchs,avans,abonent?
Может у вас есть несколько копий на компьютере этих таблиц и при разных способах запуска приложения, невольно "хватаются" разные таблицы с одним и тем же именем?

С уважением, Алексей
...
Рейтинг: 0 / 0
Результаты запросов
    #33670681
Denver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-KНу тогда:
1. приведите свой config.fpw
2. main.prg (или что там у вас является главной программой)
3. EXE-ка запускается на той же машине, гже среда разработки (VFP) или на отдельной.
4. Как открываются источники данных для запросов: batchs,avans,abonent?
Может у вас есть несколько копий на компьютере этих таблиц и при разных способах запуска приложения, невольно "хватаются" разные таблицы с одним и тем же именем?

С уважением, Алексей

Exe запускается на том же компе, где и фокс.
текст main.prg
_SCREEN.LockScreen=.T.
_SCREEN.Closable=.F.
_SCREEN.Caption="ПТК"
_SCREEN.BackColor=rgb(120,170,245)
_SCREEN.BorderStyle=2
_SCREEN.WindowState = 2
_SCREEN.LockScreen=.F.
_SCREEN.Picture = "icons\Wallpapper.bmp"
SET ENGINEBEHAVIOR 70
set dele on
set escape off
set safety off
set date DMY
SET TALK OFF
SET BLINK OFF
SET DELETED ON
clear macros
set blocksize to 35
set exact on
SET BORDER TO
set exclusive off
set device to screen
set console on
set printer off
set typeahead to 0
SET MEMOWIDTH TO 256
SET MACKEY TO
set decimals to 2
set century on &&to 19 rollover 72
public G_num_abon, G_num_telef,G_fam,G_name,G_otc,G_city,G_street,G_home,G_kvart,G_data_ust,G_tarif_name,G_to_plat,G_usl8,G_usl9,G_bron, G_full_adress, G_full_name, G_user, G_data_snyat, G_id_tarif, G_new_ab
public G_nach_ab,G_nach_to,G_dolg_peni,G_dolg_peni_m,G_dolg_ab,G_dolg_to,G_sa_all, G_correct, G_dolg, G_sa_all_old
public G_num_book,G_book_date,G_price_book
public G_bank, G_num_ba, G_date_ba, G_sum_ba, G_sum_p_ba, G_id_kvit, G_id_bank, G_good_ba
public G_summ_kvit,G_id_kvit, G_data_opl_kvit, G_date_kvit, G_period, G_sc, G_sc_old, G_sc_to, G_sc_to_old, G_sc_peni,G_sc_peni_old, G_all_dolg, G_all_dolg_old, G_vid
public G_last_ph, G_last_date
public G_sum_peni , G_peni_ab, G_del_ab
public G_av_kvit
public G_peni_data, G_peni_month
public G_nach_dvo, G_dolg_dvo, G_Name_dvo, G_Name_dvo1
Public G_priznak,ab
do init_path
do form password
do peni.prg

READ EVENTS

Procedure Init_Path
cc = sys(16)
do while at(' ', cc) > 0
cc = alltrim(substr(cc, at(' ', cc), 255))
enddo
cc = substr(cc, 1, rat('\', cc)) + 'bd.cfg'
fff = -1
if file ('bd.cfg')
fff = fopen('bd.cfg')
else
if file (cc)
fff = fopen(cc)
endif
endif
if fff = -1
cc = ""
else
cc = alltrim (fgets (fff))
=fclose (fff)
endif

SET PATH TO (cc) && Sets path to database
PathOfDB = cc
cc=cc+"ptk"
OPEN DATABASE &cc && Open testdata database
use abonent in 0 alias abonent
use saldo in 0 alias saldo
use peni in 0 alias peni
use tarif_saldo in 0 alias tarif_saldo
use ab_book in 0 alias ab_book
use street in 0 alias street
use bank in 0 alias bank
use month in 0 alias month
use avans in 0 alias avans
use replace_kvit in 0 alias replace_kvit
use kvit_book in 0 alias kvit_book
use kvit in 0 alias kvit
use batchs in 0 alias batchs
use year in 0 alias year
use edit_tarifs in 0 alias edit_tarifs
use oborotka in 0 alias oborotka
use oborotka_del in 0 alias oborotka_del
use return in 0 alias return
use korrektirovka in 0 alias korrektirovka
use dvo in 0 alias dvo
use kol_book in 0 alias kol_book
use edit_num in 0 alias edit_num
use pereplata in 0 alias pereplata
USE edition IN 0 ALIAS edition
USE other_peni IN 0 ALIAS other_peni
USE old_abon IN 0 ALIAS old_abon
USE renewal IN 0 ALIAS renewal
use peni_month in 0 alias peni_month

y=year(date())
sele year
locate for y==year.year
if found()
sele month
set order to num_month
seek(2)
repl month.day_kol with 29
else
sele month
set order to num_month
seek(2)
repl month.day_kol with 28
endi
return && в cc - каталоa базы данныo

config.fpw не создавал

копий batchs,avans,abonent нет
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Результаты запросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]