Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Внизгде ошибка ? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c