Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
09.07.2013, 17:51
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
клиент создаёт новую запись в БД. и надо бы тут же получить идентификатор добавленной строки. пусть таблица вида: Код: sql 1.
как лучше поступить с id/guid 1. при создании таблицы использовать такой код Код: sql 1. 2. 3.
но как тогда возвертать обратно значение GUID для новой записи 2. предварительно сенерить гуид и потом его вернуть Код: sql 1. 2. 3. 4.
3. генерить гуид в клиенте Код: c# 1. 2. 3. 4. 5. 6. 7.
4. а если хочется работать не с 16-байтныйм гуидом , а с ID1 (int) то как в таком случае лучшее поступать. хотелось бы у сообщества узнать , как будет лучше сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.07.2013, 17:57
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
что за база данных? в MSSQL 2012 есть sequence, через него можно заранее новое значение получать. или , если версия ниже, то смотри @@IDENTITY/scope_identity() или через OUTPUT в самом запросе ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.07.2013, 22:59
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
beg-in-er Код: c# 1. 2. 3. 4. 5. 6. 7.
Это что за жесть такая? P.S. Возьми EF и не мучайся. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.07.2013, 00:16
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
beg-in-er3. генерить гуид в клиенте Код: c# 1. 2. 3. 4. 5. 6. 7.
Не делай так. Используй Guid.NewGuid(). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.07.2013, 00:26
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
bazileНе делай так. Используй Guid.NewGuid(). не думаю, что реализация NewGuid() принципиально другая. МСУВозьми EF и не мучайся. возьму , но пожже. предметно , как всё таки лучше в случае с гуидом. в клиенте его мастрячить, или вытаскивать из insert into mytable ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.07.2013, 19:47
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
beg-in-er, beg-in-er1. при создании таблицы использовать такой код create table MyTable( GUID UniqueIdentifier RowGuidCol UNIQUE DEFAULT NewSequentialID() ).... но как тогда возвертать обратно значение GUID для новой записи Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.07.2013, 19:49
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Пардон Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.07.2013, 20:25
|
|||
---|---|---|---|
|
|||
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
beg-in-er, сделать можно по разному. 1. Если генерить GUID на клиенте, то и нефиг его потом возвращать - он и так уже есть 2. Если генерить GIUD на сервере, то лучше вставку в таблицу делать с использованием хранимой процедуры и объявить его как out параметр 3. целочисленный идентификатор лучше на уровне столбца объявить как IDENTITY и его значение после вставки получать с использованием scope_identity() В принципе как тебе удобней так и делай. IMHO, CRUD лучше организовать с использованием хранимых процедур, защищённость больше, контроля больше, поддерживаемость лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.07.2013, 22:59
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
beg-in-erпредметно , как всё таки лучше в случае с гуидом. в клиенте его мастрячить, или вытаскивать из insert into mytable Если у тебя двухзвенка, то ее место на свалке и всяческие генерации гуидов клиентами могут привести к ядерному взрыву. Если у тебя сервер приложений (как и подобает), генери гуид им и не заморачивайся. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.07.2013, 23:03
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Alex KuznetsovIMHO, CRUD лучше организовать с использованием хранимых процедур, защищённость больше, контроля больше, поддерживаемость лучше. -1 защищенность ничем не лучше, чем в случае апп сервера масштабировать решение на порядки сложнее масштабировать логику на порядки сложнее логике в бд не место, бд - это только данные и порядок их хранения (constraints, required) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 00:58
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
МСУAlex KuznetsovIMHO, CRUD лучше организовать с использованием хранимых процедур, защищённость больше, контроля больше, поддерживаемость лучше. -1 "Вы не любите кошек? Да, Вы просто не умеете их готовить!" (с) МСУ защищенность ничем не лучше, чем в случае апп сервера Ню-ню... "Вскрыть" один пароль от логина для подключение апп-сервера к базе данных - и все данные "на блюдечке" с полным комплектом прав доступа. Вот такая "небольшая проблемка" с безопасностью в апп-серверах... "Вскрытие" пароля даже администратора сервера баз данных не всегда гарантирует получение доступа к данным базы даже для элементарного селекта - сугубо "к сведению"... Такая вот "чисто небольшая" разница... И не будем "о грустном" - про встроенные возможности серверов баз данных в части аудита, когда реализация даже минимального их набора в приложении на апп-сервере обойдется дороже всей заказной системы... МСУ масштабировать решение на порядки сложнее А Вы точно пробовали? "Терзают смутные сомнения" (с) Понятно, что это делается не по щелчку пальцев, но явно, что без "надрыва" - и в самом "тяжелом" случае с таким же самым уровнем сложности. Ну, и слоган от "не-МС" - "пока Вы масштабируете один Ваш сервер приложений, один наш сервер баз данных обслуживает запросы от сотен серверов приложений"... "Точка невозврата", с которой возникает необходимость масштабировать сервер баз данных находится гораздо дальше, чем у любого, самого мощного апп-сервера - хотя бы в силу более высоких требований к качеству ПО сервера БД и несколько более высокого требуемого уровня квалификации для разработчика. МСУ масштабировать логику на порядки сложнее А с чего бы это логику надо было "масштабировать"?! Логика должна просто работать! И если логики нет - тут не поможет не только масштабирование, но даже Г.Б-г МСУ логике в бд не место, бд - это только данные и порядок их хранения (constraints, required) А зачем Вам констрэйнты? У Вас же "умный" сервер приложений - вот пусть приложение на нем и занимается обслуживанием "логики". И сразу на фокспро или парадокс переходите - это же как раз для них и была придумана технология серверов приложений: по основной причине, что ПО с "железом" были сильно по-дороже, да и файл-сервера не особо справлялись с многопользовательским доступом к файловым БД... По нынешним временам использовать в качестве тупого склада таблиц сервер баз данных - мягко говоря, не умно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 08:43
|
|||
---|---|---|---|
|
|||
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
МСУ, "Апологету" АПП серверов Код: plaintext
Код: plaintext
масштабировать решение на порядки сложнее Про масштабируемость : что мы вкладываем в данное понятие? Развитие (сиречь расширение) объектов и соответственно увеличение количества столбцов в таблице? Ну так в любом случае надо допиливать напильником и объект в БД и его отражение в конечном приложении. Не важно АПП сервер это или что-то другое... Надеюсь, что с этим Вы не станете спорить... Масштабируемость по количеству клиентских подключений и различных объектов, обращающихся к одной и той-же сущности БД? Так тут тоже, клиентская часть (это может быть и сам апп сервер) должна только запросить сервер БД выполнить действие с записью таблицы. И если что-то из элементарных правил проверок и созданий изменится, то лучше произвести изменения в одном месте и не распространять подобные изменения по сотням и тысячам клиентских мест. Код: plaintext
масштабировать логику на порядки сложнее логике в бд не место, бд - это только данные и порядок их хранения (constraints, required)Эти два пункта, на мой взгляд, выступают вместе... Про логику в БД полностью согласен. В крупных решениях, зашивать логику в БД ещё тот геморрой, тем не менее для мелких решений элементарные проверки можно выполнять в CRUD на уровне хранимых процедур (IMHO). Скажу даже более, богатый опыт работы с SAP ERP в сравнении с тем-же Oracle App Server, показывает, что вынесение логики из БД есть благо, потому как не нужно править код в нескольких местах, т.е. нет лапшы, которая тянется через несколько слоёв. Вместе с тем сервер БД выполняет свою прямую работу - обеспечивает доступ к данным и их хранение, ни больше ни меньше. PS. "Апологет" - это по доброму (обидеть не хотел, потому и в кавычках), т.к. сам являюсь сторонником серверов приложений :-) тем не менее, не на них одних всё крутится, иногда, для проезда в магазин за пивом, ракета не нужна, достаточно просто самоката (или лисапеда) :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:05
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
sphinx_mv"Вскрыть" один пароль от логина для подключение апп-сервера к базе данных - и все данные "на блюдечке" с полным комплектом прав доступа. Вот такая "небольшая проблемка" с безопасностью в апп-серверах...Сценарий для новой передачи на канале ТВ3 ? sphinx_mvИ не будем "о грустном" - про встроенные возможности серверов баз данных в части аудита, когда реализация даже минимального их набора в приложении на апп-сервере обойдется дороже всей заказной системы...Что не так с аудитом безопасности в WCF? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:08
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Alex Kuznetsovвместе с тем, наличие АПП сервера не отрицает возможности использования хранимых процедур для решения поставленных задач - они как-бэ параллельны, мухи отдельно, котлеты отдельно...Использовать ХП с целью оптимизации можно. А выносить туда весь CRUD, при наличии автоматической генерации оного в ORM - маразм. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:18
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Алексей К, ну как раз то генерация CRUD то самое простое ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:20
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
ViPRosАлексей К, ну как раз то генерация CRUD то самое простоеНу и что? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:25
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Alex KuznetsovIMHO, CRUD лучше организовать с использованием хранимых процедур, защищённость больше, контроля больше, поддерживаемость лучше .Поддерживаемость хуже. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:28
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Вот есть в проге такие вещи как Портфель, Программы, Меоприятия, Проекты, Работы и Договоры У каждого из них могут быть атрибутивные типы типа Бюджет, Смета и т.д. Стоит задача синтеза одних атрибутивных типов вверх и распределения вниз причем таких вещей много - Холдинг, Предприятие, Производство,.... : да любые иерархические отношения заданные как определенный конструкт такие задачи в Управление Предприятием 30-70% всей работы врядь ли какой ОРМ поможет изящно решить эту задачу а имея собственный механизм описание таких конструкций (обобщенных отношений типов с заданными ограничениями) возможно генерация обобщенных методов (хп в том числе) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:29
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Алексей КViPRosАлексей К, ну как раз то генерация CRUD то самое простоеНу и что? да то что эта простота нафиг не нужна нужны сложные вещи а простые и сами сделаем ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:36
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
ViPRosВот есть в проге такие вещи как Портфель, Программы, Меоприятия, Проекты, Работы и Договоры У каждого из них могут быть атрибутивные типы типа Бюджет, Смета и т.д. Стоит задача синтеза одних атрибутивных типов вверх и распределения вниз причем таких вещей много - Холдинг, Предприятие, Производство,.... : да любые иерархические отношения заданные как определенный конструкт такие задачи в Управление Предприятием 30-70% всей работы врядь ли какой ОРМ поможет изящно решить эту задачу а имея собственный механизм описание таких конструкций (обобщенных отношений типов с заданными ограничениями) возможно генерация обобщенных методов (хп в том числе)Ну берём EF и пишем. В чём проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:41
|
|||
---|---|---|---|
|
|||
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Алексей КAlex Kuznetsovskiped...Использовать ХП с целью оптимизации можно. А выносить туда весь CRUD, при наличии автоматической генерации оного в ORM - маразм. А вот здесь подробней. В чём именно заключается маразм использования хранимок для CRUD в связке с ORM? Кстати, я в своё время разрабатывал закрытый farmework для реализации шаблона MVC, и там у меня был автоматизированный генератор бызнес объектов (ну т.е. ORM ) который прекрасно генерировал для CRUD хранимые процедуры и всё работало... Бизнес логика, естественно была реализована не на уровне БД, а на уровне бизнес объектов в модели... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:42
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Алексей К, че пишем то? что еф дает для этого? он что мне ХП сгенерирует для расчетов? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:49
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
разве ОРМ в силах распознать заданные концептуальные конструкции и выделить их автоматом? по моему они кроме фориенкей нифига не видят или я плохо вижу ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:52
|
|||
---|---|---|---|
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Alex KuznetsovАлексей Кпропущено... Использовать ХП с целью оптимизации можно. А выносить туда весь CRUD, при наличии автоматической генерации оного в ORM - маразм. А вот здесь подробней. В чём именно заключается маразм использования хранимок для CRUD в связке с ORM? Кстати, я в своё время разрабатывал закрытый farmework для реализации шаблона MVC, и там у меня был автоматизированный генератор бызнес объектов (ну т.е. ORM ) который прекрасно генерировал для CRUD хранимые процедуры и всё работало... Бизнес логика, естественно была реализована не на уровне БД, а на уровне бизнес объектов в модели...Зачем их генерировать, если их можно не генерировать? Лишний слой, за которым надо следить. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2013, 09:57
|
|||
---|---|---|---|
|
|||
как прально добавить получить идентификатор новой записи в БД ? |
|||
#18+
Алексей КAlex Kuznetsovпропущено...Зачем их генерировать, если их можно не генерировать? Лишний слой, за которым надо следить.ААА, ну так-то да, ежели что изменится просто в проверке данных перед вставкой в таблицу, то мы просто для 100-200 клиентов сделаем обновление ПО и всё, делов-то... Ну и "лишнего" слоя заодно не будет... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1404329]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
159ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 276ms |
0 / 0 |