Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Вниз

В чём причина появления ошибки: «parameter Kod not found»?(ADO)   Найти похожие ветки 

 
NewSer   (2008-03-16 10:23) [0]

В чём может быть причина появления ошибки:
«parameter "Kod" not found»
при повторном запуске процедуры?
If new then begin
  if ADOQueryS.Active then ADOQueryS.Close;
  ADOQueryS.Parameters.Clear;
  ADOQueryS.SQL.Text:="INSERT INTO TableM (Kod, Nomer) "+
   "VALUES (:Kod, : Nomer)";
  ADOQueryS.Parameters.ParamValues["Kod"]:=SpinEditKod.Value;
  ADOQueryS.Parameters.ParamValues[" Nomer "]:=LabeledEditO.Text;
  ADOQueryS.ExecSQL;
  ADOQueryS.Close;
 end
 else begin
  if ADOQueryS.Active then ADOQueryS.Close;
  ADOQueryS.Parameters.Clear;
  ADOQueryS.SQL.Text:="UPDATE TableM SET Kod=:Kod WHERE Nomer =:Nom";
  ADOQueryS.Parameters.ParamValues["Kod"]:=SpinEditKod.Value;
  ADOQueryS.Parameters.ParamValues[" Nom "]:=LabeledEditO.Text;
  ADOQueryS.ExecSQL;
  ADOQueryS.Close;
End;

Причём! UPDATE после INSERT срабатывает нормально, а повторный UPDATE вызывает эту ошибку!
С INSERT то-же самое: например не получилось записать данные (ввели существующее значение ключевого поля), повторная попытка требует перезапуска программы.


 
sniknik ©   (2008-03-16 10:57) [1]

причина вот в этом
> ADOQueryS.Parameters.Clear;
в данном коде это не нужно

еще более веская причина в использовании ADOQuery, изза которого(под влиянием) пишется такой убогий код... там где нужен ADOCommand.

и самая глобальная причина в подходе (можно сказать психологии программирования), который заставляет экономить(???) то что не нужно (компоненты положенные на форму) за счет ресурсов и быстродействия (все бывает за счет чегото).
так тут по правильному требуется 2 компонента ADOCommand, чтобы системе не приходилось постоянно "препарить" одни и теже запросы, и д.р. а делать только необходимое - присвоить параметры и выполнить.

т.е. если бы писал правильным "стилем", правильными компонентами то даже близко бы к "проблеме" не подошел бы.


 
NewSer   (2008-03-16 11:06) [2]

Спасибо, sniknik, сейчас попробую!

> 2 компонента ADOCommand
Вы говорите правильно, но, например, в данном случае, у меня база находится под паролем (проверять 2 раза), два раза переписывать строку соединения....

А по-поводу ADOQuery - значит, Вы считаетет - на них экономить не стоит?

И ADOQueryS.Parameters.Clear - я всё делал по аналогичным рабочим примерам! Подобного "not found" там не возникало!


 
NewSer   (2008-03-16 11:17) [3]

Ещё раз спасибо, sniknik!

Сработало!
Но хотелось бы узнать:
>> И ADOQueryS.Parameters.Clear - я всё делал по аналогичным рабочим
>> примерам! Подобного "not found" там не возникало!


 
sniknik ©   (2008-03-16 11:38) [4]

> у меня база находится под паролем (проверять 2 раза), два раза переписывать строку соединения....
????
с идеологией даже хуже чем предполагал.
есть такой компонент ADOConnection который при работе с ADO ОБЯЗАТЕЛЕН к использованию, даже если больше ни одного ADO компонента не предвидится.

> А по-поводу ADOQuery - значит, Вы считаетет - на них экономить не стоит?
нет, я считаю что их надо снести нафиг с палитры, и не в коем случае не использовать (+ ADOTable, ADOStoredProc) особенно начинающим. не стоит травмировать неокрепшую психику корявой логикой...

> Но хотелось бы узнать:
просто везло. не было внесено 2х подряд одинаковых запросов. (при разных оно само сделает и клер параметрам и т.д. а если одинаковые, т.е. уже все сделано для того же самого ранее зачем парится повторно? а тут ты ему такое западло, взял и удалил то, что не просили...)


 
NewSer   (2008-03-16 11:44) [5]

Хм ))) всё-таки полезно не только книжки читать, но и на форумах общаться! )))

> есть такой компонент ADOConnection который при работе с ADO ОБЯЗАТЕЛЕН

а-а-а разобрался!!!
я подумал Вы про 2 - ADOConnection говорите )))
один то у меня есть! )))
По началу думал, что проблема в "обрыве" связи ADOQuery с ним!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
15-1202164568
Германн
2008-02-05 01:36
2008.04.13
Web-камера Genius Look 317


2-1205862569
Tovarisch
2008-03-18 20:49
2008.04.13
Не пишет первое слово


2-1205518291
La-la-Land
2008-03-14 21:11
2008.04.13
Интернет и файлы


2-1205431955
maxs
2008-03-13 21:12
2008.04.13
TTreeView с CheckBox ами


2-1205598021
DJ_UZer
2008-03-15 19:20
2008.04.13
Подсказка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский