Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];

Вниз

TDataSet, содержащий данные не из БД, а из массива   Найти похожие ветки 

 
bss   (2007-08-22 11:11) [0]

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


 
Sergey13 ©   (2007-08-22 11:17) [1]

Можно. Например клиентский датасет (CDS) или есть компоненты типа таблиц в памяти - в Rx была такая например.


 
sniknik ©   (2007-08-22 11:17) [2]

в сам TDataSet нет, но есть потомки типа TClientDataSet/TADODataSet/... которые позволяют создать рекордсет в памяти, перенести в него данные откуда угодно не проблема, только "ручками, стандартных методов типа LoadFromArray нет.


 
Sergey13 ©   (2007-08-22 11:18) [3]

Но если данные "вписываются" в структуру БД, может подумать об отказе от массива?


 
bss   (2007-08-22 11:22) [4]

Есть такая БД linter. Достучаться до не с помощью ADO удалось, но скорость не устраивает... К самой БД прилагается так называемый LinAPI, которым можно читать информацию во временные хранилища, но при этом хотелось бы как-то отображать данные с помощью стандартных DBAware-компонентов


 
Sergey13 ©   (2007-08-22 11:30) [5]

> [4] bss   (22.08.07 11:22)
> Достучаться до не с помощью ADO удалось, но скорость не устраивает
Может стучался неправильно? Я вроде читал как то про этот линтер - вроде отзывы были положительные. Хотя сам ее в глаза не видел - посему ХЗ.


 
Плохиш ©   (2007-08-22 11:38) [6]


> bss   (22.08.07 11:22) [4]

http://www.linter.ru/opportunities_rus.php

dbExpress - интерфейс для прямого доступа к СУБД ЛИНТЕР из популярных средств разработки Delphi/Kylix/C++ Builder.


 
DrPass ©   (2007-08-22 11:40) [7]


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

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


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

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


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


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


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


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

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


 
sniknik ©   (2007-08-22 12:31) [11]

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


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

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


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


> bss   (22.08.07 12:13) [10]


см. [11]

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

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

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


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

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


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

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


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

C Linter - LinOleDB


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

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


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

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


 
sniknik ©   (2007-08-22 13:45) [19]

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

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

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


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

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


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


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


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


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


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

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


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

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


 
sniknik ©   (2007-08-22 17:40) [24]

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

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

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

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

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

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


 
MsGuns ©   (2007-08-22 22:28) [25]

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


 
sniknik ©   (2007-08-22 23:25) [26]

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.044 c
15-1185524008
AZIZE
2007-07-27 12:13
2007.09.16
Вешаюсь в голову ничего не лезет


15-1187535053
Vrangel
2007-08-19 18:50
2007.09.16
Джостик2клавиатура


8-1165417477
algol
2006-12-06 18:04
2007.09.16
Разобрать медиа файл и построить спектр


2-1187762201
Виктор007
2007-08-22 09:56
2007.09.16
StrAlloc на АПИ


15-1187336496
ProgRAMmer Dimonych
2007-08-17 11:41
2007.09.16
Подкиньте, плз, значки для тем форума





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский