| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Query1:Parameter 'pNAME' not found |
| Автор: bomberman 8.5.2009, 21:55 | ||||||
| Приветствую, господа! Постановка задачи Необходимо добавить новую запись в таблицу. (Только начинаю работать в 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
Спасибо за помощь! |
| Автор: Данкинг 8.5.2009, 22:08 | ||
А параметрам значение задать не хочешь?
|
| Автор: bomberman 8.5.2009, 22:57 | ||||||||||
Извиняюсь, может, за банальные вопросы, не силен в тонкостях этих материй, только учусь 1. Где вставлять этот код для присвоения значений перед/вместо/после:
2. Какая глобальная цель в задании значений параметрам приследуется, если моя цель - это ввести данные в TDBEdit, чтобы они потом добавились в таблицу БД в качестве новой записи 3. И такой вопрос: я видел в примерах, что для модификации данных в обработчике OnUpdateRecord пишут:
а для добавления новой записи в OnUpdateRecord:
В чем смысл и разница? |
| Автор: Dmi3ev 8.5.2009, 23:13 | ||||
а тебе говорит что не найден параметр pNAME, его ты где объявил? |
| Автор: bomberman 8.5.2009, 23:33 | ||||
Наверно меня конкеретно на..дурили) но сказали что типо Parameters.ParamByName('pID') и объявляет заодно параметр (в данном случае pID). Типо Parameters - это некий глобальный кэш что-ли, где хранятся все параметры и добавляются и хранятся. Дело в том, что если попытаться добавить новый параметр в Query1.Params там в списке параметров, то имеющаяся там кнопочка для добавления новых параметров неактивна |
| Автор: Данкинг 8.5.2009, 23:42 | ||
Зачем добавлять - делай как у меня в примере. |
| Автор: Dmi3ev 8.5.2009, 23:43 | ||||||||
Есть запрос, у него есть параметры, у другого запроса другие параметры , у третьего ваще нет... хз, по-моему это бред... даже попробуй два Query кинуть на форму, и посмотри параметры у одного, и параметры для дргого... Добавлено через 7 минут и 26 секунд
это тоже как-то странно... можно не усложнять 1) есть запрос на выборку
кстати он работает? 2) надо добавить в таблицу новое поле
или с Ораклом так не прокатывает??? Кстати еще совет, никогда не называть поле NAME, MONEY, DATE, ... это служебные слова, можешь когда-нибудь столкнуться |
| Автор: bomberman 8.5.2009, 23:53 | ||||
Уговорил дружище, сейчас только пойду.. вхомячу чего-нибудь |
| Автор: Данкинг 9.5.2009, 00:18 | ||
Не новое поле, а новую запись ты добавляешь, не путай bomberman' а!
Да, вот это правильно: name, index, prim, recno - так полей лучше не называть. |
| Автор: Dmi3ev 9.5.2009, 01:24 | ||||
ок, согласен, тупо сказал...
просто по-моему это логично, ведь переменные именами типов данных или функций или директив, или... не возникает желания называть... |
| Автор: Quatrox7m 10.6.2009, 11:57 | ||
| Читал читал,так ничего из вышенаписаного непонял: Приветсвую. Подскажите, а в чем у меня проблема?
на 5 строке выдает ошибку: ADOQuery2: Parameter 'par1' not found |
| Автор: Данкинг 10.6.2009, 12:20 | ||
Бывают такие глюки с Select'ом. Как с ними правильно бороться - не знаю, я в случае их появления делаю запрос без параметров, просто одной строкой с переменными. |
| Автор: Quatrox7m 10.6.2009, 12:46 |
| пробуем одной строкой.... |
| Автор: Romikgy 10.6.2009, 13:31 | ||
|
| Автор: Quatrox7m 10.6.2009, 13:40 | ||||
ох уж эти равно с двумя точками))Сенкс |
| Автор: Данкинг 10.6.2009, 14:33 |
А, верно, я и не заметил в твоём коде. |