powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / глюки odbc или VFP
10 сообщений из 10, страница 1 из 1
глюки odbc или VFP
    #35025677
xa1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xa1
Гость
Меня тут замучал один вопроc, встречается не первый раз.
Не подскажете, почему такое может быть: ХП на sqlserver2000(через query analyzer) возвращает 3 таблицы, последняя - пустая, если же ее выполнить через стандартную foxpro функцию sqlexec(), то мы получаем только 2 заполненных курсора, а 3-ий(пустой) не образуется..
VFP 9, без sp
...
Рейтинг: 0 / 0
глюки odbc или VFP
    #35025754
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тестовый код ХП в студию.
...
Рейтинг: 0 / 0
глюки odbc или VFP
    #35025832
xa1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xa1
Гость
Вот заключительный ее кусок

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
select * from #c_j_rr3 rr3
     order by cacc, bcorr, nom_doc, link

select * from #c_j_r3bp

select 
                    glava          = isnull(rzd31.department, ''),
                    razdel         = isnull(rzd31.division, ''),
                    statia          = isnull(rzd31.target_item, ''),
                    vid              = isnull(rzd31.expend, ''),
                    add_klass    = isnull(rzd31.add_bk, ''),
                    add_bk        = isnull(rzd31.cbs_mb, ''),
                    kkivf            = isnull(rzd31.source, ''),
                    kkivnf          = isnull(rzd31.source_fin, ''),
                    e_klass       = isnull(rzd31.item, ''),
                    sum_str      = isnull(rzd31.summa,  0 ),
                    kod_fin       = '0',
                    link_doc      = rzd31.link,
                    link_bp        = rzd31.corr2
     
from #c_j_razd31 rzd31 inner join #c_j_r3bp bp3 on (rzd31.link = bp3.link_doc and rzd31.corr2 = bp3.link_bp)

Последний select возвращает пустую таблицу, т.к. #c_j_razd31 при текущих исходных данных пустая.
...
Рейтинг: 0 / 0
глюки odbc или VFP
    #35026038
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я просил тестовый код, а не то что у Вас написано, проверьте у себя из фокса

Для SERVER=....;UID=...;PWD=... подставьте свои знсачения

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
hnd = SQLSTRINGCONNECT("DRIVER={SQL Server};SERVER=....;UID=...;PWD=...;DATABASE=northwind;") 
TEXT TO SS NOSHOW 
	use northwind
ENDTEXT  
sqlexec(hnd, SS)
 TEXT TO SS NOSHOW 
	create procedure tp as
	create table #t (f1 int)
	insert into #t select  1  union select  2 
	select * from #t where f1 =  1 
	select * from #t where f1 =  2 
	select * from #t where f1 =  3 
ENDTEXT  
sqlexec(hnd, SS)
 TEXT TO SS NOSHOW 
	exec tp
	drop procedure tp  
ENDTEXT  
sqlexec(hnd, SS)

Посмотрите сколько у Вас получилось курсоров.
...
Рейтинг: 0 / 0
глюки odbc или VFP
    #35026078
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, что возвращает sqlexec
...
Рейтинг: 0 / 0
глюки odbc или VFP
    #35026306
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xa1Меня тут замучал один вопроc, встречается не первый раз.
Не подскажете, почему такое может быть: ХП на sqlserver2000(через query analyzer) возвращает 3 таблицы, последняя - пустая, если же ее выполнить через стандартную foxpro функцию sqlexec(), то мы получаем только 2 заполненных курсора, а 3-ий(пустой) не образуется..
VFP 9, без sp
А между вторым и третим SELECT в ХП случайно ошибка не происходит
Вас PaulWist не просто так спрашивает про код возврата sqlexec
Дело в том, что при вызове ХП из QA, при возникновении ошибки в ХП, она продолжает работать (для для всех ошибок справедливо). А при вызове через SQLEXEC произойдет выход из ХП.
С уважением, Алексей
...
Рейтинг: 0 / 0
глюки odbc или VFP
    #35026312
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо "для для всех ошибок справедливо" надо читать "не для всех ошибок справедливо" :)

С уважением, Алексей
...
Рейтинг: 0 / 0
глюки odbc или VFP
    #35027573
VStrel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWistКстати, что возвращает sqlexec
У меня выгружается три курора. И это не глюк, смотрите настройки (забыл какие точно, сейчас гляну).
...
Рейтинг: 0 / 0
глюки odbc или VFP
    #35029092
xa1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xa1
Гость
Всем большое спасибо, я разобрался.
Оказывается в запросе было несколько варнингов, из-за которых и не возвращался пустой курсор. Кстати, при тех же варнингах, не пустой 3-ий курсор возвращался..

Ps. Прокомментируйте плиз, почему ХП:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
hnd = SQLSTRINGCONNECT("DRIVER={SQL Server};SERVER=....;UID=...;PWD=...;DATABASE=northwind;") 
TEXT TO SS NOSHOW 
	use northwind
ENDTEXT  
sqlexec(hnd, SS)
 TEXT TO SS NOSHOW 
	create procedure tp as
	create table #t (f1 int)
	insert into #t select  1  union select  2 
	select * from #t where f1 =  1 
	select * from #t where f1 =  2 
	-------------------------------------------
	print 'asdasdasd'
	-------------------------------------------
	select * from #t where f1 =  3 
ENDTEXT  
sqlexec(hnd, SS)
 TEXT TO SS NOSHOW 
	exec tp
	drop procedure tp  
ENDTEXT  
sqlexec(hnd, SS)

Вернет уже не 3 а 2 курсора.
...
Рейтинг: 0 / 0
глюки odbc или VFP
    #35029094
xa1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xa1
Гость
PaulWistКстати, что возвращает sqlexec

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


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