Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Передать запрос на сервер в строковой переменной.. или как лучше? [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]

?

если надо занести в несколько таблиц, то ХП лучше

если таблица одна, то и без хп можно


Наверх

Титульная страница Поиск, карта сайта Написать письмо