|
|
|
| Запрос на выборку из поля статус
там в поле цифры стоят
1,2,3,4,5
условие в запросе на поле
iif([Forms]![FRM_Свободные_права]![Статус]=5;5;<5) | |
|
| |
|
|
|
| WHERE (([Forms]![FRM_Свободные_права]![Статус]=5 And [Статус]=5) Or ([Forms]![FRM_Свободные_права]![Статус]<5 And [Статус]<5)) | |
|
| |
|
|
|
|
|
SELECT dbo_vМЛ_ОбщаяТаблицаПрав.ПодвидПрав1, dbo_vМЛ_ОбщаяТаблицаПрав.ПодвидПрав2, dbo_vМЛ_ОбщаяТаблицаПрав.ПодвидПрав3, dbo_МЛ_Каналы.Наименование, dbo_ФИЛЬМ.Название, dbo_vМЛ_ОбщаяТаблицаПрав.Статус, dbo_vМЛ_ОбщаяТаблицаПрав.КодТерритории, [Forms]![FRM_Свободные_права]![Территория] AS КодТерр, dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав
FROM dbo_МЛ_Каналы INNER JOIN (dbo_vМЛ_ОбщаяТаблицаПрав INNER JOIN dbo_ФИЛЬМ ON dbo_vМЛ_ОбщаяТаблицаПрав.КодФильма = dbo_ФИЛЬМ.код_записи) ON dbo_МЛ_Каналы.Код = dbo_vМЛ_ОбщаяТаблицаПрав.КодКанала
WHERE (((dbo_vМЛ_ОбщаяТаблицаПрав.ПодвидПрав1) Like "*" & [Forms]![FRM_Свободные_права]![Эфир_Плат_Нет]) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.Статус)=5) AND (([Forms]![FRM_Свободные_права]![Статус])=5) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Эфир] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Кабель] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Спутник]) AND ((dbo_ФИЛЬМ.Код_киностудии)=4 Or (dbo_ФИЛЬМ.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True)) OR (((dbo_vМЛ_ОбщаяТаблицаПрав.ПодвидПрав1) Like "*" & [Forms]![FRM_Свободные_права]![Эфир_Плат_Нет]) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.Статус)<>5) AND (([Forms]![FRM_Свободные_права]![Статус])<>5) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Эфир] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Кабель] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Спутник]) AND ((dbo_ФИЛЬМ.Код_киностудии)=4 Or (dbo_ФИЛЬМ.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True)) OR (((dbo_vМЛ_ОбщаяТаблицаПрав.ПодвидПрав2) Like "*" & [Forms]![FRM_Свободные_права]![Кабель_Плат_Нет]) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.Статус)=5) AND (([Forms]![FRM_Свободные_права]![Статус])=5) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Эфир] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Кабель] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Спутник]) AND ((dbo_ФИЛЬМ.Код_киностудии)=4 Or (dbo_ФИЛЬМ.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True)) OR (((dbo_vМЛ_ОбщаяТаблицаПрав.ПодвидПрав2) Like "*" & [Forms]![FRM_Свободные_права]![Кабель_Плат_Нет]) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.Статус)<>5) AND (([Forms]![FRM_Свободные_права]![Статус])<>5) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Эфир] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Кабель] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Спутник]) AND ((dbo_ФИЛЬМ.Код_киностудии)=4 Or (dbo_ФИЛЬМ.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True)) OR (((dbo_vМЛ_ОбщаяТаблицаПрав.ПодвидПрав3) Like "*" & [Forms]![FRM_Свободные_права]![Спутник_Плат_Нет]) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.Статус)=5) AND (([Forms]![FRM_Свободные_права]![Статус])=5) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Эфир] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Кабель] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Спутник]) AND ((dbo_ФИЛЬМ.Код_киностудии)=4 Or (dbo_ФИЛЬМ.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True)) OR (((dbo_vМЛ_ОбщаяТаблицаПрав.ПодвидПрав3) Like "*" & [Forms]![FRM_Свободные_права]![Спутник_Плат_Нет]) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.Статус)<>5) AND (([Forms]![FRM_Свободные_права]![Статус])<>5) AND ((dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Эфир] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Кабель] Or (dbo_vМЛ_ОбщаяТаблицаПрав.КодВидаПрав)=[Forms]![FRM_Свободные_права]![Спутник]) AND ((dbo_ФИЛЬМ.Код_киностудии)=4 Or (dbo_ФИЛЬМ.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True))
WITH OWNERACCESS OPTION;
|
| |
|
| |
|
|
|
| Это вы хвастаетесь или жалуетесь? | |
|
| |
|
|
|
|
SELECT P.ПодвидПрав1, P.ПодвидПрав2, P.ПодвидПрав3, C.Наименование, F.Название, P.Статус, P.КодТерритории, 'Центр' AS КодТерр, P.КодВидаПрав
FROM dbo_МЛ_Каналы As C INNER JOIN (dbo_vМЛ_ОбщаяТаблицаПрав As P INNER JOIN dbo_ФИЛЬМ As F ON P.КодФильма = F.код_записи) ON C.Код = P.КодКанала
WHERE (((P.ПодвидПрав1) Like "*" & 'Нет') AND ((P.Статус)=5) AND ((3)=5) AND ((P.КодВидаПрав)=2 Or (P.КодВидаПрав)=10 Or (P.КодВидаПрав)=11) AND ((F.Код_киностудии)=4 Or (F.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True)) OR (((P.ПодвидПрав1) Like "*" & 'Нет') AND ((P.Статус)<>5) AND ((3)<>5) AND ((P.КодВидаПрав)=2 Or (P.КодВидаПрав)=10 Or (P.КодВидаПрав)=11) AND ((F.Код_кин
остудии)=4 Or (F.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True)) OR (((P.ПодвидПрав2) Like "*" & 'Нет') AND ((P.Статус)=5) AND ((3)=5) AND ((P.КодВидаПрав)=2 Or (P.КодВидаПрав)=10 Or (P.КодВидаПрав)=11) AND ((F.Код_киностудии)=4 Or (F.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True)) OR (((P.ПодвидПрав2) Like "*" & 'Нет') AND ((P.Статус)<>5) AND ((3)<>5) AND ((P.КодВидаПрав)=2 Or (P.КодВидаПрав)=10 Or (P.КодВидаПрав)=11) AND ((F.Код_киностудии)=4 Or (F.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True)) OR (((P.ПодвидПрав3) Like "*" & 'Да') AND ((P.Статус)=5) AND ((3)=5) AND ((P.КодВидаПрав)=2 Or (P.КодВидаПрав)=10 Or (P.КодВидаПрав)=11) AND ((F.Код_киностудии)=4 Or (F.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True)) OR (((P.ПодвидПрав3) Like "*" & 'Да') AND ((P.Статус)<>5) AND ((3)<>5) AND ((P.КодВидаПрав)=4 Or (P.КодВидаПрав)=10 Or (P.КодВидаПрав)=11) AND ((F.Код_киностудии)=4 Or (F.Код_киностудии)=24) AND ((funOrderValidete([ПраваС],[ПраваПо]))=True))
WITH OWNERACCESS OPTION;
|
А алиасы при работе с MS SQL-server допустимы?
Понятно, что синтаксис не рабочий. Я просто применил алиасы имен таблиц и заменил ссылки на значения полей формы условными значениями, дабы наглядней было. | |
|
| |
|
|
|
|
|
А алиасы при работе с MS SQL-server допустимы?
|
Да без проблем
ALTER PROCEDURE spSmeta1
@IdObj int
AS
WITH Tab1 AS(
SELECT DISTINCT dbo.TblDol.IdDol, dbo.TblDol.IdZnach, dbo.TblZnachPokazat.Znach,
dbo.TblZnachPokazat.IDPok, dbo.TblDol.IdKlassDol, dbo.TblZnachPokazat.IdObj
FROM dbo.TblDol INNER JOIN
dbo.TblZnachPokazat ON dbo.TblDol.IdZnach = dbo.TblZnachPokazat.IdZnach INNER JOIN
dbo.TblDolObj ON dbo.TblZnachPokazat.IdObj = dbo.TblDolObj.IdObj
WHERE (dbo.TblZnachPokazat.IDPok = 1)AND dbo.TblZnachPokazat.IdObj = @IdObj)
SELECT IdDol,IdZnach,Znach, IDPok,IdKlassDol,IdObj,
ROW_NUMBER()OVER (order by IdObj) AS ROWNUMBER FROM
Tab1
RETURN
|
или вот
ALTER PROCEDURE spProssmOrganiz
@IdOrg int
AS
DECLARE @KodRay int
DECLARE @KodObl int
SELECT @KodRay = TblSOATO.KodRn
FROM TblSOATO INNER JOIN TblKlassOrgan
ON TblSOATO.IdSOATO = TblKlassOrgan.IdSOATO
WHERE TblKlassOrgan.IdKlassOrg = @IdOrg
SELECT @KodObl = TblSOATO.KodObl
FROM TblSOATO INNER JOIN TblKlassOrgan
ON TblSOATO.IdSOATO = TblKlassOrgan.IdSOATO
WHERE TblKlassOrgan.IdKlassOrg = @IdOrg
SELECT dbo.TblKlassOrgan.UNPOrg, dbo.TblKlassOrgan.NaimOrg, dbo.TblKlassOrgan.Ind, dbo.TblKlassOrgan.IdBank, dbo.TblKlassOrgan.RShet, dbo.TblKlassOrgan.Terr,
dbo.TblKlassOrgan.Ulica, dbo.TblKlassOrgan.DOMKV, dbo.TblKlassOrgan.TEFON, dbo.TblKlassOrgan.PRZAKAZ, dbo.TblKlassOrgan.PRPROEKT, dbo.TblKlassOrgan.PRPODRAD,
dbo.TblKlassOrganUprav.NaimOrganUprav, dbo.TblSOATO.Name,
(SELECT Name
FROM TblSOATO
WHERE (KodRn = @KodRay) AND (KodNasp = 0) AND KodObl = @KodObl ) AS NAIMRAY ,
(SELECT Name
FROM TblSOATO AS TblSOATO_2
WHERE (KodObl = @KodObl) AND (KodNasp = 0) AND (KodRn = 0)) AS NAIMOBL
FROM dbo.TblKlassOrgan INNER JOIN
dbo.TblSOATO ON dbo.TblKlassOrgan.IdSOATO = dbo.TblSOATO.IdSOATO INNER JOIN
dbo.TblKlassOrganUprav ON dbo.TblKlassOrgan.IdOrganUprav = dbo.TblKlassOrganUprav.IdOrganUprav
WHERE TblKlassOrgan.IdKlassOrg = @IdOrg
RETURN
|
| |
|
| |
|
|
|
| Видимо......
Видимо хвастаюсь,
хотя.....
просто и не знаю, -
зачем выложил...... | |
|
| |
|
|
|
| Lukas, а хто тебя учил кириллицей таблицы обзывать?
Чай не студент уже вроде | |
|
| |
|
|
|
| работает же с кириллицей, вроде. | |
|
| |
|
|
|
| А хде ты там нашел место, где я обзывал таблицы кириллицей?
Ткни пальчиком, плиз. | |
|
| |
|
|
|
|
Сорри, не таблицы, а поля таблиц ( что в прочем не сильно отличается ) | |
|
| |
|
|
|
| Это не ко мне, плиз. Я лишь применил алиасы к таблицам в запросе СА. | |
|
| |
|
|
|
| Ну, что касается СА, то так вааще писать низяяя. Это ж скл сервер. Так и положить базу ничего не стоит
OR (((dbo_vМЛ_ОбщаяТаблицаПрав.ПодвидПрав1) Like "*" & [Forms]![FRM_Свободные_права]![Эфир_Плат_Нет])
|
Как думаете, что будет если в Forms]![FRM_Свободные_права]![Эфир_Плат_Нет] ввести что то вроде
да ( ну или что там должно быть в поле) DROP TABLE dbo_vМЛ_ОбщаяТаблицаПрав RETURN /*
Можно поиграться с кавычками, чтобы подобрать соответствие запросу.
Это называется SQL инъекция с экранированием хвоста запроса | |
|
| |
|
|
|
| А кто догадается (не видя запроса), что таблица называется "vМЛ_ОбщаяТаблицаПрав" ?
Предлагаешь параметры? | |
|
| |
|
|
|
|
А кто догадается (не видя запроса), что таблица называется "vМЛ_ОбщаяТаблицаПрав" ?
|
сначала вводится команда
exec sp_help /* и получаем список таблиц
а затем уже уничтожаем таблицу или все таблицы
передавать данные нужно только через параметры | |
|
| |
|
|
|
|
а затем уже уничтожаем таблицу или все таблицы
|
Гестапо! | |
|
| |
|
|
|
| Во блин, вы даете. И все же, подскажите, чем худо обзывать таблицы кириллицей? На сеть давить будет или просто признак дурного тона??? | |
|
| |