Объявление

Collapse
No announcement yet.

Программерам: cursor (table) access vs. SQL access

Collapse
X
 
  • Filter
  • Время
  • Show
Clear All
new posts

  • Программерам: cursor (table) access vs. SQL access

    Если DB позволяет использовать both cursor (table) & SQL access, приходилось ли вам использовать оба метода в одном проекте? Any bugs?

  • #2
    Да. В целом у курсоров плохая репутация, хотя насколько именно плохая зависит от СУБД. По правилу буравчика всё, что можно сделать на SQL используя логику множеств (set-based logic) надо делать именно так. Иногда (очень редко) бывают задачи в которых доступ к данным нужно программировать процедурно - вот там и используют курсоры.

    Comment


    • #3
      Re: Программерам: cursor (table) access vs. SQL access

      Сообщение от Chyslyvchyk
      Если DB позволяет использовать both cursor (table) & SQL access, приходилось ли вам использовать оба метода в одном проекте? Any bugs?
      подробнее можно о cursor (table) и SQL access.
      это общий вопрос на тему cursor vs query
      или есть какой-то конкретный вопрос, потому что devil is in the detail.

      в общем, выкладывай условия задачи.
      I'm not retarded, I'm a very special boy.

      Comment


      • #4
        Re: Программерам: cursor (table) access vs. SQL access

        Сообщение от Alexei
        в общем, выкладывай условия задачи.
        Milti-user environment
        User1 is holding Table1 open in exclusive mode (cursor access)
        User2 executes SQL statement "DROP TABLE Table2"

        Сможет ли user2 удалить Table2?

        Comment


        • #5
          Re: Программерам: cursor (table) access vs. SQL access

          Сообщение от Chyslyvchyk
          Сообщение от Alexei
          в общем, выкладывай условия задачи.
          Milti-user environment
          User1 is holding Table1 open in exclusive mode (cursor access)
          User2 executes SQL statement "DROP TABLE Table2"

          Сможет ли user2 удалить Table2?
          сможет, если это полное описание задачи )))
          какой субд?
          LiveDoco - Live SQL Server database structure explorer and documentation tool

          Comment


          • #6
            Re: Программерам: cursor (table) access vs. SQL access

            Сообщение от Chyslyvchyk
            Milti-user environment
            User1 is holding Table1 open in exclusive mode (cursor access)
            User2 executes SQL statement "DROP TABLE Table2"

            Сможет ли user2 удалить Table2?
            наверное имелись в виду транзакции, а не курсоры. Что в конечном счете, скорее всего, меняет название темы на stored procedures vs client side queries. Тогда ответ: без нормального тим лида, и скорее всего без нормального ДБА в компании - вам пабарабану. Уж простите мне мой французский.

            Comment


            • #7
              Re: Программерам: cursor (table) access vs. SQL access

              Сообщение от Chyslyvchyk
              Сообщение от Alexei
              в общем, выкладывай условия задачи.
              Milti-user environment
              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


              • #8
                Re: Программерам: cursor (table) access vs. SQL access

                Сообщение от sudo
                наверное имелись в виду транзакции, а не курсоры. Что в конечном счете, скорее всего, меняет название темы на stored procedures vs client side queries.
                Имелись ввиду курсоры (TTables и прочие разновидности в зависимости от базы).

                Сообщение от sudo
                Тогда ответ: без нормального тим лида, и скорее всего без нормального ДБА в компании - вам пабарабану.
                Да я знаю, но не считают наши менеджеры, что нам тим лид нужен.

                Сообщение от Alexei
                что вы там на коленках собираете такого, что подобные вещи с базами вытворяете? Если бы я узнал о чем-то подобном у нас в конторе, выступил бы с предложением расстрелять всех, кто имел отношение к созданию данного творения.
                Переехали с DB2 на NexusDB, а теперь переписываем код с курсоров на SQL... постепенно ...

                Сообщение от Z1024
                сможет, если это полное описание задачи )))
                какой субд?
                Полное описание. NexusDB не может. Она при вызове schema statement делает data structure reload всех tables.

                Comment


                • #9
                  Re: Программерам: cursor (table) access vs. SQL access

                  Сообщение от Chyslyvchyk
                  Переехали с DB2 на NexusDB, а теперь переписываем код с курсоров на SQL... постепенно ...
                  а как вы в базу ходите через SQL? в смысле как устроен data tier в приложении.
                  не зная деталей задачи: первое, что надо сделать, это отделить походы в базу от всего остального кода.
                  написать 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


                  • #10
                    Re: Программерам: cursor (table) access vs. SQL access

                    Сообщение от Chyslyvchyk
                    Переехали с DB2 на NexusDB, а теперь переписываем код с курсоров на SQL... постепенно ...
                    Ваше начальство знает толк в извращениях

                    А на что то нормальное типа MySQL или Postgres вы их уговорить не смогли? Вы вроде в веб и так не сильно рвались, но теперь это будет еще сложнее. Даже тот же DB2, по моему, перспективтее Нексуса.

                    Comment


                    • #11
                      мне кстати только что рекрутер звонил, ишет Делпхи девелопера

                      Comment

                      Working...
                      X