Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADOQuery не видит параметров при загрузке запроса [D5, D7, Win2k, WinXP]


Dust ©   (2005-09-07 20:07:00) 

Вот убей не понимаю в чём дело...
Самое интересное в том, что при первом вызовет параметры есть, а уже при втором вызове я получаю эксцепшн на тему поле в таблице не может быть равно нулл.
procedure RegSMS (const SRCaddr, Short_message, OPname : String);
begin
 with Form1 do
  begin
   ADOQuery1.Active:=false;
   ADOQuery1.SQL.Clear();
   ADOQuery1.SQL.Append('INSERT INTO InputSMS');
   ADOQuery1.SQL.Append('                      (Tel_num, Input_SMS, IsPart, Inp_time, OPERname)');
   ADOQuery1.SQL.Append('VALUES     (:Tel_num, :SMS, 0, { fn NOW() },  :OPERname);');
   ADOQuery1.ParamCheck :=true;
   //установка параметров
   ADOQuery1.Parameters.ParamByName('Tel_num').Value := SRCaddr;
   if length(Short_message) <>0 then
    ADOQuery1.Parameters.ParamByName('SMS').Value:=Short_message
   else
    ADOQuery1.Parameters.ParamByName('SMS').Value:='[нет данных]';
   ADOQuery1.Parameters.ParamByName('OPername').Value :=OPname;
   ADOQuery1.ExecSQL;
   ADOQuery1.Active:=false;
  end;
end;


Dust   (2005-09-08 11:34:00) [1]

ADOQuery1.Parameters.Refresh
я делать пытался, и вообще что только не пытался делать...
короче я на эту идею забил
забил все запросы в десюгн тайм и юзаю для одного запроса один компонент ADOQuery//


Slym   (2005-09-08 11:27:00) [2]

ADOQuery1.ParamCheck :=true;
ADOQuery1.SQL.Append('INSERT INTO InputSMS');
  ADOQuery1.SQL.Append('                      (Tel_num, Input_SMS, IsPart, Inp_time, OPERname)');
  ADOQuery1.SQL.Append('VALUES     (:Tel_num, :SMS, 0, { fn NOW() },  :OPERname);');


Dust   (2005-09-08 10:59:00) [3]

2 Карелин Артем
делал, не помогает
про значение параметров при втором вызове сказать пока не могу
про синхронизацию - перед вызовом процедуры, да и вообще всех процедур работающих с лог-файлом и запросами происходит вход в критическую секцию, она одна на весь проект и на все потоки.


Карелин Артем   (2005-09-07 21:52:00) [4]

ADOQuery1.Parameters.Refresh надобно делать для получения. Adotest проект смотри в демках Дельфи.


Anatoly Podgoretsky   (2005-09-07 20:59:00) [5]

То есть формат нормальный и значение устанавливается на сервер.
Что скажешь про значение параметров при втором вызове?
Ну а раз речь про потоки, то что скажешь про синхронизацию.


Dust   (2005-09-07 20:45:00) [6]

Anatoly Podgoretsky
MS SQL Server, я в энтерпрайс мененджере создавал запросы а потом просто копировал их в делфю.


Dust   (2005-09-07 20:44:00) [7]

народ, неужели никто ничего не может сказать по этому поводу?
кстати, ещё одна подробность -
процедура вызывается из разных потоков


Anatoly Podgoretsky   (2005-09-07 20:43:00) [8]

Что за диалект такой { fn NOW() },
Какое значение параметров при втором вызове
Зачем второй ADOQuery1.Active:=false;


Наверх

Титульная страница Поиск, карта сайта Написать письмо