Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TDataSet, содержащий данные не из БД, а из массива


Страницы:   1 2

bss ©   (2007-08-22 11:11:00) 

Можно ли в TDataSet перенести данные из массива, а не из БД, чтобы использовать для отображения в компонентах DBAware?


sniknik   (2007-08-22 23:25:00) [1]

ну как это откуда? см. пост [4], из сверхбыстрого LinAPI, только вот оно настолько быстро все делает, что не успевает создать приемлемую структуру для работы с этими полученными данными. ;)


MsGuns   (2007-08-22 22:28:00) [2]

Стесняюсь спросить, а откуда данные появляются в массиве ?


sniknik   (2007-08-22 17:40:00) [3]

> Insert, Delete и Update соответственно.
в ado этого соответственно нету, как же так у вас программа работала? с как ты там говорил? "без каких-либо изменений в коде..."

> Может быть, если Вы мне объясните разницу работы компонент ADO и zdbo
может быть... попробую.
> мне будет проще решить проблему.
вот это вряд ли, т.к. ты явно ждеш не этих объяснений.

во первых TADOQuery я не использую, и никому не советую... (как и TADOTable, TADOStoredProc)

во вторых с zdbo "плотно" не работал, только тестил да и то давно, поэтому по нему мнение может быть субъективным плюс еще и устаревшим...

в третьих тестил я его на mssql (возможно еще с аксесс не помню...), т.е. формально ты вправе сказать "не, это не то мне для mysql надо..." а как он работает с ним я не только забыл но еще и не знал...

ну так вот насчёт разницы, разница только в том, что в zeos реализован и пред настроен всего один метод работы с данными (во сяком случае переключить на чисто клиентский курсор мне не удалось, возможно в силу слабого их знания), в то время как в ado их несколько и настройка нужного лежит на программисте.
и то и то с mssql работает с использованием OLEDB (т.е. сказки про "прямой" доступ можно забыть), об этом есть (было?) описание на сайте, сейчас чего то его не нашёл (не открывается. хотел ссылку указание про OLEDB дать).
настройка zeos-ов примерно такая же как при связке ADODataSet c серверным курсором -> провайдер данных -> клиентский датасет. т.е. оптимизация на быстрое открытие таблиц (что при настройках по умолчанию в ado дольше) с дальнейшей докачкой данных по мере обращения (что подтверждалось тем что время открытия в нем было маленьким и стабильным независимо от данных, а вот время открытия + время фетча до конца рекордсета много больше открытия той же таблицы в ado с клиенским курсором (совмещает открытие и фетч))...
блин. ну и т.д. короче, а то слишком много получается (и главное без толку).


bss   (2007-08-22 16:20:00) [4]

Используются запросы TZQuery (zdbo) или TADOQuery для выборки данных (select) и для отображения в стандартных компонентах DBAware. Для изменения данных даются SQL-команды (с помощью метода ExecSQL у запроса) Insert, Delete и Update соответственно.
Может быть, если Вы мне объясните разницу работы компонент ADO и zdbo, мне будет проще решить проблему.
С уважением жду ответа


sniknik   (2007-08-22 14:53:00) [5]

> База та жа с тем же объемом данных, программа та же. Груз получается одинаковый?
не совсем, т.к. подразумевалось не это, а методы работы с компонентами, то что у одних "груз" другие даже не обрабатывают, и наоборот.
может по другой аналогии будет понятнее - "-  у меня жигуль соседский бмв на раз делает! --- ??? а мы соревновались с заклиненными ручником и полуприжатой педалью тормоза, а они у меня не работают".  
так понятнее?


Сергей М.   (2007-08-22 14:42:00) [6]


> sniknik ©   (22.08.07 13:45) [19]


> нафига тебе партизаны?


Судя по [20] вот уж и я думаю - нафига ?


bss   (2007-08-22 13:59:00) [7]

Re:sniknik
База та жа с тем же объемом данных, программа та же. Груз получается одинаковый?


sniknik   (2007-08-22 13:45:00) [8]

> как показала практика, в 12 раз быстрее, чем та же программа, но связь через ADO без каких-либо изменений в коде...
а трактор на соревнованиях в 1000 раз медленнее того же ферари, без каких нибудь изменений в правилах/месте соревнований...

но попробуй загрузить в ферари тот же груз что тянет трактор и посоревноваться...

Сергей М. ©   (22.08.07 13:22) [17]
нафига тебе партизаны?


bss   (2007-08-22 13:43:00) [9]

Provider=LinOleDB;Password=MANAGER;Persist Security Info=True;User ID=SYSTEM;Data Source=SCUD;Charset=""'


Сергей М.   (2007-08-22 13:22:00) [10]

Как выглядит строка коннекта ?


bss   (2007-08-22 13:19:00) [11]

C Linter - LinOleDB


Сергей М.   (2007-08-22 12:55:00) [12]

А какой провайдер используешь ?


bss   (2007-08-22 12:52:00) [13]

TADOQuery. TADOTable не использую.


Сергей М.   (2007-08-22 12:49:00) [14]


> bss   (22.08.07 12:13) [10]


см. [11]

ADO не занимается непосредственно ни выборкой ни обработкой данных, этим занимаются "прослойки"  - ODBC- или OLEDB-драйверы, при посредничестве которых ADO контактирует с той или и ной конкретной СУБД.

Вариант с "тормозами" этих "прослоек" весьма маловероятен.

TADOTable используешь ?


bss   (2007-08-22 12:47:00) [15]

До этого программа работала с MySQL. Работа программы с MySQL через компоненты zdbo, как показала практика, в 12 раз быстрее, чем та же программа, но связь через ADO без каких-либо изменений в коде...


sniknik   (2007-08-22 12:31:00) [16]

в 99% случаев жалующиеся на скорость работы ADO сами же в ней и виноваты. что то мне подсказывает, что и ты не исключение.


bss   (2007-08-22 12:13:00) [17]

скорость выборки и обработки данных


Сергей М.   (2007-08-22 12:09:00) [18]


> скорость не устраивает


Скорость чего конкретно ?


bss   (2007-08-22 11:48:00) [19]

dbExpress не работает с Borland Studio 2005/2006 о чем они сами признаются. То бышь все вылетает при попытке сконектиться


DrPass   (2007-08-22 11:40:00) [20]


> К самой БД прилагается так называемый LinAPI, которым можно
> читать информацию во временные хранилища

Сам сделай какой-нибудь TLinterDataSet для прямого доступа к ней. Это не так сложно, как может показаться. Статья по разработке собственного датасета есть, например, на IXBT. И другие тебе спасибо скажут...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо