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

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

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

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

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

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

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

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

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

Да проблема в том, что я не понимаю как компонент работает. Счас выложу пример кода
...
Рейтинг: 0 / 0
DAO передача параметров
    #38439457
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
DAO передача параметров
    #38439538
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettle,

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

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

Код: 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
13 сообщений из 13, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / DAO передача параметров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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