powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите найти ошибку
5 сообщений из 5, страница 1 из 1
помогите найти ошибку
    #36599345
MARGARITA23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 БД oracle и foxpro. Я переношу данные таблиц из БД foxpro в БД oracle. Чтобы вставить новые данные таблиц БД foxpro в БД oracle, сначала должна быть заполнена таблица sys_j в БД oracle.Т.е мне необходимо сформировать первичный ключ в foxpro, а затем его перекинуть в таблицу sys_j БД oracle

Подключаюсь к БД oracle и запоминаю последний первичный ключ:
lnconn=SQLCONNECT("orabitur","system","ora")
=SQLEXEC(lnConn,'select id_j from sys_j', "id_jur")
scan
pid_j=id_jur.id_j
endscan

первичный ключ наподобии счетчика. Пытаюсь вставить данные новых сотрудников из таблицы sotrud. Для этого сначала нужно добавиить запись в sys_j
SCAN
pid_j=INT(pid_j)+1
d=date()
ks=ALLTRIM(sotrud.k)
fio=ALLTRIM(sotrud.fio)
=SQLEXEC(lnConn,'INSERT INTO sys_j (id_j,dat) VALUES (?pid_j,?d)')
=SQLEXEC(lnConn,'INSERT INTO sotrud (id_j,k,fio) VALUES (?pid_j,?ks,?fio)')
endscan
pid_j увеличивается лишь один раз. Что пишу неправильно
...
Рейтинг: 0 / 0
помогите найти ошибку
    #36599464
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MARGARITA23,

Записи в БД вставляются?
...
Рейтинг: 0 / 0
помогите найти ошибку
    #36600056
MARGARITA23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вставляется только одна запись
...
Рейтинг: 0 / 0
помогите найти ошибку
    #36600077
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: MARGARITA23
> Подключаюсь к БД oracle и запоминаю последний первичный ключ:
> scan
> pid_j=id_jur.id_j
> endscan

А для чего этот скан? Ведь если нужен последний(максимальный) элемент, то можно было написать по другому сам запрос на
получение, что-то типа так:
Код: plaintext
1.
2.
3.
4.
=SQLEXEC(lnConn,'select top 1 id_j from sys_j order by id_j desc', "id_jur")
* И после выполнить простое присвоение, проверив наличие результата
If Used("id_jur") then
    pid_j=id_jur.id_j
EndIf


Сам скан вроде правильный, только не понятно скан какой таблицы выполняется?
Перед сканом не мешало-бы поставить
Код: plaintext
1.
2.
3.
Select sotrud
Go Top
Scan
....

> pid_j=INT(pid_j)+1

И непонятно, зачем приводить к целому и так целое значение?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
помогите найти ошибку
    #36604869
MARGARITA23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за помощь, все заработало
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите найти ошибку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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