![]() |
|
![]() ![]() ![]() |
|
bomberman |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 4.4.2008 Где: Брест Репутация: нет Всего: нет |
Приветствую, господа!
Постановка задачи Необходимо добавить новую запись в таблицу. (Только начинаю работать в Delphi 5.0 с БД (Oracle 10)) Проблема При попытке выполнения нижеуказанного кода Delphi выдается сообщение об ошибке: Query1: Parameter 'pNAME' not found Интересующие вопросы 1. Где ищутся эти параметры исполняемой программой (в данном случае где ищется pNAME)? (Предполагаемые варианты ответа: в SQL-выражении свойства UpdateSQL1.InsertSQL) 2. Почему все же он не может найти этот параметр? (Предполагаемые варианты ответа: ошибка в данном PL/SQL-выражении, ищет в др. PL/SQL- выражении, ищет где-то еще) 3. И извечный вопрос: что делать, чтобы все же корректно добавить новую запись в БД (на основе представленных здесь исходных данных)? (Предполагаемые варианты ответа: ) Исходные данные (на форме имеются компоненты типов: TDBEdit, TUpdateSQL, TQuery) 1. PL/SQL-выражение в свойстве SQL компонента Query1:
2. В свойстве Params компонента Query1 определен параметр pID: Value=0, ParamType=ptInput, DataType=ftInteger 3. В свойстве InsertSQL компонента UpdateSQL1 находится PL/SQL-выражение (ID- на этом поле триггер висит автоинкрементный):
4. Код обработчика события Query1.OnNewRecord
Спасибо за помощь! |
||||||
|
|||||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
А параметрам значение задать не хочешь?
![]()
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
bomberman |
|
||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 4.4.2008 Где: Брест Репутация: нет Всего: нет |
Извиняюсь, может, за банальные вопросы, не силен в тонкостях этих материй, только учусь 1. Где вставлять этот код для присвоения значений перед/вместо/после:
2. Какая глобальная цель в задании значений параметрам приследуется, если моя цель - это ввести данные в TDBEdit, чтобы они потом добавились в таблицу БД в качестве новой записи 3. И такой вопрос: я видел в примерах, что для модификации данных в обработчике OnUpdateRecord пишут:
а для добавления новой записи в OnUpdateRecord:
В чем смысл и разница? |
||||||||||
|
|||||||||||
Данкинг |
|
||||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Пример из моей программы:
(zapros - это Query)
Я с DBEdit работал весьма мало, но вроде как там же отображается текущее поле таблицы. При чём тут добавление новой строчки? Какие-то непонятные примеры: зачем параметру присваивать значение поля таблицы? Точнее, для какой-то конкретной задачи это, возможно, и нужно, но говорить о какой-то универсальности этого примера я бы не стал. -------------------- There's nothing left but silent epitaphs. |
||||||
|
|||||||
Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: нет Всего: 41 |
а тебе говорит что не найден параметр pNAME, его ты где объявил? -------------------- |
||||
|
|||||
bomberman |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 4.4.2008 Где: Брест Репутация: нет Всего: нет |
Наверно меня конкеретно на..дурили) но сказали что типо Parameters.ParamByName('pID') и объявляет заодно параметр (в данном случае pID). Типо Parameters - это некий глобальный кэш что-ли, где хранятся все параметры и добавляются и хранятся. Дело в том, что если попытаться добавить новый параметр в Query1.Params там в списке параметров, то имеющаяся там кнопочка для добавления новых параметров неактивна |
||||
|
|||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Зачем добавлять - делай как у меня в примере. ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Dmi3ev |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: нет Всего: 41 |
Есть запрос, у него есть параметры, у другого запроса другие параметры , у третьего ваще нет... хз, по-моему это бред... даже попробуй два Query кинуть на форму, и посмотри параметры у одного, и параметры для дргого... Добавлено через 7 минут и 26 секунд
это тоже как-то странно... можно не усложнять 1) есть запрос на выборку
кстати он работает? 2) надо добавить в таблицу новое поле
или с Ораклом так не прокатывает??? Кстати еще совет, никогда не называть поле NAME, MONEY, DATE, ... это служебные слова, можешь когда-нибудь столкнуться -------------------- |
||||||||
|
|||||||||
bomberman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 4.4.2008 Где: Брест Репутация: нет Всего: нет |
Уговорил дружище, сейчас только пойду.. вхомячу чего-нибудь ![]() |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Не новое поле, а новую запись ты добавляешь, не путай bomberman' а! ![]()
Да, вот это правильно: name, index, prim, recno - так полей лучше не называть. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: нет Всего: 41 |
ок, согласен, тупо сказал...
просто по-моему это логично, ведь переменные именами типов данных или функций или директив, или... не возникает желания называть... -------------------- |
||||
|
|||||
Quatrox7m |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.6.2009 Репутация: нет Всего: нет |
Читал читал,так ничего из вышенаписаного непонял:
Приветсвую. Подскажите, а в чем у меня проблема?
на 5 строке выдает ошибку: ADOQuery2: Parameter 'par1' not found Это сообщение отредактировал(а) Quatrox7m - 10.6.2009, 12:02 |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Бывают такие глюки с Select'ом. Как с ними правильно бороться - не знаю, я в случае их появления делаю запрос без параметров, просто одной строкой с переменными. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Quatrox7m |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.6.2009 Репутация: нет Всего: нет |
пробуем одной строкой....
|
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 4 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |