Как правильно писать?
В такой вариации выдаёт ошибки
SELECT
[tbl_Account].[ID] AS [ID],
[tbl_Account].[Name] AS [Name],
[tbl_Account].[OfficialAccountName] AS [OfficialAccountName],
[tbl_Account].[AnnualRevenue] AS [AnnualRevenue],
[tbl_Account].[EmployeesNumber] AS [EmployeesNumber],
[tbl_Account].[Address] AS [Address],
[tbl_Account].[AddressTypeID] AS [AddressTypeID],
[tbl_Account].[Communication1] AS [Communication1],
[tbl_Account].[Communication1TypeID] AS [Communication1TypeID],
[tbl_Account].[Communication2] AS [Communication2],
[tbl_Account].[Communication2TypeID] AS [Communication2TypeID],
[tbl_Account].[Communication3] AS [Communication3],
[tbl_Account].[Communication3TypeID] AS [Communication3TypeID],
[tbl_Account].[Communication4] AS [Communication4],
[tbl_Account].[Communication4TypeID] AS [Communication4TypeID],
[tbl_Account].[Communication5] AS [Communication5],
[tbl_Account].[Communication5TypeID] AS [Communication5TypeID],
[tbl_City].[Name] AS [CityName],
[tbl_Account].[CityID] AS [CityID],
[tbl_Account].[ZIP] AS [ZIP],
[tbl_Campaign].[Name] AS [CampaignName],
[tbl_Account].[CampaignID] AS [CampaignID],
[tbl_Contact].[Name] AS [PrimaryContactName],
[tbl_Account].[PrimaryContactID] AS [PrimaryContactID],
[tbl_Country].[Name] AS [CountryName],
[tbl_Account].[CountryID] AS [CountryID],
[tbl_State].[Name] AS [StateName],
[tbl_Account].[StateID] AS [StateID],
[tbl_Territory].[Name] AS [TerritoryName],
[tbl_Account].[TerritoryID] AS [TerritoryID],
[Owner].[Name] AS [OwnerName],
[tbl_Account].[OwnerID] AS [OwnerID],
[tbl_Account].[ActivityID] AS [ActivityID],
[tbl_Activity].[Name] AS [ActivityName],
[tbl_Account].[FieldID] AS [FieldID],
[tbl_Field].[Name] AS [FieldName],
[tbl_Account].[AccountTypeID] AS [AccountTypeID],
[tbl_AccountType].[Name] AS [AccountTypeName],
[tbl_AddressType].[Name] AS [AddressTypeName],
[CommunicationType1].[Name] AS [Communication1TypeName],
[CommunicationType2].[Name] AS [Communication2TypeName],
[CommunicationType3].[Name] AS [Communication3TypeName],
[CommunicationType4].[Name] AS [Communication4TypeName],
[CommunicationType5].[Name] AS [Communication5TypeName],
[tbl_Account].[Code] AS [Code],
[tbl_Account].[TaxRegistrationCode] AS [TaxRegistrationCode],
[tbl_Account].[CreatedOn] AS [CreatedOn],
[tbl_Account].[CreatedByID] AS [CreatedByID],
[CreatedBy].[Name] AS [CreatedByName],
[tbl_Account].[ModifiedOn] AS [ModifiedOn],
[tbl_Account].[ModifiedByID] AS [ModifiedByID],
[ModifiedBy].[Name] AS [ModifiedByName],
[tbl_Job].[NameOf] AS [JobNameOf],
[tbl_Account].[SettledCredit] AS [SettledCredit],
[tbl_Account].[PostponementPayment] AS [PostponementPayment],
(case(:IsAeroClub)
when 1 then
tbl_Contact.Name;
when 0 then
tbl_ContactTur.Name;
end ) AS [PrimaryContactNameTur]
FROM
[dbo].[tbl_Account] AS [tbl_Account]
LEFT OUTER JOIN
[dbo].[tbl_Contact] AS [tbl_Contact] ON [tbl_Contact].[ID] = [tbl_Account].[PrimaryContactID]
LEFT OUTER JOIN
[dbo].[tbl_Territory] AS [tbl_Territory] ON [tbl_Territory].[ID] = [tbl_Account].[TerritoryID]
LEFT OUTER JOIN
[dbo].[tbl_Contact] AS [Owner] ON [Owner].[ID] = [tbl_Account].[OwnerID]
LEFT OUTER JOIN
[dbo].[tbl_Campaign] AS [tbl_Campaign] ON [tbl_Campaign].[ID] = [tbl_Account].[CampaignID]
LEFT OUTER JOIN
[dbo].[tbl_City] AS [tbl_City] ON [tbl_City].[ID] = [tbl_Account].[CityID]
LEFT OUTER JOIN
[dbo].[tbl_State] AS [tbl_State] ON [tbl_State].[ID] = [tbl_Account].[StateID]
LEFT OUTER JOIN
[dbo].[tbl_Country] AS [tbl_Country] ON [tbl_Country].[ID] = [tbl_Account].[CountryID]
LEFT OUTER JOIN
[dbo].[tbl_Activity] AS [tbl_Activity] ON [tbl_Activity].[ID] = [tbl_Account].[ActivityID]
LEFT OUTER JOIN
[dbo].[tbl_Field] AS [tbl_Field] ON [tbl_Field].[ID] = [tbl_Account].[FieldID]
LEFT OUTER JOIN
[dbo].[tbl_AccountType] AS [tbl_AccountType] ON [tbl_AccountType].[ID] = [tbl_Account].[AccountTypeID]
LEFT OUTER JOIN
[dbo].[tbl_Contact] AS [CreatedBy] ON [CreatedBy].[ID] = [tbl_Account].[CreatedByID]
LEFT OUTER JOIN
[dbo].[tbl_Contact] AS [ModifiedBy] ON [ModifiedBy].[ID] = [tbl_Account].[ModifiedByID]
LEFT OUTER JOIN
[dbo].[tbl_AddressType] AS [tbl_AddressType] ON [tbl_AddressType].[ID] = [tbl_Account].[AddressTypeID]
LEFT OUTER JOIN
[dbo].[tbl_CommunicationType] AS [CommunicationType1] ON [CommunicationType1].[ID] = [tbl_Account].[Communication1TypeID]
LEFT OUTER JOIN
[dbo].[tbl_CommunicationType] AS [CommunicationType2] ON [CommunicationType2].[ID] = [tbl_Account].[Communication2TypeID]
LEFT OUTER JOIN
[dbo].[tbl_CommunicationType] AS [CommunicationType3] ON [CommunicationType3].[ID] = [tbl_Account].[Communication3TypeID]
LEFT OUTER JOIN
[dbo].[tbl_CommunicationType] AS [CommunicationType4] ON [CommunicationType4].[ID] = [tbl_Account].[Communication4TypeID]
LEFT OUTER JOIN
[dbo].[tbl_CommunicationType] AS [CommunicationType5] ON [CommunicationType5].[ID] = [tbl_Account].[Communication5TypeID]
LEFT OUTER JOIN
[dbo].[tbl_Job] AS [tbl_Job] ON [tbl_Job].[ID] = [tbl_Contact].[JobID]
LEFT OUTER JOIN
[dbo].[tbl_Contact] AS [tbl_ContactTur] ON [tbl_ContactTur].[ID] = [tbl_Account].[AeroTurContactID]
----------------------------------
[10.04.19 16.36.56.014] (E) Алиас столбца не может быть пустым
[10.04.19 16.40.04.800] (W) Ошибка открытия источника данных "".
Оригинальное сообщение об ошибке: Syntax error, permission violation, or other nonspecific error
[10.04.19 16.40.44.031] (W) Ошибка открытия источника данных "".
Оригинальное сообщение об ошибке: Syntax error, permission violation, or other nonspecific error
[10.04.19 16.41.38.826] (W) Ошибка открытия источника данных "".
Оригинальное сообщение об ошибке: Syntax error, permission violation, or other nonspecific error
[10.04.19 16.41.56.517] (W) Ошибка открытия источника данных "".
Оригинальное сообщение об ошибке: Syntax error, permission violation, or other nonspecific error
[10.04.19 16.42.11.734] (W) Ошибка открытия источника данных "".
Оригинальное сообщение об ошибке: Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
Parameter[1] 1 - invalid ParamType (Status = 1h).
Parameter[2] 2 - invalid ParamType (Status = 1h)
Нравится
Всё запускается, но получаемое в case поле всегда не существует. Может я не там задаю фильтр.
Я делаю это в BeforeOpen:
function ds_AccountOnDatasetBeforeOpen(Dataset, DoOpen) {
debugger;
if( Connector.CurrentUser.AccountName=="Ваша компания")
Dataset.SelectQuery.Parameters.ItemsByName("IsAeroClub").Value = false;
}
Денис, а зачем Вам там параметр? Вы можете узнать имя компании и на сервере для текущего пользователя.
Мне нужно в зависимости от компании, в которые входит текущий пользователь, выбрать разные контактные лица,проекты и другие данные, я хочу передавать дополнительный параметр в запрос или просто менять selectQuery.
Только в каком событии и как это сделать?
Денис, судя по запросу, Вы не фильтр добавили, а флаг. На сервере в запросе можно узнать имя компании для текущего пользователя.
"Осауленко Александр" написал:На сервере в запросе можно узнать имя компании для текущего пользователя.
Не подскажите как?
Т.е. если я передаю этот параметр(флаг) как фильтр, я не могу с ним взаимодействовать?
Для mssql:
select Name from tbl_Account where Id = (select AccountId from tbl_Contact where Id = (select UserContactId from tbl_AdminUnit where Name = SYSTEM_USER))
Спасибо за предложение
SYSTEM_USER- это логин пользователя(по моему).А мне нужно название компании-контрагента пользователя в террасофте(Я конечно понимаю, что это можно сделать join`ами, но хотелось бы понять как передавать параметры в запросы)
"Сопонов Денис" написал:SYSTEM_USER- это логин пользователя(по моему).А мне нужно название компании-контрагента пользователя в террасофт
Это одно и тоже :)
"Сопонов Денис" написал:Я конечно понимаю, что это можно сделать join`ами, но хотелось бы понять как передавать параметры в запросы
Я еще могу предположить что Вы не добавили в SelectQuery параметры. А чтобы колонка не отключалась установите ей AlwaysSelect
Т.е. SYSTEM_USER при выполнении запроса от террасофта будет "Ваша компания"=)?
А как всё-таки всовывать в запросы параметры?
"Сопонов Денис" написал:Т.е. SYSTEM_USER при выполнении запроса от террасофта будет "Ваша компания"=)?
Да :)
"Сопонов Денис" написал:Проверил, выдаёт логин пользователя=(
Т.е. Вы выполнили select SYSTEM_USER? А что Вы ожидали там получить? :)
Я запрос приводил который выдаст Вам имя компании, Вы его пробовали?