Если DB позволяет использовать both cursor (table) & SQL access, приходилось ли вам использовать оба метода в одном проекте? Any bugs?
Объявление
Collapse
No announcement yet.
Программерам: cursor (table) access vs. SQL access
Collapse
X
-
Да. В целом у курсоров плохая репутация, хотя насколько именно плохая зависит от СУБД. По правилу буравчика всё, что можно сделать на SQL используя логику множеств (set-based logic) надо делать именно так. Иногда (очень редко) бывают задачи в которых доступ к данным нужно программировать процедурно - вот там и используют курсоры.
-
Re: Программерам: cursor (table) access vs. SQL access
Сообщение от ChyslyvchykЕсли DB позволяет использовать both cursor (table) & SQL access, приходилось ли вам использовать оба метода в одном проекте? Any bugs?
это общий вопрос на тему cursor vs query
или есть какой-то конкретный вопрос, потому что devil is in the detail.
в общем, выкладывай условия задачи.I'm not retarded, I'm a very special boy.
Comment
-
Re: Программерам: cursor (table) access vs. SQL access
Сообщение от ChyslyvchykСообщение от Alexeiв общем, выкладывай условия задачи.
User1 is holding Table1 open in exclusive mode (cursor access)
User2 executes SQL statement "DROP TABLE Table2"
Сможет ли user2 удалить Table2?
какой субд?
Comment
-
Re: Программерам: cursor (table) access vs. SQL access
Сообщение от ChyslyvchykMilti-user environment
User1 is holding Table1 open in exclusive mode (cursor access)
User2 executes SQL statement "DROP TABLE Table2"
Сможет ли user2 удалить Table2?
Comment
-
Re: Программерам: cursor (table) access vs. SQL access
Сообщение от ChyslyvchykСообщение от Alexeiв общем, выкладывай условия задачи.
User1 is holding Table1 open in exclusive mode (cursor access)
User2 executes SQL statement "DROP TABLE Table2"
Сможет ли user2 удалить Table2?I'm not retarded, I'm a very special boy.
Comment
-
Re: Программерам: cursor (table) access vs. SQL access
Сообщение от sudoнаверное имелись в виду транзакции, а не курсоры. Что в конечном счете, скорее всего, меняет название темы на stored procedures vs client side queries.
Сообщение от sudoТогда ответ: без нормального тим лида, и скорее всего без нормального ДБА в компании - вам пабарабану.
Сообщение от Alexeiчто вы там на коленках собираете такого, что подобные вещи с базами вытворяете? Если бы я узнал о чем-то подобном у нас в конторе, выступил бы с предложением расстрелять всех, кто имел отношение к созданию данного творения.
Сообщение от Z1024сможет, если это полное описание задачи )))
какой субд?
Comment
-
Re: Программерам: cursor (table) access vs. SQL access
Сообщение от ChyslyvchykПереехали с DB2 на NexusDB, а теперь переписываем код с курсоров на SQL... постепенно ...
не зная деталей задачи: первое, что надо сделать, это отделить походы в базу от всего остального кода.
написать DAL (Data Access Layer), который будет все это делать, ходить в базу (неважно как), а наверх отдавать что-то удобоваримое (коллекции объектов, TClientDataSet, что там лучше подходит, я Delphi уже сто лет не трогал)
Второе - через этот интерфейс DAL можно ограничить способы похода в базу.
Если, вдруг девелопер решил вдруг в своей форме накосячить, открывать курсоры, делать table lock и еще и привязать это к действиям пользователя (например, открыть транзакцию, а потом выдать пользователю dialogue box, чего только программеры на Делфи и VB не делали в свое время ), то на уровне DAL все это можно отсечь - хочешь данные получить - делай запрос. Сделали запрос - на тебе данные, делай с ними что хочешь, они у тебя в памяти.
Хочешь обновить что-то в базе - дай мне данные, я сделаю запрос в базу.
Да и самый главный совет для Делфи - DAL должен быть написан в коде, без всяких визальных компонентов типа dataModule, TTable, TQuery и т.п. Т.е. просто Unit и все. Это выбьет почву из-под ног безруких программистов, которые ничего не могут без TTable
А вообще совет - пока кризис совсем не настал, ищи другую работу, где работают нормальные люди, у которых можно учиться по мере работы над интересными проектами.I'm not retarded, I'm a very special boy.
Comment
-
Re: Программерам: cursor (table) access vs. SQL access
Сообщение от ChyslyvchykПереехали с DB2 на NexusDB, а теперь переписываем код с курсоров на SQL... постепенно ...
А на что то нормальное типа MySQL или Postgres вы их уговорить не смогли? Вы вроде в веб и так не сильно рвались, но теперь это будет еще сложнее. Даже тот же DB2, по моему, перспективтее Нексуса.
Comment
Comment