powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по запросу в Fox и в Oracle
10 сообщений из 10, страница 1 из 1
Вопрос по запросу в Fox и в Oracle
    #36615563
_Margo_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Вопрос из разряда найдите отличие.
Но на самом деле я просто уже не знаю что и думать...

Выполняю select.
В Оракле он выполняется и присылает привильный результат.
вот так он выглядит:

Код: plaintext
1.
2.
SELECT ivc_cb.zakaz_str.naim,ivc_cb.zakaz_str.kol,mts.s_edi.naim as ed_izm, ivc_cb.zakaz_str.cena
FROM ivc_cb.zakaz_str, mts.s_edi 
WHERE LTRIM(RTRIM(ivc_cb.zakaz_str.ID_DOC)) = LTRIM(RTRIM('13-5/2010 ')) AND ivc_cb.zakaz_str.id_izm = mts.s_edi.qedi
Вот аналогичный код для fox 9:
Код: plaintext
1.
2.
3.
4.
nom='13-5/2010  '
lnReturn =sqlexec(lnMyConnect,'SELECT ivc_cb.zakaz_str.naim,ivc_cb.zakaz_str.kol,mts.s_edi.naim as ed_izm, ;
ivc_cb.zakaz_str.cena ;
FROM ivc_cb.zakaz_str, mts.s_edi ;
WHERE LTRIM(RTRIM(ivc_cb.zakaz_str.ID_DOC)) = LTRIM(RTRIM(nom)) AND ivc_cb.zakaz_str.id_izm = mts.s_edi.qedi','curs_1')
Но в ответ прилетает -1 - т.е. все плохо :(
Так в чем же ошибка в FOX???
Соединение есть - проблема точно не в этом.
...
Рейтинг: 0 / 0
Вопрос по запросу в Fox и в Oracle
    #36615587
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Margo_,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
nom='13-5/2010  '
local lcSqlCmd
text to lcSqlCmd noshow pretext  15 
   SELECT ivc_cb.zakaz_str.naim
            , ivc_cb.zakaz_str.kol
            , mts.s_edi.naim as ed_izm
            , ivc_cb.zakaz_str.cena 
    FROM ivc_cb.zakaz_str
          , mts.s_edi 
    WHERE LTRIM(RTRIM(ivc_cb.zakaz_str.ID_DOC)) = LTRIM(RTRIM(?nom)) 
        AND ivc_cb.zakaz_str.id_izm = mts.s_edi.qedi
endtext
lnReturn =sqlexec(lnMyConnect,lcSqlCmd,'curs_1')
...
Рейтинг: 0 / 0
Вопрос по запросу в Fox и в Oracle
    #36615602
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и так, на будущее.

никогда в своем коде в фокспро
не используйте команду sqlexec.

Вам необходимо для себя разработать какую-то
обертку, в которой будет обработка ошибок и
вывод при необходимости понятных Вам сообщений.

ищите на просторах где-то что-то подобное,
или пишите самостоятельно

иными словами:
у Вас должен быть класс или ф-я, которая будет выполнять запросы.
такой класс или ф-я или пр-ра должна быть разработана
с таким расчетом, что Вы в процессе разработки сможете
получать понятные сообщения о том, что произошло на сервере,
и будете просто и быстро понимать причину.
...
Рейтинг: 0 / 0
Вопрос по запросу в Fox и в Oracle
    #36615643
_Margo_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо,

огромное спасибо! Помогло.
Здесь отличный сайт и замечательные люди!
...
Рейтинг: 0 / 0
Вопрос по запросу в Fox и в Oracle
    #36615665
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Margo_прошелмимо,

огромное спасибо! Помогло.
Здесь отличный сайт и замечательные люди!

пожалуйста,
подсмотрите прием написания запроса,
Вы сможете копипастить запросы в фокспро
из среды разработки запросов на сервере.

также, немедленно приступите к разработке у добной для
себя процедуры(ф-и) для выполнения запросов у себя.

простое использ-е ф-и sqlexec малоинформативно,
поэтому, чтобы каждый раз не писать километры подобного
кода по обработки успеха(неуспеха) у всех
разработчиков либо свои библиотечки, либо
какие-то оберточки, которые зовут
и которые выполняют запрос и одновременно
дают разработчику как в режиме разработки,
так и в случае выполнения у пользователя,
разумную информацию для анализа.
...
Рейтинг: 0 / 0
Вопрос по запросу в Fox и в Oracle
    #36615698
_Margo_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо,

А может у вас ссылочки есть на такие примеры?
Ну что бы не изобретать колесо...
...
Рейтинг: 0 / 0
Вопрос по запросу в Fox и в Oracle
    #36615699
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot прошелмимо]и так, на будущее.

никогда в своем коде в фокспро
не используйте команду sqlexec.

Что взамен sqlexec?
Лично я на форме делаю свойсво в которое помещаю результат sqlexec и если что-то не так в методе Assign вывожу строку ошибки...
...
Рейтинг: 0 / 0
Вопрос по запросу в Fox и в Oracle
    #36615754
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerii[quot прошелмимо]и так, на будущее.

никогда в своем коде в фокспро
не используйте команду sqlexec.

Что взамен sqlexec?
Лично я на форме делаю свойсво в которое помещаю результат sqlexec и если что-то не так в методе Assign вывожу строку ошибки...

ну как-то ф-ма и "выполнятор" запроса разные вещи.

вы желаете готовое решение?
я думаю, что их куча.

в простейшем случае это должно быть нечто
(выглядеть как-то так или иначе - это не готовое решение):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
If mySqlExec("select * ...","ttt")< 0 
   .....
   
EndIf

.....

If mySqlExec("exec tttt","ttt")< 0 
   .....
   
EndIf

.....

Function mySqlExec
Lparameters tcSqlCmd, 			 ;	&& команда, которую неоходимо выполнить на сервере
			tcAliasNameOfResult  ;	&& имя курсора, в который необходимо вернуть рез-т выборки
			
Local llResult
if !empty(tcAliasNameOfResult)
	llResult = (sqlexec(this.nConnection, tcSqlCmd, tcAliasNameOfResult)> 0  and used(tcAliasNameOfResult))
else
	llResult = (sqlexec(this.nConnection, tcSqlCmd)> 0 )
endif			

if !llResult
	local laSQlExecError[ 1 ]
	if aerror(laSQlExecError)> 0 
		
		local lcMessage
		text to lcMessage noshow textmerge pretext  3 
			Внимание! На сервере произошла ошибка выполнения запроса.
			Последняя выполненная команда:
			<<tcSqlCmd>>
				
			Полученные сообщения об ошибках с сервера:
			........
			(отображаем эл-ты массива laSQlExecError)
			.......
							
		endtext 		
			this.checkErrorSqlExec( lcMessage, @laSQlExecError)
		EndIf
		
	EndIf
endif 	

return iif(llResult,  1 , -чтохотите)

...
Рейтинг: 0 / 0
Вопрос по запросу в Fox и в Oracle
    #36615789
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Margo_прошелмимо,

А может у вас ссылочки есть на такие примеры?
Ну что бы не изобретать колесо...

ну вот что-то подобного поищите
http://www.foxclub.ru/sol/solution539.php


т.е. должна быть обертка, через которые нужно выполнять запросы,
желательно доработать под себя (под свои потребности)

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


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