Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / DAO передача параметров / 13 сообщений из 13, страница 1 из 1
22.10.2013, 14:46
    #38436994
FullKettle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
Приветствую всех.
Есть проект, старая и новая версия. На С++Builder. Компоненты DAO. Отличие в проектах - в новом используется "модифицированная" процедура с увеличенным кол-вом входных параметров. Плохо знаю Оракл, и, возможно, ошибся веткой. Но..
Если запускать старую версию на модифицированной схеме Oracle - ошибка "Ошибочное число и типы аргументов". Как сделать чтобы работало? Процедура по кол-ву параметров выдает select из таблицы, кол-во полей не поменялось
...
Рейтинг: 0 / 0
22.10.2013, 14:54
    #38437015
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
FullKettleКомпоненты DAO.
Не верю. Скорее всё-таки ADO или DOA. В любом случае чтобы вызвать процедуру с меньшим
числом параметров, для остальных параметры должны быть заданы DEFAULT значения при её
объявлении. Если этого не сделано (я судя по ошибке явно нет) - в морг, к тому чудаку,
который поменял ей число параметров.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.10.2013, 15:22
    #38437073
FullKettle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
Dimitry SibiryakovFullKettleКомпоненты DAO.
Не верю. Скорее всё-таки ADO или DOA. В любом случае чтобы вызвать процедуру с меньшим
числом параметров, для остальных параметры должны быть заданы DEFAULT значения при её
объявлении. Если этого не сделано (я судя по ошибке явно нет) - в морг, к тому чудаку,
который поменял ей число параметров.

Извиняюсь, ошибся. Direct Oracle Access.
И ругается не на процедуру с select, а с insert. В таблице новое поле, NULL значения принимает. В самом инсерте это поле задано как NULL.
...
Рейтинг: 0 / 0
22.10.2013, 16:55
    #38437272
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
FullKettle,

В любом случае это проблема БД.
Вам надо в БД для "лишних" параметров задать DEFAULT-ы.
И при передаче параметров указывать их по имени, или неуказанные должны идти в конце списка параметров.
...
Рейтинг: 0 / 0
23.10.2013, 16:36
    #38438635
FullKettle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
MasterZivFullKettle,

В любом случае это проблема БД.
Вам надо в БД для "лишних" параметров задать DEFAULT-ы.
И при передаче параметров указывать их по имени, или неуказанные должны идти в конце списка параметров.

А это ошибка разве генерируется не компонентом, например, TOracleQuery? Определен перечень параметров в Variables. Компонент видит что в схеме другой набор...и exception.
...
Рейтинг: 0 / 0
23.10.2013, 16:58
    #38438687
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
FullKettleА это ошибка разве генерируется не компонентом, например, TOracleQuery?
Определен перечень параметров в Variables. Компонент видит что в схеме другой набор...и
exception.
Может видит, может нет. Ты же не говоришь как ты это процедуру вызываешь... При явном
указании запроса компонент ну никак не может такого делать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.10.2013, 17:38
    #38438775
FullKettle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
Dimitry SibiryakovFullKettleА это ошибка разве генерируется не компонентом, например, TOracleQuery?
Определен перечень параметров в Variables. Компонент видит что в схеме другой набор...и
exception.
Может видит, может нет. Ты же не говоришь как ты это процедуру вызываешь... При явном
указании запроса компонент ну никак не может такого делать.

У меня и SQL и Variables заполняются в designtime, динамически ничего не создаю.
...
Рейтинг: 0 / 0
23.10.2013, 18:38
    #38438862
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
FullKettle,

Какая вообще разница как они там заполняются ?
...
Рейтинг: 0 / 0
23.10.2013, 18:59
    #38438902
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
FullKettleУ меня и SQL и Variables заполняются в designtime

Но ты нам, конечно, этот SQL ни за что не покажешь. Постыдишься.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.10.2013, 11:00
    #38439439
FullKettle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
Dimitry SibiryakovFullKettleУ меня и SQL и Variables заполняются в designtime

Но ты нам, конечно, этот SQL ни за что не покажешь. Постыдишься.

Да проблема в том, что я не понимаю как компонент работает. Счас выложу пример кода
...
Рейтинг: 0 / 0
24.10.2013, 11:07
    #38439457
FullKettle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE OR REPLACE PROCEDURE set_data (
      p_number			IN   NUMBER,
      p_type			IN   NUMBER,		
      p_field_value             IN   VARCHAR2
   )
IS
BEGIN
 IF (p_type = 1) THEN
  INSERT INTO myTable a
    (a.number, a.field_value)
  VALUES (p_number, NULL);
  COMMIT;
 ELSIF (p_type = 2) THEN
  INSERT INTO myTable a
    (a.number, a.field_value)
  VALUES (p_number, p_field_value);
  COMMIT;
END IF;
END;


Вот код, на примере которого можно показать. Старая версия программа p_type присваивает 1, новая - 2. Добавлено в новой версии поле field_value и соответствующий входной параметр.
...
Рейтинг: 0 / 0
24.10.2013, 11:38
    #38439538
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
FullKettle,

Ещё раз, по буквам.
Тебе надо поставить на новый параметр дефолтное значение чтобы этот параметр стал необязательным для указания при вызове.

Если новый парамето должен быть обязательным, то придётся тебе пересобрать старую версию и добавить указание и этого нового параметра тоже.
...
Рейтинг: 0 / 0
24.10.2013, 11:40
    #38439545
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO передача параметров
Это на случай, если ты не знаешь, как добавлять дефолт

Код: plsql
1.
2.
3.
4.
5.
CREATE OR REPLACE PROCEDURE set_data (
      p_number			IN   NUMBER,
      p_type			IN   NUMBER,		
      p_field_value             IN   VARCHAR2 DEFAULT '1234'
   )
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / DAO передача параметров / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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