Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.043 c
4-1077289711
Bless
2004-02-20 18:08
2004.04.25
Toolbar как ресурс


1-1081185321
В л а д и м и р
2004-04-05 21:15
2004.04.25
TEdit: проверка на ввод информации


11-1065294540
Wiz@rd
2003-10-04 23:09
2004.04.25
KolWebBrowser


14-1081133494
face
2004-04-05 06:51
2004.04.25
Как заработать деньги в инете


1-1081495413
baromir
2004-04-09 11:23
2004.04.25
Запуск проверки при открытии формы (+)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский