Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Выгрузка результата запроса из Оракл в FoxPro  [new]
Andrey A. Gerasimenko
Member

Откуда:
Сообщений: 6
Всем привет!
Может конечно и ламерский вопрос - собственно сабж - нужно процедурой получить фокспрошный DBF

Собственно система IT-Предприятие

Блин основная непонятка -временный курсор создаю, заполняю данными запроса из Oracle,
создаю DBF-файл с нужной структурой, а вот теперь как из этого курсора данные забить в него - трабл все ругается на несовпадение типов данных.

NEED HELP
12 июл 07, 18:08    [4386026]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка результата запроса из Оракл в FoxPro  [new]
проходящий.
Guest
Покажи-ка лучше код, выполняющий описанное, а то что-то трудно понять из описания что делается, что не делается и что нужно сделать.
12 июл 07, 19:06    [4386316]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка результата запроса из Оракл в FoxPro  [new]
Andrey A. Gerasimenko
Member

Откуда:
Сообщений: 6
вот создаю таблицу DBF:
CREATE TABLE "D:\kbved\kbved.dbf" ( FAM CHAR(20), NAM CHAR(15), OTCH CHAR(15) )

делаю запрос к оракл-у:
m.VED=usql_exec([select FAM, NAM, OTCH from KDK ])

А вот как теперь из этого мемо-поля заполнить таблицу - ????
16 июл 07, 11:42    [4391823]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка результата запроса из Оракл в FoxPro  [new]
Станислав С...кий
Guest
Andrey A. Gerasimenko
вот создаю таблицу DBF:
CREATE TABLE "D:\kbved\kbved.dbf" ( FAM CHAR(20), NAM CHAR(15), OTCH CHAR(15) )

делаю запрос к оракл-у:
m.VED=usql_exec([select FAM, NAM, OTCH from KDK ])

А вот как теперь из этого мемо-поля заполнить таблицу - ????

Вы как к Ораклу подключаетесь: через АДО или через ОДБЦ?

Если через ОДБЦ, то в функции SQLEXEC() можно указать курсор, куда надо складывать результаты запроса. А дальше - как обычно...

Если через АДО (используется объект RecordSet (далее rs)), то надо использовать позаписный просмотр:
- пока не конец набора данных (While !rs.Eof() )
-- перейти на первую запись (rs.MoveFirst)
-- получить значение поля (rs.Fields("FAM").Value)
-- записать в переменную/поле курсора/и т.д.
-- получить значение следующего поля....
-- перейти к следующей записи (rs.MoveNext)
16 июл 07, 12:12    [4392053]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка результата запроса из Оракл в FoxPro  [new]
Станислав С...кий
Guest
Станислав С...кий

Если через АДО (используется объект RecordSet (далее rs)), то надо использовать позаписный просмотр:
- пока не конец набора данных (While !rs.Eof() )
-- перейти на первую запись (rs.MoveFirst)
-- получить значение поля (rs.Fields("FAM").Value)
-- записать в переменную/поле курсора/и т.д.
-- получить значение следующего поля....
-- перейти к следующей записи (rs.MoveNext)

упс, ошибся... надо так:

-- перейти на первую запись (rs.MoveFirst)
- пока не конец набора данных (While !rs.Eof() )
-- получить значение поля (rs.Fields("FAM").Value)
-- записать в переменную/поле курсора/и т.д.
-- получить значение следующего поля....
-- перейти к следующей записи (rs.MoveNext)
16 июл 07, 12:14    [4392059]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка результата запроса из Оракл в FoxPro  [new]
dmitryx
Member

Откуда: Минск, Беларусь
Сообщений: 37
Если версия фокса 8 или старше, то можно так:
LOCAL lnHandle as Integer 
LOCAL loMyCA as CursorAdapter
lnHandle = SQLSTRINGCONNECT([dsn=your_dsn;uid=_user_;pwd=_password_], .T.)

loMyCA = CREATEOBJECT("CursorAdapter")

WITH loMyCA
	.DataSourceType = "ODBC"
	.DataSource = lnHandle
	.SelectCmd = "SELECT FAM, NAM, OTCH FROM KDK"
	.CursorSchema = "FAM C(20), NAM C(15), OTCH C(15)"
	.Alias = "curpipe"
	.FetchMemo = .F.
	.MapVarchar = .T.
	.MapBinary = .T.
	.UseCursorSchema = .T.
	.NoData = .F.
	IF .CursorFill(.T., .F.)
		* данные успешно получены
		BROWSE 
	ELSE
		LOCAL ARRAY laErrorArray(1)
		= AERROR(m.laErrorArray)
		MESSAGEBOX("Ошибка при получении данных."+CHR(13)+m.laErrorArray[2])
	ENDIF 
ENDWITH 

=SQLDISCONNECT(lnHandle)
17 июл 07, 10:08    [4396331]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка результата запроса из Оракл в FoxPro  [new]
FM32YO aka KID
Member

Откуда: Ukraine
Сообщений: 884
Andrey A. Gerasimenko
вот создаю таблицу DBF:
CREATE TABLE "D:\kbved\kbved.dbf" ( FAM CHAR(20), NAM CHAR(15), OTCH CHAR(15) )

делаю запрос к оракл-у:
m.VED=usql_exec([select FAM, NAM, OTCH from KDK ])

А вот как теперь из этого мемо-поля заполнить таблицу - ????


если уж ты сделал так
m.VED=usql_exec([select FAM, NAM, OTCH from KDK ])
то сделай выборку в курсор, который потом сохрани как свою таблицу, вместо того, чтобы предварительно ее создавать

в хэлпе ситай статью на тему
SQLEXEC(nConnectionHandle, [cSQLCommand, [cCursorName]])
30 июл 07, 12:23    [4452147]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить