![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передать запрос на сервер в строковой переменной.. или как лучше? [D6, MSSQL]
Denisiy © (2004-11-08 17:34:00)Есть анкета с очень большим количеством полей для заполнения. После заполнение нужно передать данные на сервер.
Варианты:
1) передать в ХП с большим количеством параметров (выходит более 30)
2) сформировать текст запроса в клиентском приложении и передать его на сервер в переменной (если так можно). Если формировать запрос на клиенте - то он будет гораздо меньше, т.к. многие параметры могут быть опущены при заполнении и вносить их в базу не обязательно.
Вопрос:
1) можно ли, собственно, передать запрос в строковой переменной на сервер и там его выполнить?
2) имеет ли смысл вообще этим заниматься, или лучше реализовать это при помощи ХП?
Nikolay M. (2004-11-11 18:55:00) [1]
> Denisiy (11.11.04 17:37) [5]
> Так а основной вопрос: есть ли возможность выполнить на
> сервере запрос, переданный в обычной строковой переменной?
> - ответит кто-нибудь?
Угу. Для этого есть компоненты наподобие ADOQuery, например.
Какой смысл формировать на клиенте строку запроса, передавать ее в ХП на сервер и исполнять этот запрос из ХП?
> RTFM уж хоть скажите :))))
RTFM
:)
Ega23 (2004-11-11 18:18:00) [2]Так а основной вопрос: есть ли возможность выполнить на сервере запрос, переданный в обычной строковой переменной? - ответит кто-нибудь?
Конечно есть.
print 'S_Search- процедура форомирования выборок по входным параметрам'
/*'Пример:
exec S_Search @ActNam ='PERSID',....
*/
go
if exists (select * from sysobjects where id = object_id(N'[S_Search]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [S_Search]
GO
CREATE PROCEDURE S_Search
....
@SQLMain varchar (8000),
.....
AS
if @Debug<>-1 print @SqlMain else exec(@SqlMain)
GO
Denisiy (2004-11-11 17:37:00) [3]Так а основной вопрос: есть ли возможность выполнить на сервере запрос, переданный в обычной строковой переменной? - ответит кто-нибудь?
RTFM уж хоть скажите :))))
Nikolay M. (2004-11-09 23:12:00) [4]
> Explorer (09.11.04 22:02) [3]
> Nikolay M. ©
> А какие плюсы от использования XML в храним. процедурах?
Вообще - зависит от обстоятельств. В данном конкретном случае, когда многие из параметров могут быть опущены, просто удобно.
> И что такое "длина данных гарантированно меньше 8000"?
Это значит, например, что если означенные 30 параметров - строки и каждая из них не может быть длиннее 10 символов, то суммарная длина всей анкеты гарантированнозанимает не более 300 символов.
Explorer (2004-11-09 22:02:00) [5]Nikolay M. ©
А какие плюсы от использования XML в храним. процедурах?
И что такое "длина данных гарантированно меньше 8000"?
Nikolay M. (2004-11-09 10:12:00) [6]Если суммарная длина данных гарантированно меньше 8000, можно передавать XML-ем через VARCHAR(8000).
А в ХП делать SP_XML_PREPAREDOCUMENT, OPENXML, SP_XML_REMOVEDOCUMENT.
сергей1 (2004-11-08 18:09:00) [7]?
если надо занести в несколько таблиц, то ХП лучше
если таблица одна, то и без хп можно