Привет, я работаю над странным проектом, который привел меня в некоторые странные места, и вот я снова. В сущности, существует поиск около 100 некоторых нечетных элементов управления (критерии, каждый из которых может иметь несколько или несколько вложенных элементов) (Multi Select ListBoxes) ... Мне не нравится использование Dynamic SQL, но из-за характера приложения я нашел это необходимым Я написал довольно короткий C # бэкэнд (это в ASP), который проверяет, какие элементы управления выбраны, принимает значение имени для элемента управления (которое является именем столбца) и создает динамическое предложение where ... Пример ...
SELECT TOP 50000 [lname] as 'last',[fname] as 'first',[phone],[wphone],[fax],[cellphone],[email],[state],[zip],[state_w],[zip_w],[employer],CONVERT(char, [datebirth], 101) FROM [RT2DBSQL_Review].[dbo].[Respondent] WHERE (education = '5' ) and (race = 'H' ) and (hours = '1' ) and (',' + CC5 like '%,2,%' or ',' + CC5 like '%,26,%' or ',' + CC5 like '%,12,%') and (',' + CC6 like '%,9,%' or ',' + CC6 like '%,23,%') and (',' + CC4 like '%,Nintendo DS,%') and (gender = 'M') AND Pro_resp is null
Это проверено и привязывает сетку, чтобы показать подходящих людей.
Следующий шаг. Предположим, что 1000 жизнеспособных кандидатов выбирают x количество случайных кандидатов и вставляют динамические значения из таблицы респондентов (см. Ниже), статический номер задания, статическую квоту - все это при подаче в предложении сумасшедшей задницы, где. У меня есть все отдельные части этого, но я запутался, заставляя его работать вместе.
что-то вроде:
CREATE PROCEDURE TEMPTEMP
@jobnum varchar(100),
@quota varchar(100),
@X int,
@Dynamic varchar(max)
AS
INSERT INTO [RT2DBSQL_Review].[dbo].[tbl_job_respondents]
([job_resp_job_number]
,[job_resp_respondent]
,[job_resp_name]
,[job_resp_phone]
,[job_resp_wphone]
,[job_resp_wphone_ext]
,[job_resp_cellphone]
,[job_resp_call_status]
,[job_resp_scheduled]
,[job_resp_recruited_by]
,[job_resp_part_status]
,[job_resp_coop_amt]
,[job_resp_amt_paid]
,[job_resp_status]
,[job_resp_part_check_no]
,[job_resp_session]
,[job_resp_date_pulled]
,[job_resp_date_recruited]
,[job_resp_quota]
,[job_resp_source]
,[job_resp_confirmed]
,[job_resp_referred_by]
,[query_print_field]
,[job_resp_exported]
,[job_resp_notes]
,[job_resp_childname])
VALUES
(@jobnum
,(Select TOP (@X) RecordId
,lname + ', ' + fname
,phone
,wphone
,wphone_ext
,cellPhone
,'0' --static
,0 --static
,'' --static
,'' --static
,0 --static
,0 --static
,'0' --static
,null--static
,null--static
,GETDATE()
,GETDATE()
,@quota
,'Q' --static
,null--static
,null--static
,0 --static
,0 --static
,null
,null/*static*/FROM Respondent
WHERE @Dynamic
ORDER BY NEWID()))
GO
Альтернатива состоит в том, чтобы загрузить все данные из списка в список массивов, что угодно ?? Любые идеи, у меня есть пердеть мозг с этим.
Заранее спасибо за помощь