C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: DBGrid&MySQL&dbExpress  (Прочитано 17482 раз)
khan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 93


« : 14 апреля 2007, 17:37:43 »

Итак, решил попробовать сделать программу на dbExpress.
Все вроде подрубился, но вот беда с DBGrid никак не могу вывести содержимое таблиц.
схема такая:
SQLQuery1->Connection=SQLConnection1
DataSourse1->DataSet=SQLQuery1
DBGrid->DataSourse=DataSourse1

Почему при попытке задать DBGrid->DataSourse=DataSourse1
выдается сообщение:
Operation not allowed on a unidirectional database
Записан
BadMan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 67


« Ответ #1 : 14 апреля 2007, 18:58:09 »

dbExpress выдает, насколько я помню, только однонаправленные наборы, в которых данные можно читать последовательно, но нельзя возвратиться назад.
DBGrid - двухнаправленный контрол, в нем можно перемещаться куда угодно.
Вот он и выдает: операция несовместима.
Чтобы использовать DBgrid надо использовать компоненты с других вкладок (BDE, ADO и т.п.)
Записан
khan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 93


« Ответ #2 : 14 апреля 2007, 21:13:14 »

dbExpress выдает, насколько я помню, только однонаправленные наборы, в которых данные можно читать последовательно, но нельзя возвратиться назад.
DBGrid - двухнаправленный контрол, в нем можно перемещаться куда угодно.
Вот он и выдает: операция несовместима.
Чтобы использовать DBgrid надо использовать компоненты с других вкладок (BDE, ADO и т.п.)


Как же выводить данные из dbExpress? только используя StringGrid?
Записан
Игорюха
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 159

Творю чудеса...


« Ответ #3 : 14 апреля 2007, 23:07:06 »

По этому dbExpress немного быстрее, что он однонаправленный... Возьникает резкая необходдимость использовать именно dbExpress? Или чисто спортивный интерес. Если второе то не заморачивайся бери ADO, BDE, ...
По-моему в однонаправленных наборах с группировкой данных касяки большие возникают, при построении отчетов столкнулся с такой проблеммой, перешел на другие компоненты, все ок стало Улыбка
Записан
khan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 93


« Ответ #4 : 15 апреля 2007, 12:52:23 »

Вообще, спортивный интерес. Но не люблю программу недоработанной оставлять.
Однако, если мне предложат связку MySQL + Builder где нужно только кинуть несколько компонентов и связать их причем стандартных, буду признателен. Просто когда-то была такая задача и решил я ее опустившись до исходных файлов MySQL. Этот вариант как мне кажется самый долгий в плане разработки.

Кстати, я с базами данных только начинаю разбираться. Правильно ли я понимаю что если использовать BDE надо будет потом его установить на комп пользователя? Схожая ли ситуация с ADO? И каковы основные отличия BDE от ADO? Понимая что этому посвящают целые статьи, хотелось бы узнать мнение специалистов в двух словах.
« Последнее редактирование: 15 апреля 2007, 12:58:53 от khan » Записан
BadMan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 67


« Ответ #5 : 15 апреля 2007, 13:07:56 »

При использовании BDE его нужно будет установить на компьютер пользователя, но это никаких проблем не составляет - установку его поддерживает installshield.
Можно не ставить его вовсе, взять только библиотеки, а настройку алиасов и баз произвести прямо из программы.
Лично я отказался от BDE по нескольким причинам:
во-первых все равно надо помнить про алиасы, дополнительные библиотеки и т.п.
во-вторых фирма Борланд объявила о прекращении поддержки данного продукта - следовательно не будет выходов под новые винды и т.п.
в-третьих на большинстве тестов BDE показало себя медленнее ADO (именно ADO я сейчас использую)

Про ADO могу сказать только, что эта штука достаточно стандартная, ничего дополнительно как правило ставить не надо, скорость вполне приемлемая (для моих задач).

Я нашел только 1 вариант, когда BDE показал скорость ощутимо выше ADO, во всех остальных проведенных мною тестах ADO был шустрее.
Записан
khan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 93


« Ответ #6 : 15 апреля 2007, 13:12:35 »

А разве не нужно для работы с ADO искать сторонний ODBC драйвер?
Записан
BadMan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 67


« Ответ #7 : 15 апреля 2007, 13:14:28 »

Как правило он идет в комплекте со всеми серьезными СУБД. Наиболее стандартные СУБД поддерживается непосредственно Windows.
Записан
khan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 93


« Ответ #8 : 15 апреля 2007, 15:03:42 »

А если говорить конкретно о MySQL 5 ?
Записан
BadMan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 67


« Ответ #9 : 15 апреля 2007, 16:23:03 »

