Питання по набору даних в adotable

Питання по набору даних в ADOTable

Як зробити що б коли переводіш ADOTable.active в # XA0; True він не підтягував з бази всі дані з таблиці бо на цей час програма виходить залипає.
Підкажіть як зробити що б він взагалі не підтягував
записи # XA0; або хоча б щоб підтягував останніх наприклад пару тисяч.

Подивитися параметри компонентів.
І не використовувати ADOTable.

> Останніх наприклад пару тисяч
Відсортувати в зворотному порядку і брати перші пару тисяч або сформулювати умову в ADOCommand.

В тому # XA0; раз у раз що я через ADOTable.
просто додаю записи в базу мені не треба переглядати дані. Переробляти мені якось не хочетса бо доведеться переписувати досить не малий шматок коду.
Крім як поміняти компонент на інший не як не можна вирішити цю проблему?


> Крім як поміняти компонент на інший не як не можна вирішити
> Цю проблему?

KyRo # XA0; (20.07.06 19:04) [2]
Тим більше, не потрібен ADOTable - це все таки двоскерованого компонент.

вообщето "проблему" вирішити можна, але це буде дуже через. еее, дупу, так м'яко скажемо.

досить згадати чий спадкоємець ADOTable. і прописати в нього запит з невиконуюча умовою, ось і не буде при відкритті "підтягувати" жодного запису, а додавати буде можна.

2 недоліки такогого способу, перший нестандартне і нецільове використання компонента (єдина гідна мета для ADOTable це # XA0; виявитися в кошику), друге повільне додавання в порівнянні з тим же ADOCommand. якщо це не відлякує те можу показати як зробити.
(І не приходь потім питати як прискорити; о)

Можна замінити AdoTable на ADOQuery, а ім'я його бити, то яке було у таблиці. Не думаю що переробляти доведеться багато.


> 2 недоліки такогого способу, перший нестандартне і нецільове
> Використання компонента (єдина гідна мета для
> ADOTable це # XA0; виявитися в кошику), друге повільне додавання
> В порівнянні з тим же ADOCommand. якщо це не відлякує
> То можу показати як зробити.

Покажи якщо не складно. Тому що дійсно переписувати код # XA0; швидше за все вже пізно та й # XA0; переробляти # XA0; доведеться рядків так 800.

> переробляти # XA0; доведеться рядків так 800
ха-ха 3 рази
на годину-дві роботи

KyRo # XA0; (21.07.06 11:36) [9]
Не розумію що можна там переробляти?
Навпаки (з ADOCOmmand або ADOQuery на ADOTable) я б ще зрозумів.

опісиваеш тип
type
# XA0; TMyADOTable = class (TADOTable);

і замість ADOTable1.Open; пишеш

# XA0; ADOTable1.TableName: = "SELECT * FROM" + ADOTable1.TableName + "WHERE 1 = 2";
# XA0; with TMyADOTable (ADOTable1) do begin
# XA0; # XA0; CommandType: = cmdText;
# XA0; # XA0; Open;
# XA0; end;

зрозуміло, що якщо писати в ім'я відразу запит то перепрісвавать його буде не треба, а якщо # XA0; CommandType заздалегідь поставити в cmdText то і цього не треба буде робити (можливо. Може змінюється десь по ходу. Перевір), тоді спрацює і стандартний Open.

але поміняти Компаненти на ADODataSet всетаки краще (та й не складно зовсім, 800 рядків переписувати не доведеться, тільки одну практично, просто ім'я залиш ADOTable1 а тип йому поміняй.)


> Але поміняти Компаненти на ADODataSet всетаки краще (та й
> Не складно зовсім, 800 рядків переписувати не доведеться, тільки
> Одну практично, просто ім'я залиш ADOTable1 а тип йому
> Поміняй. )

Тоді питання я зможу через той же ADOCOmmand добовлять рядки в форматі
Inco_Table.Insert;
Inco_Table.FieldByName ( "ID_ATM_NAME"). Value: = ATM_Name_Id;
Inco_Table.FieldByName ( "TRANS_INFO"). Value: = Trans [2];
Inco_Table.post;
?
Або там треба на SQL Писати Insert (ітд.)?


> Використовуй TADOQuery

Чому саме TADOQuery?

Там все методи як у TADOTable, єдине що ти можеш написати SQL на вибірку тобто замість імені таблиці пишеш SELECT * FROM MYTABLE WHERE.
А Insert, Edit, POst все є, як і у ADOTable

Дякую буду експерементувати. а то з ростом бази затримка не помітне на початку починає напружувати.

> Чому саме TADOQuery?
тому що після ADOTable і він тобі казкою здасться.

а взагалі, рідні для ADO, це # XA0; ADOConnection, ADOCOmmand, ADODataSet, RDCConnection їх і треба використовувати при необхідності, все інше в кошик однозначно.

Все переробив TADOQuery # XA0; подошол ніби все відмінно. Всім дякую.