Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Вниз
dbExpress Найти похожие ветки
← →
DimonNew © (2004-03-30 12:59) [0]Вопрос по компонентам dbExpress. Одна и таже ошибка в 7 и 8 Delphi.
Есть комонеты SQLConnection, SQLQuery, DataSet.
На форме две комоненты DBGrid и DBLookupComboBox.
При связывании таблица с DataSet появляется ошибка :
Operation not allowed on a unidirectional dataset.
А при занесения DataSet в ListSource компонеты DBLookupComboBox при открытии списка во время работы программы, в списке каждая запись повторяется несколько раз и выдает ошибку :
Stack overflow.
Может при работе с dbExpress нужно что-то еще настраивать?
← →
Anatoly Podgoretsky © (2004-03-30 13:02) [1]Нет ищи ошибку в своем коде.
← →
DimonNew © (2004-03-30 13:09) [2]Дело в том, что я все делаю визуально.
← →
sniknik © (2004-03-30 13:13) [3]и даже догадываюсь где
> Operation not allowed on a unidirectional dataset.
датасет открыт с серверным курсором, а нужно с локальным.
← →
sniknik © (2004-03-30 13:14) [4]> Дело в том, что я все делаю визуально.
ну да, а визуально ошибки не делаются?
← →
DimonNew © (2004-03-30 13:17) [5]Где это устанавливается?
← →
sniknik © (2004-03-30 13:20) [6]а вот это хз., сказал по аналогии с ADO там тоже такую ошибку выдает и именно в этом случае.
← →
DimonNew © (2004-03-30 13:22) [7]Нет я сейчас проверил через ADO, все нормально.
← →
Johnmen © (2004-03-30 13:29) [8]SQLConnection-SQLQuery(SQLDataSet)-DataSetProvider-ClientDataSet-DataSource-DBGrid(etc)
Здесь ClientDataSet уже м.б. двунаправленным.
← →
DimonNew © (2004-03-30 13:29) [9]Нашел в чем дело, отрывок из книги по Delphi 7 для проф.:
Отображение данных при помощи компонентов со страницы Data Controls также ограничено. Нельзя использовать компоненты TDBGrid и TDBCtrlGrid, а в компоненте TDBNavigator не забудьте отключить кнопки возврата на одну позицию назад и перехода на последнюю запись.
← →
just me (2004-03-30 13:32) [10]dbExpress просто так вместе с DBGrid работать не будет - все таки SQLDataSet реально однонаправленные датасеты использует, а грид можно скроллировать в любом направлении. Так что прийдется использовать дополнительный DataSetProvider или SimpleDataSet.
Поищи в сети статейку (вроде она была когда-то на www.ibase.ru) "Перенос приложений с BDE на dbExpress" - там про это написано
← →
Desdechado © (2004-03-30 13:33) [11]в отличие от БДЕ, dbExpress-овские датасеты однонаправленные, к ним нужно прилеплять ClientDataset (как сказал Johnmen), но только для случаев, когда нужно ходить по датасету вперед-назад (т.е. при работе с визуальными компонентами). Если же надо просто пройтись по датасету один раз (простейший SELECT Count(*)), то можно и без ClientDataset
← →
DimonNew © (2004-03-30 13:35) [12]Спасибо, буду разбираться.
← →
sniknik © (2004-03-30 14:03) [13]вот ведь муть какая :), проще по моему на ADO перейти с клиентским курсором. (аналогично будет выкачивать данные как и с прицепленным ClientDataset)
DimonNew © (30.03.04 13:22) [7]
> Нет я сейчас проверил через ADO, все нормально.
там по умолчанию наоборот стоит
у тебя ситуация как если бы
CursorLocation = clUseServer
CursorType = ctOpenForwardOnly
DimonNew © (30.03.04 13:35) [12]
> Спасибо, буду разбираться.
зачем? чего нет возможности заменить компоненты?
← →
DimonNew © (2004-03-30 14:14) [14]Под 8 версией?
← →
DimonNew © (2004-03-30 14:23) [15]Все заработало под 7 и 8 версиями:
SQLConnection-SQLQuery(SQLDataSet)-DataSetProvider-ClientDataSet-DataSource-DBGrid(etc)
Спасибо за помощь.
← →
roottim (2004-03-30 14:35) [16]2SQLConnection-SQLQuery(SQLDataSet)-DataSetProvider-ClientDataSet-DataSource-DBGrid(etc)
а это значит что в инсталятор пойдет midas.dll... либо он будет прилинкован в exe. т.е некое неудобство по инсталяции и по лицензии..
← →
sniknik © (2004-03-30 14:51) [17]> Под 8 версией?
а его там нет? а как же ADO.NET про который так много говорят? а если не под net пишеш то там D7.1 должна быть включена(именно для этого) по тем же слухам. (у меня ее нет, только то что слышал)
← →
Desdechado © (2004-03-30 14:57) [18]2 roottim
midas.dll не требует лицензии при распространении, вкомпоновать в ЕХЕ - 200 кб
← →
DimonNew © (2004-03-30 15:06) [19]Если делать приложение в D8 как VCL Forms, то закладка ADO.NET не доступна. Доступны лишь dbExpress и BDE. А если делать Windows Forms то доступно только ADO.NET. Может есть другой способ, но пока я не нашел.
И вопрос по распространению приложения с компонентами dbExpress и DataSetProvider,ClientDataSet. Какие нужны библиотеки, кроме
midas.dll. И нужно ли настраивать где-нибудь их.
← →
bushmen © (2004-03-30 15:18) [20]>вот ведь муть какая :), проще по моему на ADO перейти с >клиентским курсором. (аналогично будет выкачивать данные как и >с прицепленным ClientDataset)
Где-то читал, что вроде dbExpress побыстрее ADO работает. Но не проверял.
← →
Desdechado © (2004-03-30 15:24) [21]для распространения прог с dbExpress нужен еще драйвер dbexpXXXX.dll - той СУБД, которую используешь. есть родные от борланда, есть много от третьих фирм
← →
YurikGl © (2004-03-30 20:07) [22]А что мешает пользовать SimpleDataset?
← →
sniknik © (2004-03-30 23:59) [23]> де-то читал, что вроде dbExpress побыстрее ADO работает. Но не проверял.
ну если у него по умолчанию серверный курсор выставлен а у ado локальный то просто бросив компаненты на форму и открыв запросы получим потрясающую разницу в скорости открытия (в пользу dbExpress).
так что слухи обоснованы (значит ли что они правдивы? ;).
думаю если ado настроить аналогично разницы не будет. а вот с настройками в ado гораздо лутше (больше режимов работы), это точно.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.04 c