Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

где ошибка ?   Найти похожие ветки 

 
Golik   (2006-10-30 19:40) [0]

datamodule3.ADOQuery1.SQL.Text := "select * from Arenda where 1=1";
if CheckBox1.Checked =true then
datamodule3.ADOQuery1.SQL.Add("and комнат =:koll");
if CheckBox2.Checked =true then
datamodule3.ADOQuery1.SQL.Add("and комнат =:kol or комнат =:koll ");
datamodule3.ADOQuery1.Parameters.Clear;
datamodule3.ADOQuery1.Parameters.ParseSQL(datamodule3.ADOQuery1.SQL.Text,true);
if CheckBox1.Checked =true then
 datamodule3.ADOQuery1.Parameters.ParamByName("koll").Value:="1";
if CheckBox2.Checked =true then
 datamodule3.ADOQuery1.Parameters.ParamByName("kol").Value:="2";
datamodule3.ADOQuery1.open;

end;


выдает ошибку "неправильно определен объект Parametr , предоставленны несовместимые или неполные данные"

суть запроса такая:
если отмечен 1 чекбокс то запрос выдает 1-комнатные квартиры, если 2 то 2-х комнатные, а если оба сразу то должы выдаваться и 1-е и 2-е квартиры!


 
Anatoly Podgoretsky ©   (2006-10-30 20:14) [1]

В какой строке?


 
Desdechado ©   (2006-10-30 20:34) [2]

к сути вопроса не относится, но все же:
1. if CheckBox2.Checked =true - архаизм
2. Value:="2"; - неужто число комнат задается строкой в БД?
3. and комнат =:koll and комнат =:kol or комнат =:koll - это вообще-то 3 параметра, причем явно описанное тобой условие не сочетается с этим предикатом


 
MikePetrichenko ©   (2006-10-30 20:41) [3]


> где ошибка ?

В ДНК


 
Golik   (2006-10-30 22:20) [4]

а что число комнат не может задаваться строкой в БД ?


 
Desdechado ©   (2006-10-30 22:42) [5]

может, если число шестнадцатиричное
но, думаю, клиенты не извращенцы, да и больше 9 комнат редко просят :)

ЗЫ не на то обращаешь внимание


 
Leonid Troyanovsky ©   (2006-10-30 22:45) [6]


> Desdechado ©   (30.10.06 22:42) [5]

> но, думаю, клиенты не извращенцы, да и больше 9 комнат редко
> просят :)


Смешно будет, если спросят.
Я б не взялся объясняться.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2006-10-30 22:46) [7]

> Golik  (30.10.2006 22:20:04)  [4]

А можно ли строку считать числом, никто тогда не мешает записать Ю


 
Anatoly Podgoretsky ©   (2006-10-30 22:49) [8]

datamodule3.ADOQuery1.SQL.Text := "select * from Arenda where 1=1";

Это еще зачем?

datamodule3.ADOQuery1.SQL.Add("and комнат =:koll and  комнат =:kol or комнат =:koll ");

Вот это уже серьезнее, третьему параметру не присвоено значение.


 
Golik   (2006-10-30 23:03) [9]


var grpOpen:boolean;
begin
datamodule3.ADOQuery1.SQL.Text := "select * from Arenda where 1=1";
grpOpen:=false;

if suiCheckBox11.Checked  then
begin
if grpOpen then datamodule3.ADOQuery1.SQL.Add("or")
 else datamodule3.ADOQuery1.SQL.Add("and (");
datamodule3.ADOQuery1.SQL.Add("комнат = 1");
grpOpen:=true;
end;

if suiCheckBox12.Checked then
begin
if grpOpen then datamodule3.ADOQuery1.SQL.Add("or")
 else datamodule3.ADOQuery1.SQL.Add("and (");
datamodule3.ADOQuery1.SQL.Add("комнат = 2");
grpOpen:=true;
end;

if suiCheckBox13.Checked then
begin
if grpOpen then datamodule3.ADOQuery1.SQL.Add("or")
 else datamodule3.ADOQuery1.SQL.Add("and (");
datamodule3.ADOQuery1.SQL.Add("комнат = 3");
grpOpen:=true;
end;
if suiCheckBox14.Checked then
begin
if grpOpen then datamodule3.ADOQuery1.SQL.Add("or")
 else datamodule3.ADOQuery1.SQL.Add("and (");
datamodule3.ADOQuery1.SQL.Add("комнат = 4");
grpOpen:=true;
end;

 if suiCheckBox15.Checked then
begin
if grpOpen then datamodule3.ADOQuery1.SQL.Add("or")
 else datamodule3.ADOQuery1.SQL.Add("and (");
datamodule3.ADOQuery1.SQL.Add("комнат = 5");
grpOpen:=true;
end;



все работает!
но если добавить в этот код этот кусок

 if suiCheckBox2.Checked then
begin
if grpOpen then datamodule3.ADOQuery1.SQL.Add("or")
 else datamodule3.ADOQuery1.SQL.Add("and (");
datamodule3.ADOQuery1.SQL.Add("Raion = 1");
grpOpen:=true;
end;

то эффекта никакого нет ! почему ????



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

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.064 c
15-1162149015
Ketmar
2006-10-29 22:10
2006.11.19
только не мой мозг...


2-1162297517
vldm
2006-10-31 15:25
2006.11.19
Ресурсы и Delphi2006


15-1162190909
Prohodil Mimo
2006-10-30 09:48
2006.11.19
Как проверить рабочий ли COM порт?


2-1162398499
vain
2006-11-01 19:28
2006.11.19
Перерисовка (Repaint и др.)


3-1158587784
Vedem
2006-09-18 17:56
2006.11.19
Почему IF @@ERROR <> 0 не выполняется