powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CURSORADAPTER
3 сообщений из 3, страница 1 из 1
CURSORADAPTER
    #36518835
MARGARITA23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе утро!
Помогите разобраться
У меня есть БД на oracle, необходимо к ней подключиться из foxpro и вывести данные в grid. При этом необходимо, чтобы была возможность редактировать данные в grid и сохранять изменения в оракловской БД

Нашла на форуме пример ODBC.zip попыталась разобраться. Данные выводятся в grid, но изменения не сохраняются. Может я где-то неправильно пишу?

set deleted on
set multilocks on
set classlib to library
set classlib to myApp addi
close databases all
PUBLIC oForm, lnConnection
local lcConnString, ;
laErrors[1]


STORE SQLSTRINGCONNECT("DRIVER=Microsoft ODBC for Oracle;SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost);
(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orabitur.com)));uid=system;pwd=oracle;") TO gnConnHandle

lnConnHandle=gnConnHandle
IF lnConnHandle<0
Aerr(err)
MessageB(' Ошибка соединения - '+Err[1,2])
RETURN

ENDIF

oMyCAD = createobject('CursorAdapter')
if vartype(oMyCAD)='O'
oMyCAD.Alias = 'MyAlias'
oMyCAD.DataSourceType = 'ODBC'
oMyCAD.DataSource = lnConnHandle
oMyCAD.SelectCmd = 'Select * FROM S_IN'
oMyCAD.Tables = 'K_IN'
oMyCAD.BufferModeOverride = 5
oMyCAD.keyFieldList = 'D_IN'
oMyCAD.UpdatableFieldList = ' D_IN,N_IN'
oMyCAD.updateNameList = 'D_IN S_IN.D_IN,N_IN S_IN.N_IN'
oMyCAD.CursorFill()

oForm = createobject('myForm',oMyCAD)
if vartype(oForm)='O'
oForm.show()
read events
else
messagebox('Ошибка. Не загрузилась форма.')
endif

else
messagebox('Ошибка при инициализации КА')
endif

кнопка Сохранить:

local laErrors[1]
lnConnection = thisform.oCAD.DataSource
sqlsetprop(lnConnection, 'Transactions', 2)
if !tableupdate(.t.,.t.,thisform.oCad.Alias)
sqlrollback(lnConnection)
aerror(laErrors)
messagebox(iif(type('laErrors[2]')='C',laErrors[2],'Неопознанная ошибка!'),16,'Ошибка')
else
sqlcommit(lnConnection)
thisform.oCad.CursorRefresh()
thisform.Ogrid1.SetFocus()
endif
...
Рейтинг: 0 / 0
CURSORADAPTER
    #36518837
MARGARITA23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, опечатка
oMyCAD.Tables = 'K_IN'
...
Рейтинг: 0 / 0
CURSORADAPTER
    #36518838
MARGARITA23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все заработало, моя опечатка и была препятствием
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CURSORADAPTER
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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