Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не получается через ADO прочитать свежесозданное ключевое поле / 4 сообщений из 4, страница 1 из 1
06.02.2005, 13:16
    #32902969
DukeSS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается через ADO прочитать свежесозданное ключевое поле
Есть задача: из БД (Jet 4.0, MS SQL, MySQL) перегнать данные в Postgre. В качестве интерфейса используется ADO.
Как работает:
В Postgre выполняется запрос "SELECT * from какая_то_таблица;", затем создается запись путём вызова Append, поля заполняются из аналогичной таблицы в другой БД путём копирования значений каждого из полей.
После этого вызывается Post и производится попытка чтения ключевого поля (serial) (нужно для корректной отработки связей в других копируемых таблицах).

Проблема:
Вместо порядкового номера записи в таблице возвращается 0.
При последующих чтениях значения ключа возвращаются нормально.
Вызов Update не помогает.


Каким образом можно решить проблему? Или воспользоваться универсальным каким-нибудь конвертером? БД не очень сложная, 9 таблиц.
...
Рейтинг: 0 / 0
07.02.2005, 00:22
    #32903243
DukeSS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается через ADO прочитать свежесозданное ключевое поле
Решение пришло оттуда, откуда его, собственно, никто не ждал: в классе ADOQuery есть свойство RecNo, которое как раз возвращает номер записи, который определяется в поле с модификатором PRIMARY KEY. Однако в документации честно предупреждают, что не все СУБД его могут поддерживать.
...
Рейтинг: 0 / 0
07.02.2005, 12:03
    #32903750
assa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается через ADO прочитать свежесозданное ключевое поле
в DAO я делаю (!в том же коннекшене) :
Код: plaintext
plid = cn.OpenRecordset("SELECT currval('имя_счетчика');")( 0 )
сразу после вставки.
где карвал берется от того счетчика, который соответствует вашему serial полю. (см доку на currval())
В АДО, полагаю, что-то в этом духе.
...
Рейтинг: 0 / 0
09.02.2005, 23:54
    #32909172
DukeSS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается через ADO прочитать свежесозданное ключевое поле
Спасибо. :-)
В очередной раз убеждаюсь, что люди творят, что хотят, не особо оглядываясь на существующие стандарты и не пытаясь создать новые...
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не получается через ADO прочитать свежесозданное ключевое поле / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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