Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры FoxPro через ADO (Delphi) / 4 сообщений из 4, страница 1 из 1
28.05.2007, 11:47
    #34554779
Kaiden
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры FoxPro через ADO (Delphi)
Здраствуйте.
Есть небольшая база данных на VPF 7.0. Мне необходимо написать несколько программок в Delphi 7, работающих с этой базой через ADO.

И возникла такая проблемка. Все таблицы в этой базе данных содержат суррогатный ключ, который вычисляется по формуле макс_значение_ключа + 1. Ключ вычисляет хранимая процедура, которая в качестве параметров принимает имя таблицы и имя поля, для которого должен быть вычислен ключ, и возвращает новое значение ключа. Для всех полей, содержащих суррогатный ключ, в default value прописан вызов этой процедуры.

Проблема заключается в добавлении новых записей. Когда я работал в Фоксе, все было просто - я писал команду INSERT, опуская значение ключа, и Фокс автоматически подставлял туда выражение из default value, где был прописан вызов хранимой процедуры. В Delphi + ADO такой приём не проходит - очевидно, драйвер пытается вставить NULL value, не вызывая процедуру. Прямо вызвать хранимую процедуру у меня тоже не получилось - ни прямым обращением к ней в INSERT, ни через компонент ADOStoredProc.

Собственно, я вижу только один выход - рассчитывать значение ключа прямо в программе. Но это долго, муторно и как-то неправильно. Может, есть какой-то более простой выход?
...
Рейтинг: 0 / 0
28.05.2007, 12:18
    #34554884
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры FoxPro через ADO (Delphi)
Kaiden Ключ вычисляет хранимая процедура...Вообще-то в ADO это все должно работать. Скачайте последний VFP OLE DB provider 9.1 и установите его машину, где работает Ваша программа и посмортие, что получается...

Еще проблема может быть в том, что в хранимой процедуре использованы функции FoxPro, не поддерживаемые VFP OLE DB provider 9.1 - в это случае их просто надо будет заменить на другие...

Good luck!
...
Рейтинг: 0 / 0
28.05.2007, 12:25
    #34554911
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры FoxPro через ADO (Delphi)
Возможно поможет Посмотри
...
Рейтинг: 0 / 0
30.05.2007, 15:19
    #34561526
sar99
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры FoxPro через ADO (Delphi)
Добрый день.
У меня возникала зеркальная задача - вызвать в VFP
процедуру FIREBIRD и получить от нее значение.
Я вызывал процедуру через ADO с помощью command.execute
проедварительно запихав имя процедуры в select
и считывал выходной параметер.
Возможно Вам надо поступить также c процедурой VFP и уже значение этого
параметра (оно же значение ключа) использовать
в INSERT
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры FoxPro через ADO (Delphi) / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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