|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
Здраствуй уважаемый ALL. Вот перехожу на .Net, пока правда не очень получается, может кто поспособствует мудрым советом. Итак! Есть: VB.Net, ADO.Net, БД на MSSQL2000, типизированный датасет, Адаптер, View и СП по 1 шт. (огрубляю конечно) так вот, задача какая надо на форму вытащить всего одну запись вида или СП (они практически одинаковые, только соответственно п Сп параметры для фильтрации), но с СП вариант вроде не очень удобный получается т.к. необходимо будет придумывать еще и команды UPDATE, INSERT, DELETE а хотелосьбы что-нибудь более автоматическое, а вид получается тащит все записи, а их там много, во! Что придумать не знаю, но в тексте програмы создавать SQL текст это не выход, потому как, должна быть четкая возможность исправлять SQL часть (минимальные правки) без изменения клиента. Кто, что подскажет, господа професионалы? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 14:46 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
Если тебе надо одну запись то нет смысла применять DataAdapter, DataSet, DataTable и другую прослойку. Возможны два (это самые быстрые варианты) 1) Использование SQLCommand и выходных параметров хранимой процедуры 2) Использование SQLDataReader и SQLCommand(ExecuteReader)(кстати DataAdapter также использует SQLDataReader только не многие об этом знают) Оба варианта предполагают использование хранимых процедур, которые позволят абстрагироваться от клиентского кода, P.S. Похорошему и типизированной DataSet здесь лишнее, если хочется большей гибкости и независимости клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 15:14 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
2 Sa гибкость тело хорошее, но так как это далеко не еденичный случай хочется, что бы это было гдето за фоном, это раз, а во вторых насколько я понял Datareader не сожет обновлять, а только считывает данные! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 15:16 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
Ну если речь идет об ОДНОЙ записи, которую надо получать с сервака а потом заливать обратно изменения. То оптимальный выбор SQLCommand и входные, выходные параметры хранимой процедуры. Но учитывай что я говорю про самые быстрые способы, если же полей очень много (был у меня такой 99 записей) то может быть просто не удобно создавать ВСЕ параметры к комманду , и тогда в ущерб производительности можно использовать aдаптер. В чем конкретно у тебя проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 15:25 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
>был у меня такой 99 записей) читать как 99 полей. Вообще процесс добавления параметров к SQLCommandу можно упростить с использованием объекта Row. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 15:33 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
Ну общий смысл такой, хочется использовать ДА, вот только как заставить его грузить не все записи из таблицы(вида) а с фильтровкой на стороне сервера. Command это конечно выход, но я морально не готов к таким решениям, слишком привык к ADO и всяким Accessам! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 15:34 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
2 Sa да не там максимум 20 полей, но я просто из той серии, что чем меньше написал рукам оновление и добовление тем меньше ошибок, потому как именно это самые проблемные места, покрайней мере для меня, а все остальное можно и руками, лишь бы не обновление и добавление! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 15:37 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
Ну стандартного метода связанный с фильтрацией на стороне сервера в ADO.NET я не встречал (99.9% что такого нет) . Ведь даже порционный Fill (класса SQLDataAdapter) все равно закачивает все записи а потом херачит их на стороне клиента. Я в твоем случае сделал бы хранимые процедуры на Update, Insert, Delete, Select. А в хранилках можно как угодно организовать фильтрацию данных. Я так понял вам надо что то подобное server-side cursor в ADO? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 15:49 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
2 Sa Скорее serverfilter ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 15:59 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
Как вариант вы можете использовать ADO как COM объект. А у OleDbDataAdapter есть метод Fill который способен преобразовывать ADOвский RecordSet в NETовский DataSet. Но как это все будет в реалии я не скажу так как лично в подобных случаях прибегаю к способу описанному мной выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 16:04 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
Есть конечно еще один обходной маневр: сделать табличку в каторую перед загрузкой кинуть фильтровочное значение чтоб потом его использовоть в виде, но я чесно говоря опосаюсь такого варианта, может кто скажет по этому поводу что-нибудь. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 16:41 |
|
Фильтровка данных на сервере.
|
|||
---|---|---|---|
#18+
>Есть конечно еще один обходной маневр: сделать табличку в каторую перед загрузкой кинуть фильтровочное значение чтоб потом его использовоть в виде, но я чесно говоря опосаюсь такого варианта, может кто скажет по этому поводу что-нибудь. А я не вижу смысла в таких обходных маневрах. Проще для фильтрации поставить WHERE в SELECTе. Конечно если вы опишите структуры таблиц, примерные данные, наличие идентификаторов, критерий фильтрации и т.д можно сказать что то более конкретно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 19:35 |
|
|
start [/forum/topic.php?fid=17&tid=1354187]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 234ms |
total: | 366ms |
0 / 0 |