powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выгрузка результата запроса из Оракл в FoxPro
7 сообщений из 7, страница 1 из 1
Выгрузка результата запроса из Оракл в FoxPro
    #34657619
Всем привет!
Может конечно и ламерский вопрос - собственно сабж - нужно процедурой получить фокспрошный DBF

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

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

NEED HELP
...
Рейтинг: 0 / 0
Выгрузка результата запроса из Оракл в FoxPro
    #34657752
Покажи-ка лучше код, выполняющий описанное, а то что-то трудно понять из описания что делается, что не делается и что нужно сделать.
...
Рейтинг: 0 / 0
Выгрузка результата запроса из Оракл в FoxPro
    #34660472
вот создаю таблицу 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 ])

А вот как теперь из этого мемо-поля заполнить таблицу - ????
...
Рейтинг: 0 / 0
Выгрузка результата запроса из Оракл в FoxPro
    #34660624
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)
...
Рейтинг: 0 / 0
Выгрузка результата запроса из Оракл в FoxPro
    #34660629
Станислав С...кий
Если через АДО (используется объект RecordSet (далее rs)), то надо использовать позаписный просмотр:
- пока не конец набора данных (While !rs.Eof() )
-- перейти на первую запись (rs.MoveFirst)
-- получить значение поля (rs.Fields("FAM").Value)
-- записать в переменную/поле курсора/и т.д.
-- получить значение следующего поля....
-- перейти к следующей записи (rs.MoveNext)
упс, ошибся... надо так:

-- перейти на первую запись (rs.MoveFirst)
- пока не конец набора данных (While !rs.Eof() )
-- получить значение поля (rs.Fields("FAM").Value)
-- записать в переменную/поле курсора/и т.д.
-- получить значение следующего поля....
-- перейти к следующей записи (rs.MoveNext)
...
Рейтинг: 0 / 0
Выгрузка результата запроса из Оракл в FoxPro
    #34663058
dmitryx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если версия фокса 8 или старше, то можно так:
Код: 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.
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)
...
Рейтинг: 0 / 0
Выгрузка результата запроса из Оракл в FoxPro
    #34692279
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 ])

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

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

в хэлпе ситай статью на тему
Код: plaintext
SQLEXEC(nConnectionHandle, [cSQLCommand, [cCursorName]])
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выгрузка результата запроса из Оракл в FoxPro
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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