Поройтесь в поисе - наверняка кто-то уже с этим сталкивался.
Например, тут:
http://forum.vingrad.ru/topic-140721/hl/mysql/index.html
Записан
Valdemar
Давний друг
**

Сказали спасибо: +60/-4
Offline Offline

Сообщений: 285


« Ответ #10 : 16 апреля 2007, 08:55:03 »

Я для работы с MySQL использую компоненты Zeos http://sourceforge.net/project/showfiles.php?group_id=35994. Кроме одной dll при распространении программы ничего не требуется.
Записан
olegenty
Администратор
***

Сказали спасибо: +16/-7
Offline Offline

Сообщений: 520


« Ответ #11 : 16 апреля 2007, 09:11:44 »

однонаправленность DBX легко преодолевается при использовании EhLib с помощью связки компонентов:
TDBXDataDriverEh + TMemTableEh + TDataSource + TDBGridEh/TDBGrid/etc
Записан
khan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 93


« Ответ #12 : 16 апреля 2007, 11:28:08 »

Давайте все же о стандартных компонентах, насколько я понял ODBC уже поддерживается Виндой и можно используя ADO быстро начать работать с базой. Так ли это?
Записан
olegenty
Администратор
***

Сказали спасибо: +16/-7
Offline Offline

Сообщений: 520


« Ответ #13 : 16 апреля 2007, 12:09:22 »

так, ODBC поддерживался виндой всегда.
Записан
akson
новенький
*

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 2


« Ответ #14 : 16 апреля 2007, 12:34:54 »

Если желаете ограничиться стандартными компонентами, тогда, работая с DBX, используйте связку TSQLQuery - TDataSetProvider - TClientDataSet - TDataSource - TDBGrid. Это решает проблему однонаправленности TSQLQuery.
Записан
ion
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 45


« Ответ #15 : 16 апреля 2007, 12:38:57 »

Из своего опыта.
Експресс глючит под MySQL,  я говорю про стандартный, про не стандартный не скажу,
так как  беспланый не ставил, усть плантый, в районе 500 баксов.
Драйвер под Пятый, тоже глючный, проблемы  с обработкой большой информации
с проходами, работает через кеш, и постепенно умирает ждя субмита,
отучить его так и не мог
Записан
khan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 93


« Ответ #16 : 17 апреля 2007, 10:11:42 »

В общем из всего сказанного понимаю что использование MySQL API решает все эти проблемы. Просто на разработку мелочей уходит очень много времени, думал можно сильно сократить его используя компоненты. Но ко всему не стандартному у меня предвзятое отношение (разве что оно идет в исходных кодах и/или не внедряется в студию).
Записан
BadMan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 67


« Ответ #17 : 17 апреля 2007, 11:47:09 »

В общем из всего сказанного понимаю что использование MySQL API решает все эти проблемы. Просто на разработку мелочей уходит очень много времени, думал можно сильно сократить его используя компоненты. Но ко всему не стандартному у меня предвзятое отношение (разве что оно идет в исходных кодах и/или не внедряется в студию).

С этим мнением не согласятся очень многие - ведь компоненты пишутся зачастую весьма серьезными фирмами, взять, например, палитру "Стандартных" компонетов Билдера Indy. Но ведь это не Борландские компоненты, а стороннего разработчика.

Другой момент: надо очень осторожно относиться к бесплатным и очень дешевым компонентам. Закон рынка - на хорошую вещь тратится много ресурсов, поэтому она не может стоить очень дешево.

Я предпочитаю стандартные компоненты, собственные и приобретенные (скачанные) с исходниками - где в случае чего можно порыться (если время есть, конечно).

Но доля истины в этом есть: Хочешь, чтобы все было заточено под тебя - пиши сам.
Записан
Yurkins
Участник
**

Сказали спасибо: +36/-3
Offline Offline

Сообщений: 368


« Ответ #18 : 03 мая 2007, 11:25:40 »

Советую в место DBGrid+MySQL+dbExpress исполйзовать DevExpress.QuantumGrid + MySQL + MyDAC
Записан
olegenty
Администратор
***

Сказали спасибо: +16/-7
Offline Offline

Сообщений: 520


« Ответ #19 : 07 мая 2007, 22:57:50 »

2 Yurkins - это уже предлагалось выше, под эгидой EhLib
Записан
khan
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 93


« Ответ #20 : 06 августа 2007, 10:33:31 »

После выхода новой студии RAD2007 в поставку которой входит драйвер для работы с MySQL4/5 эта тема снова становится актуальной. Кто тестировал новые драйверы? Еще интересует организация связей через MasterSource с использованием id.
« Последнее редактирование: 06 августа 2007, 10:56:20 от khan » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в: