
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.05.2007, 11:47
|
|||
|---|---|---|---|
|
|||
Вызов хранимой процедуры FoxPro через ADO (Delphi) |
|||
|
#18+
Здраствуйте. Есть небольшая база данных на VPF 7.0. Мне необходимо написать несколько программок в Delphi 7, работающих с этой базой через ADO. И возникла такая проблемка. Все таблицы в этой базе данных содержат суррогатный ключ, который вычисляется по формуле макс_значение_ключа + 1. Ключ вычисляет хранимая процедура, которая в качестве параметров принимает имя таблицы и имя поля, для которого должен быть вычислен ключ, и возвращает новое значение ключа. Для всех полей, содержащих суррогатный ключ, в default value прописан вызов этой процедуры. Проблема заключается в добавлении новых записей. Когда я работал в Фоксе, все было просто - я писал команду INSERT, опуская значение ключа, и Фокс автоматически подставлял туда выражение из default value, где был прописан вызов хранимой процедуры. В Delphi + ADO такой приём не проходит - очевидно, драйвер пытается вставить NULL value, не вызывая процедуру. Прямо вызвать хранимую процедуру у меня тоже не получилось - ни прямым обращением к ней в INSERT, ни через компонент ADOStoredProc. Собственно, я вижу только один выход - рассчитывать значение ключа прямо в программе. Но это долго, муторно и как-то неправильно. Может, есть какой-то более простой выход? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.05.2007, 12:18
|
|||
|---|---|---|---|
Вызов хранимой процедуры FoxPro через ADO (Delphi) |
|||
|
#18+
Kaiden Ключ вычисляет хранимая процедура...Вообще-то в ADO это все должно работать. Скачайте последний VFP OLE DB provider 9.1 и установите его машину, где работает Ваша программа и посмортие, что получается... Еще проблема может быть в том, что в хранимой процедуре использованы функции FoxPro, не поддерживаемые VFP OLE DB provider 9.1 - в это случае их просто надо будет заменить на другие... Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.05.2007, 12:25
|
|||
|---|---|---|---|
Вызов хранимой процедуры FoxPro через ADO (Delphi) |
|||
|
#18+
Возможно поможет Посмотри ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.05.2007, 15:19
|
|||
|---|---|---|---|
|
|||
Вызов хранимой процедуры FoxPro через ADO (Delphi) |
|||
|
#18+
Добрый день. У меня возникала зеркальная задача - вызвать в VFP процедуру FIREBIRD и получить от нее значение. Я вызывал процедуру через ADO с помощью command.execute проедварительно запихав имя процедуры в select и считывал выходной параметер. Возможно Вам надо поступить также c процедурой VFP и уже значение этого параметра (оно же значение ключа) использовать в INSERT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1589242]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 334ms |

| 0 / 0 |
