Вниз
Скачать: CL | DM;

Передать запрос на сервер в строковой переменной.. или как лучше?   Найти похожие ветки 

← →
Denisiy   (2004-11-08 17:34) [0]

Есть анкета с очень большим количеством полей для заполнения. После заполнение нужно передать данные на сервер.
Варианты:  
1) передать в ХП с большим количеством параметров (выходит более 30)
2) сформировать текст запроса в клиентском приложении и передать его на сервер в переменной (если так можно). Если формировать запрос на клиенте - то он будет гораздо меньше, т.к. многие параметры могут быть опущены при заполнении и вносить их в базу не обязательно.

Вопрос:
1) можно ли, собственно, передать запрос в строковой переменной на сервер и там его выполнить?
2) имеет ли смысл вообще этим заниматься, или лучше реализовать это при помощи ХП?


← →
сергей1   (2004-11-08 18:09) [1]

?

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

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


← →
Nikolay M. ©   (2004-11-09 10:12) [2]

Если суммарная длина данных гарантированно меньше 8000, можно передавать XML-ем через VARCHAR(8000).
А в ХП делать SP_XML_PREPAREDOCUMENT, OPENXML, SP_XML_REMOVEDOCUMENT.


← →
Explorer   (2004-11-09 22:02) [3]

Nikolay M. ©
А какие плюсы от использования XML в храним. процедурах?
И что такое "длина данных гарантированно меньше 8000"?


← →
Nikolay M. ©   (2004-11-09 23:12) [4]


> Explorer   (09.11.04 22:02) [3]
> Nikolay M. ©
> А какие плюсы от использования XML в храним. процедурах?

Вообще - зависит от обстоятельств. В данном конкретном случае, когда многие из параметров могут быть опущены, просто удобно.


> И что такое "длина данных гарантированно меньше 8000"?

Это значит, например, что если означенные 30 параметров - строки и каждая из них не может быть длиннее 10 символов, то суммарная длина всей анкеты гарантированно занимает не более 300 символов.


← →
Denisiy   (2004-11-11 17:37) [5]

Так а основной вопрос: есть ли возможность выполнить на сервере запрос, переданный в обычной строковой переменной?  - ответит кто-нибудь?

 RTFM уж хоть скажите :))))


← →
Ega23 ©   (2004-11-11 18:18) [6]

Так а основной вопрос: есть ли возможность выполнить на сервере запрос, переданный в обычной строковой переменной?  - ответит кто-нибудь?


Конечно есть.


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


← →
Nikolay M. ©   (2004-11-11 18:55) [7]


> Denisiy   (11.11.04 17:37) [5]
> Так а основной вопрос: есть ли возможность выполнить на
> сервере запрос, переданный в обычной строковой переменной?
>  - ответит кто-нибудь?

Угу. Для этого есть компоненты наподобие ADOQuery, например.
Какой смысл формировать на клиенте строку запроса, передавать ее в ХП на сервер и исполнять этот запрос из ХП?


>  RTFM уж хоть скажите :))))

RTFM
:)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
14-1101232184
Yanis
2004-11-23 20:49
2004.12.12
ОдЁжа


1-1101608873
noob
2004-11-28 05:27
2004.12.12
Event


6-1096729488
Луарвик
2004-10-02 19:04
2004.12.12
Правильный запрос (а не вопрос :))


1-1101835736
kaktus
2004-11-30 20:28
2004.12.12
Динамическая обраьотка событий.


14-1100873270
by
2004-11-19 17:07
2004.12.12
Есть ли в Delphi 7 Professional компонент TClientDataSet?




   Наверх