Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TADOQuery: ошибка записи параметров, Не могу записать параметры SQL-запроса 
:(
    Опции темы
shooroop
  Дата 4.5.2005, 15:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Help!!! Горю с дипломом!!!

Работаю с таблицами Paradox
В дизайне в ADOQuery1.SQL пишу:
Select Q1, Q2 from voprosi where Q12=:OBRAZOVANIE

потом програмно записываю значение в этот параметр:
ADOQuery1.Parameters.ParamByName('OBRAZOVANIE').Value.AsString:= ComboBox1.Text;

но при этом появляется ошибка!: Class EOleError with message 'Variant doesnot reference anautomation object' smile
В чем дело,блин smile !!!
  Вверх
AntonSaburov
Дата 4.5.2005, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Попробуй просто

ADOQuery1.Parameters.ParamByName('OBRAZOVANIE').Value := ComboBo1.Text;
PM MAIL WWW ICQ   Вверх
Bes
Дата 4.5.2005, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



или
ADOQuery1.Parameters[0].Value := ComboBo1.Text;
PM MAIL   Вверх
Guest
Дата 5.5.2005, 09:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо! Но, параметры вроде записываются но при открытии ADOQuery1 постоянно вылетает ошибка:

Parameter object is improperly defined. Inconsistent or incomplete information was provided.
  Вверх
shooroop
Дата 5.5.2005, 09:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо! Но, параметры вроде записываются но при открытии ADOQuery1 постоянно вылетает ошибка:

Parameter object is improperly defined. Inconsistent or incomplete information was provided.
  Вверх
Bes
Дата 5.5.2005, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Приведи весь код, как открываешь? и добавлял ли ты поля в сам квери (двойной щелчек на компоненте)
PM MAIL   Вверх
shooroop
Дата 5.5.2005, 13:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











При добавлении полей в квери вылетает та же ошибка:
Parameter object is improperly defined. Inconsistent or incomplete information was provided. smile


А код такой:

Код

with DMBD.AdoQuery1 do
   begin
     Close;
     DMBD.AdoQuery1.Parameters.ParseSQL(DMBD.Zapros.SQL.Text, true);
     DMBD.AdoQuery1.Parameters.ParamByName('OBRAZOVANIE').Value:= ComboBox1.Text;
     DMBD.AdoQuery1.Parameters.ParamByName('STAJ').Value:=ComboBox2.Text;
     DMBD.AdoQuery1.Parameters.ParamByName('PERSONAL').Value:=ComboBox3.Text;
     DMBD.AdoQuery1.Parameters.ParamByName('VOZR1').Value:=SpinEdit1.Value;
     DMBD.AdoQuery1.Parameters.ParamByName('VOZR2').Value:=SpinEdit2.Value;

     if ftMuj.Checked then
                      DMBD.AdoQuery1.Parameters.ParamByName('POL').Value:=true
                      else
                      DMBD.AdoQuery1.Parameters.ParamByName('POL').Value:=false;
     Open;
     end;

  Вверх
Bes
Дата 5.5.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Е-мое! Еее-мое!
Давай так

Код

with DMBD do
begin
     AdoQuery1.active:=false;

     AdoQuery1.sql.text:='Текст твоего запроса :праметр0 ляляля :параметр1 лялялялля и т.п.';
     AdoQuery1.Parameters[0].value:=ComboBox1.Text;
     AdoQuery1.Parameters[1].value:=ComboBox2.Text;
     AdoQuery1.Parameters[2].value:=ComboBox3.Text;
     AdoQuery1.Parameters[3].value:=SpinEdit1.Value;
     AdoQuery1.Parameters[4].value:=SpinEdit2.Value;
     AdoQuery1.Parameters[5].value:=ftMuj.Checked;

     AdoQuery1.active:=true;
end;


Это сообщение отредактировал(а) Bes - 5.5.2005, 15:09
PM MAIL   Вверх
shooroop
Дата 5.5.2005, 15:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











При выполнении AdoQuery1.active:=true; выскакивает та же фигня:
Parameter object is improperly defined. Inconsistent or incomplete information was provided


  Вверх
Bes
Дата 5.5.2005, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Удали эту кверю и добавь на форму заново плюс кнопку в которую только этот код. больше ничего не добавляй/меняй. кстати, может у тебя проблема с ADOConnection?
PM MAIL   Вверх
shooroop
Дата 6.5.2005, 11:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Слушай сделал так как ты сказал:
Код

procedure TForm_Filter.BitBtn1Click(Sender: TObject);
begin
with DMBD do
   begin
      Zapros.Active:=false;
       Zapros.sql.text:='Select Q1, Q2,Q3,Q4,Q5,Q6,Q7 from voprosi, anketi Where AnketaID=VoprosID AND    podrazd=:PODRAZDELENIE';
       
       Zapros.Parameters[0].Value:=ftPodrazd.Text;
       Zapros.Active:=true;
   end;
end;


Теперь другая ошибка:
[Microsoft] [Драйвер ODBC Paradox] Слишком мало параметров. Требуется 3.



  Вверх
Bes
Дата 6.5.2005, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



отдели знак "=" пробелами
PM MAIL   Вверх
Guest
Дата 2.11.2005, 07:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вместо active:=false и active:=true лучше писать close и open

а перед Zapros.Parameters[0].Value:=ftPodrazd.Text; напиши
Zapros.Parameters.ParseSQL(Zapros.SQL.Text, True);
  Вверх
Bes
Дата 4.11.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Цитата
Вместо active:=false и active:=true лучше писать close и open

а перед Zapros.Parameters[0].Value:=ftPodrazd.Text; напиши
Zapros.Parameters.ParseSQL(Zapros.SQL.Text, True);

незнаю, чем это лучше
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.