|
SQL Server programming VS. ADO.NET programming
|
|||
---|---|---|---|
#18+
Такой вопрос: вот создаем мы на SQL сервере новую БД на пару-тройку таблиц. Пишем всякие CREATE TABLE, определяем колонки, раскидываем Primary/Foreign Key Constraints, определяем связи между таблицами, назначаем дефолтные значения колонкам - короче паримся и напрягаемся. Наконец, довольные результатом, открываем VisualStudio и создаем из только что созданных таблиц типизированный датасет. И что видим? Автоматом в этот датасет перешел ТОЛЬКО первичный ключ каждой таблицы. Дефолтные значения - мимо, релейшены - мимо и т.д. Отсюда - а нужно ли было столько усилий в программировании дизайна таблиц на сервере, если потом весь дизайн фактически заново надо пересоздавать на ADO.NET? Может программить сервер вообще не стоит, а создавать всю структуру хранилища данных прямо в дизанере типизированного датасета? Ведь end-user все равно никогда не будет править данные непосредственно на сервере, а будет пользоваться для этого нашим приложением, которое, в свою очередь, работает с сервером опосредованно через тот же датасет. И более общий вопрос: а что почитать о программировании связки SQL Server+ADO.NET? Как программить каждое в отдельности - об этом уже тонны книг/статей есть, а вот как распределить усилия программера между тем и этим... Я, конечно, понимаю, что ADO.NET суть высокоуровневая обертка в программировании SQL сервера так что говоря об одном неизбежно выйдешь на другое, но тем не менее - вопрос баланса(см. выше). Заранее спасибо всем. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2004, 16:09 |
|
SQL Server programming VS. ADO.NET programming
|
|||
---|---|---|---|
#18+
Я вообще непонимаю смысл дата сета с набором всяких таблиц и связей. Зачем? я уже со всеми связями и прочей лабудой должен загнать на клиент и показать пользователю. Клиенское приложение вообще недолжно занематься связями, выборкой локально, что-то строить. Это должен делать сервер. В DataSet удобно хранить нужные выборки и переодически их подкачивать с серверя для показа пользователю. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2004, 16:29 |
|
SQL Server programming VS. ADO.NET programming
|
|||
---|---|---|---|
#18+
Так в том то и вопрос - как я могу загнать на клиента(клиент на ADO.NET) всю структуру своей БД с SQL сервера? По моим наблюдениям я могу загнать: 1)Кол-во и названия таблиц 2)Кол-во и названия колонок в каждой таблице 3)Типы данных, хранимой каждой колонкой 4)Примари кей каждой таблицы Все. А, допустим, связи? На сервере они определены и SQL их знает. Как их автоматом перегнать в клиента, что бы не создавать ручками в датасете? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2004, 01:38 |
|
SQL Server programming VS. ADO.NET programming
|
|||
---|---|---|---|
#18+
Это моя первая программа на C#, не судите строго. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
На самом деле картинка которую она показывает не совсем точная (составные ключи разбиты по отдельным колонкам). Результат работы: FOREIGN KEY titles(pub_id) REFERENCES publishers(pub_id) FOREIGN KEY titleauthor(au_id) REFERENCES authors(au_id) FOREIGN KEY titleauthor(title_id) REFERENCES titles(title_id) FOREIGN KEY sales(stor_id) REFERENCES stores(stor_id) FOREIGN KEY sales(title_id) REFERENCES titles(title_id) FOREIGN KEY roysched(title_id) REFERENCES titles(title_id) FOREIGN KEY discounts(stor_id) REFERENCES stores(stor_id) FOREIGN KEY pub_info(pub_id) REFERENCES publishers(pub_id) FOREIGN KEY employee(job_id) REFERENCES jobs(job_id) FOREIGN KEY employee(pub_id) REFERENCES publishers(pub_id) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2004, 06:03 |
|
SQL Server programming VS. ADO.NET programming
|
|||
---|---|---|---|
#18+
Я вообще непонимаю смысл дата сета с набором всяких таблиц и связей. Зачем? я уже со всеми связями и прочей лабудой должен загнать на клиент и показать пользователю. в принципе согласен. НО иногда еще в обычном ADO мне пару раз приходилось делать извратный Left Outer Join уже на клиенте - просто чтобы сэкономить траффик: объединение левой таблицы в пару тысяч коротких записей, с правой таблицей в сотню длинных записей - дает выигрыш в мегабайты, что особенно ощутимо для удаленных пользователей... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2004, 14:41 |
|
SQL Server programming VS. ADO.NET programming
|
|||
---|---|---|---|
#18+
а насколько быстро это операция проводилась? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2004, 14:50 |
|
SQL Server programming VS. ADO.NET programming
|
|||
---|---|---|---|
#18+
раз в пять медленнее чем если бы это делал сервер, но за счет сокращения объема пересылки через горлышко канала связи - всего раза в полтора медленне, но все равно быстрее, чем печать отчета на принтере :-) Тоесть для пользователя - результат не ухудшился, а зато в это время другие юзера могли спокойно работать - узкое канал-то я разгрузил, и серъезно!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2004, 15:50 |
|
|
start [/forum/topic.php?fid=17&msg=32483055&tid=1354143]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 353ms |
total: | 483ms |
0 / 0 |