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

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

DataSet и передача параметров (MySQL5.1) [D7, XP]


Страницы:   1 2

Анна ©   (2010-06-09 14:42:00) 

Такой вот Select:

DataSet_master.CommandText:='select a.id_ssd,ltrim(ves.board_number) board_number,a.datetime,r_area.red_area,a.id_area,c.koll,'+
'case when d.id_ssd is null and f.id_ssd is null then '''' else ''korr'' end prizn_korr '+
'from hssd.hssd a '+
'left join '+
'(select a.id_ssd,count(*) koll from  '+
'(select aa.id_ssd,aa.id_res   '+
'from hssd.hssd_catch_fish aa,hssd.hssd bb   '+
'where  aa.permit is not null and aa.permit<>'''' and aa.id_ssd=bb.id_ssd    '+
'and bb.id_ves=:param_id_ves  '+
'group by id_ssd,permit)a    '+
'group by a.id_ssd) c on a.id_ssd=c.id_ssd    '+
'left join '+
'(select a.id_ssd from hssd.hssd a,hssd.hssd_catch_fish b '+
'where a.id_ssd=b.id_ssd and a.id_ves=:param1_id_ves    '+
'and b.blok<>10) d on a.id_ssd=d.id_ssd '+
'left join '+
'(select a.id_ssd from hssd.hssd a,hssd.hssd_catch_anim b '+
'where a.id_ssd=b.id_ssd and a.id_ves=:param2_id_ves   '+
'and b.blok<>10) f on a.id_ssd=f.id_ssd '+
'join '+
'(select id_ves,board_number from hssd.ves where date_expiration_ves is null) ves '+
' on ves.id_ves=a.id_ves  '+
'join hssd.r_area on r_area.id_area=a.id_area '+
'where a.id_ves=:param3_id_ves   ';

DataSet_master.Parameters.ParamByName('param_id_ves').Value:=strtoint(ss_id_ves) ;
DataSet_master.Parameters.ParamByName('param1_id_ves').Value:=strtoint(ss_id_ves );
DataSet_master.Parameters.ParamByName('param2_id_ves').Value:=strtoint(ss_id_ves );
DataSet_master.Parameters.ParamByName('param3_id_ves').Value:=strtoint(ss_id_ves );


Данные выбираются правильно только в том случае, если я по тексту присваиваю  каждый раз новый параметр. Если везде в каждом подзапросе присваиваю один параметр param_id_ves, то набор данных содержит 0 записей.
Я делаю неправильно. Ведь нельзя же плодить столько  параметров с одинаковыми значениями... Тем более мне еще дату вставлять нужно тоже 4 раза. Подскажите пож-та как грамотно присваивать параметры, если в запросе нужно неск. раз передать одно и тоже значение?


Медвежонок Пятачок   (2010-06-09 15:15:00) [21]

я и говорю, что значения параметров разные в двух случаях.
в первом они такие, что записи попадают в условие.
во втором они такие, что записей удовлетворяющих условиям нет.


Анна   (2010-06-09 15:11:00) [22]


> Медвежонок Пятачок ©   (09.06.10 15:03) [5]

Я же писала в теме, что запрос формирует НД. Но только в том случае если присваиваю 4 параметра с одним и темже значением. (или естественно ставлю в "лоб" значение)


Анна   (2010-06-09 15:07:00) [23]


> RWolf ©   (09.06.10 15:04) [6]

В ADOConnection1 пишу так:

Provider=MSDASQL.1;Password=123;Persist Security Info=True;User ID=****;Data Source=mrcm_201;Extended Properties="DSN=mrcm_201;OPTION=0;PWD=123;PORT=0;SERVER=192.168.70.201;UID=****"


Медвежонок Пятачок   (2010-06-09 15:06:00) [24]

видно же что адо


RWolf   (2010-06-09 15:04:00) [25]

какой набор компонентов используется в программе для доступа к MySQL?


Медвежонок Пятачок   (2010-06-09 15:03:00) [26]

то набор данных содержит 0 записей.

Значит значения у них  такие, что ни одна запись не поапала в условие Where


Анна   (2010-06-09 14:58:00) [27]


> Медвежонок Пятачок ©   (09.06.10 14:50) [3]

У меня и так все имена параметров уникальны. 'param_id_ves','param1_id_ves','param2_id_ves' ....
Наоборот, хотелось бы использовать одно имя.


Медвежонок Пятачок   (2010-06-09 14:50:00) [28]

не надо понимать.
надо переименовать параметры.
чтобы имена были уникальны


Анна   (2010-06-09 14:47:00) [29]


> Медвежонок Пятачок ©   (09.06.10 14:46) [1]

Не поняла вас.


Медвежонок Пятачок   (2010-06-09 14:46:00) [30]

переименовать параметры.


Страницы:   1 2

Наверх

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