Zapytanie wyświetlające dane dla zaznaczonych w CheckListBox miejscowości

0

Witam, mam checklistbox w którym zaznaczam (lub nie) kilka miejscowości i wykonuję zapytanie. To zapytanie wyświetla dane dla zaznaczonych miejscowości. Jeżeli żadna miejscowość nie jest zaznaczona to wyświetla dane dla wszystkich miejscowości.

Jak mogę to zrealizować??

3

Zadać zapytanie :)

select * from miejscowosc where IdMiejscowosc in (1,2,3,4)

Gdzie to co w 1,2,3,4 to lista ID zaznaczonych miejscowości w CheckListBox.

1

Można skorzystać z dynamicznego SQL'a.

create procedure GetCities
(
	@ids varchar(max)
)
as
begin
	declare @query varchar(max) = 'SELECT * FROM Cities c WHERE c.Id IN (' + @ids + ')'
	exec(@query)
end

Oczywiście zakładając, że wcześniej ładnie poukładasz sobie id'ki po przecinku :)

0

Nawiązując do tego co @grzesiek51114 napisał ja bym to zrobił tak:

CREATE PROCEDURE GetCities
(
    @ids VARCHAR(MAX)
)
AS
declare
@xmlID xml;
begin
  set @xmlID = @IDS;
  SELECT * FROM Cities c WHERE c.Id IN (SELECT Tab.Col.value('@ID','int')
        FROM @xmlID .nodes('/Cities/City') Tab(Col));
end;

oczywiście zamiast podzapytania można pokombinować z joinem itd ale piszę z głowy i nie chce mi się kombinować. Tak czy inaczej temat chyba nadaje się do bazy danych a nie delphi ...

1

Panowie, strzelacie z armaty do muchy. Wystarczy w kodzie zbudować sqla na podstawie zaznaczonych checkboxów, tak jak napisał @wloochacz

1 użytkowników online, w tym zalogowanych: 0, gości: 1