Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ADODB.Connection и XMLTOCURSOR / 11 сообщений из 11, страница 1 из 1
07.02.2013, 11:45
    #38141366
Semen81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Всем привет!!! Замучился уже. В VFP 9 использую ADODB для получения данных из оракла и получившуюся выборку скидываю в курсор с помощью XMLTOCURSOR
Код: sql
1.
2.
3.
4.
CREATE CURSOR temp_prix_wms (isn c(10), isnd c(10), kol n(10))
loXML = CREATEOBJECT('MSXML.DOMDocument') 
oResult.Save(loXML, 1) 
XMLTOCURSOR(loXML.xml, 'temp_prix_wms', 8192) 


Так мои мучения заключаются в том, что один и тот же запрос, который выполняется через ADODB.Command и в среде оракл возвращает разные результаты. Правильные те, что получаются в среде оракл. А в FOX такое ощущение, что цепляются какие-то старые данные, которые участвовали в предыдущих выборках. Куда копать? Всем спасибо
...
Рейтинг: 0 / 0
07.02.2013, 11:47
    #38141372
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Semen81,
а чем вызван такой, прямо скажем, необычный способ общения с сервером?
...
Рейтинг: 0 / 0
07.02.2013, 11:51
    #38141385
Semen81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Sergey Sizov,
)) Не могу ответить. Просто так сделал. Через ODBC все норм работало, за исключением постоянно открывающегося окна для ввода пользователя и пароля, а через ADO программа может работать в теневом режиме.

На всякий случай напишу полный код
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
oConn=CREATEOBJECT("ADODB.Connection")
oConn.ConnectionString="строка подключения"
oConn.Open()

LOCAL oCmd AS ADODB.Command, oResult AS ADODB.Recordset 
LOCAL loXML as MSXML.DOMDocument 

oCommand=CREATEOBJECT("ADODB.Command")
oCommand.ActiveConnection=oConn
oCommand.CommandType = 1 
oCommand.CommandTimeout = 0 

CREATE CURSOR temp_prix_wms (isn c(10), isnd c(10), kol n(10))
oCommand.CommandText="SELECT ..... "
oResult=oCommand.Execute()
loXML = CREATEOBJECT('MSXML.DOMDocument') 
oResult.Save(loXML, 1) 
XMLTOCURSOR(loXML.xml, 'temp_prix_wms', 8192) 
oResult.Close() 
...
Рейтинг: 0 / 0
07.02.2013, 12:46
    #38141519
Semen81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Переделал все на это
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE CURSOR temp_prix_wms (isn c(10), isnd c(10), kol n(10))
oConn=CREATEOBJECT("ADODB.Connection")
oConn.ConnectionString="строка подключения"
oConn.Open()
rs=CREATEOBJECT("ADODB.Recordset")
rs.Open ("select .....", oConn, 1, 3)
rs.MoveFirst
DO WHILE !rs.Eof()
	INSERT INTO temp_prix_wms (isn, isnd, kol) VALUES(rs.Fields("isn").Value, rs.Fields("isnd").Value, rs.Fields("kol").Value)
	rs.MoveNext
ENDDO



Все равно возвращает не то что в оракле. RecordSet возвращает 37452 записи, а в оракле 16199. ЗАПРОС ОДИН И ТОТ ЖЕ Что он тащит такое?
...
Рейтинг: 0 / 0
07.02.2013, 12:49
    #38141523
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Semen81Через ODBC все норм работало, за исключением постоянно открывающегося окна для ввода пользователя и пароля
Это легко лечится
Код: sql
1.
SQLSETPROP(0,"DispLogin",3)
...
Рейтинг: 0 / 0
07.02.2013, 12:50
    #38141525
Semen81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Может он дату воспринимает как-то по другому, не как в среде оракл? Поэтому и тянет мне записи не за указаный диапазон а за гораздо больший? Только чтоб это проверить не понимаю как тогда дату написать
...
Рейтинг: 0 / 0
07.02.2013, 12:51
    #38141528
Semen81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Dima TSemen81Через ODBC все норм работало, за исключением постоянно открывающегося окна для ввода пользователя и пароля
Это легко лечится
Код: sql
1.
SQLSETPROP(0,"DispLogin",3)



Сейчас попробую. Если получится забуду как страшный сон этот ADO с RecordSet-ом
...
Рейтинг: 0 / 0
07.02.2013, 12:53
    #38141537
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Возможно еще это пригодится
Код: sql
1.
SQLSETPROP(0,"DispWarnings",.F.)


Тут полный список: help SQLSETPROP()
...
Рейтинг: 0 / 0
07.02.2013, 14:03
    #38141708
Semen81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Сделал вот так и все стало хорошо и быстро

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
LOCAL lnHandle as Integer 
LOCAL loMyCA as CursorAdapter
lnHandle = SQLSTRINGCONNECT("строка подключения", .T.)
loMyCA = CREATEOBJECT("CursorAdapter")
WITH loMyCA
	.DataSourceType = "ODBC"
	.DataSource = lnHandle
	.SelectCmd = "select ..."
	.CursorSchema = "isn C(10), isnd C(10), kol N(10)"
	.Alias = "temp_prix_wms"
	.FetchMemo = .F.
	.MapVarchar = .T.
	.MapBinary = .T.
	.UseCursorSchema = .T.
	.FetchAsNeeded = .F.
	IF .CursorFill()
		SELECT * FROM temp_prix_wms INTO CURSOR wms_prix
	ENDIF
ENDWITH 

=SQLDISCONNECT(lnHandle)
...
Рейтинг: 0 / 0
07.02.2013, 14:48
    #38141828
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Осталось выяснить назначение этой команды.
Semen81
Код: sql
1.
		SELECT * FROM temp_prix_wms INTO CURSOR wms_prix


Почему нельзя сразу в wms_prix? Зачем лишний курсор?
...
Рейтинг: 0 / 0
11.02.2013, 11:53
    #38145734
Semen81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Connection и XMLTOCURSOR
Sergey SizovОсталось выяснить назначение этой команды.
Semen81
Код: sql
1.
		SELECT * FROM temp_prix_wms INTO CURSOR wms_prix


Почему нельзя сразу в wms_prix? Зачем лишний курсор?

Да это я сделал потому, что после заполнения курсора tmp_prix_wms он почему то не отображается, а как будто закрывается )) Не стал долго разбираться в чем дело и что я опустил, а сделал SELECT
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ADODB.Connection и XMLTOCURSOR / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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