Редагування DataSet
←→Захо ( 2003-07-02 08:48 ) [1]
Використовувати TIBUpdateSQL разом із TIBQuery. А ще краще - не використовувати TIBQuery та TIBTable взагалі. Є TIBDataSet - ось ним і потрібно скористатися.
←→N&N (2003-07-02 08:51) [2]
>ZachoВас зрозумів, велике спасибі!
←→Digitman (2003-07-02 09:27) [3]
оскільки IB-сервер - це SQL-сервер, то доступом до об'єктів бази даних, керованої сервером, із боку клієнтського докладання здійснюється з допомогою посилок серверу SQL-пропозицій, містять структуровані запити вибірку, вставку, модифікацію і видалення записів.
пропозиція SELECT - запит на вибірку записів пропозиція INSERT - запит на вставку записів пропозиція UPDATE - запит на модифікацію записів пропозиція DELETE - запит на видалення записів
Об'єкт TIBTable при зверненні до будь-якого з його методів Open, Insert+Post, Edit+Post, Delete динамічно (приховано від тебе) будує відповідні запитові SQL-пропозиції до серверів SELECT, INSERT, UPDATE, DELETE. Причому, якщо ReadOnly = True, то пропозиції INSERT, UPDATE, DELETE не будуються і відповідні запити не посилаються серверу, тобто. набір записів, повернутих під час Open (SELECT) є неоновлюваним/немодифікованим. Використання об'єкта TIBTable у ряді випадків небажано саме через динамічну побудову/препарування запитів щоразу, коли відбувається виклик методів, що вимагають оновлення/зміна набору записів, повернутих по Open.
Об'єкт TIBQuery може в кожний момент часу зберігати лише одну SQL-пропозицію, наприклад, SELECT. Тому без зміни тексту SQL-пропозиції та без зміни методу звернення до об'єкту TIBQuery набір записів зякими він працюватиме, оновлюваним не буде.
Об'єкт TIBUpdateSQL спеціально створений для зберігання запитів зміни записів (INSERT, UPDATE, DELETE).
Об'єкт TIBDataSet дозволяє зберігати будь-яку комбінацію з перерахованих вище запитів. При цьому, якщо не вказувати тексти SQL-запитів на вставку/зміну/видалення, набір записів, повернутих при Open (зрозуміло, Select-запит д.б. вказаний) буде неоновлюваним, так само як у ситуації з IBTable.ReadOnly = True .
Оскільки запити, надсилані об'єктами TIBQuery, TIBUpdateSQL і TIBDataSet, за замовчуванням препаруються одноразово і автоматично (для подальшого багаторазового виконання по Open і ExecSQL), використання цих об'єктів у багатьох випадках краще, оскільки багаторазове повторне препарування запитів (як у випадку з TIBTable) може відчутно знизити продуктивність роботи кл.додатки та займати додаткові ресурси системи.
←→N&N ( 2003-07-02 10:22 ) [4]
>DigitmanВелике спасибі за докладне роз'яснення