![]() |
|
![]() ![]() ![]() |
|
Sliva |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Добрый день! Я пробую работать с компонентами вкладки ADO для бд Access.
Скажите пожалуйста, с чего начать? С чем связывать DBGrid и TDataSet и что прописывать в ADOConnection? ![]() До этого я использовала компоненты TQuery, TTable. В чем отличие? |
|||
|
||||
Rodman |
|
|||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 22 Всего: 122 |
разбери. а если че то не понятно - спрашивай
|
|||
|
||||
Savek |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
Если нет литературы, посмотри хотя бы что в гугле есть справка ADO
|
|||
|
||||
Exai1e |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 908 Регистрация: 3.12.2006 Где: Moscow Репутация: нет Всего: 30 |
© Delphilab.ru Это сообщение отредактировал(а) Exai1e - 7.2.2008, 20:57 -------------------- "Решение зависит от выбранного геморроя" © Snowy "у нас как в армии - либо работает, либо так и задумано" |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
belousov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 317 Регистрация: 21.11.2006 Где: Москва Репутация: нет Всего: 6 |
а еще можно создать к проекту файл типа DataModule и все эти блоки таблиц и запросов поместить туда, так значительно удобнее
-------------------- NIHIL VERUM EST LICET OMNIA |
|||
|
||||
Sliva |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
![]() ![]() ![]() На самом деле мне надо по-хорошему в одной программе работать с двумя БД. Одна - Sybase, другая - Access. Из Sybase данные беру и ими надо заполнить таблички в Access. Сначала хотела делать через ADO. Но мне кажется, можно как-то попрще сделать. Есть компоненты, которые связывают 2 БД? ![]() |
|||
|
||||
Sliva |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
![]() Какие компоненты мне надо использвать? Подскажите, пожалуйста |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Куда уж проще, чем ADO?
![]() Для открытия двух баз нужно два tAdoConnection. Ну и две (как минимум) tAdoTable. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Sliva |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Данкинг,
Я последовала вашему совету. Все подсоединила, все замечательно. На кнопку поставила событие:
(изначально стояло):
А как организовать доступ к извлечению данных из Sybase в Access? Я хочу извлекать данные из Sybase и тут же их вставлять в Access, но не знаю как это делать ![]() |
||||
|
|||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Конкретно про Sybase ничего сказать не могу, ибо ни разу с ней не работал, но суть в том, что если через ADO подключаешься к какой бы то ни было БД, то остальная работа уже стандартна, т.е.:
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Sliva |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Данкинг,
Надо же как-то цикл организовать? Это в данной ситуации можно сделать вот так:
????? Уточнить ![]()
В ['pole1'] должно быть имя столбца таблицы Access или поле, которое я сама назвала в ADOTable? Это сообщение отредактировал(а) Sliva - 11.2.2008, 11:52 |
||||
|
|||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
А это не одно и то же? ![]() А проход по датасету я делаю обычно при помощи for, но и так нормально, конечно. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Sliva |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Данкинг,
а ошибка такая: dataset not edit or insert mod В цикле надо заполнять insert'ом поля таблицы Access ![]() а тут присваивание |
|||
|
||||
Данкинг |
|
||||||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Ну да, разумеется. Перед добавлением данным делаем:
(именно для добавления новой записи). А для изменения уже существующей пишем:
(перед этим встав на нужную строку таблицы). В конце же (как после append, так и после edit) для внесения изменений в таблицу пишем:
Только зачем ты в запросе меняешь данные? Может быть, так тоже будет работать, но я всегда меняю в самой таблице (т.е. tAdoTable), а не в запросе. -------------------- There's nothing left but silent epitaphs. |
||||||||
|
|||||||||
Sliva |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
СПАСИБО!
Посмотрите, пожалуйста, что я делаю не так:
![]() Cannot perfom this operation on closed dataset. Наверное из-за того, что я открываю Query с DataSet, а работаю с ADO_Sybase и ADO_Access - а они компоненты TADOTable А как мне тогда запросы писать в TADOTable - я не знаю. Пробовала только с TQuery Дело в том, что запрос обязательно мне делать с параметром:
Эта строчка обязательна. От Cannot perfom this operation on closed dataset. я избавилась - поставила ADO_Ac.Activ=true, но теперь другая ошибка:
на этой строке выдает ошибку: Invalid Variant Operation Это сообщение отредактировал(а) Sliva - 11.2.2008, 15:48 |
||||||
|
|||||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
ADO_Access.open есть?
Добавлено @ 19:34
Типы совпадают? Пустые строки есть? А в adotable запросы писать не надо, это компонент для работы с таблицами. А вот если нужно сделать запрос - выборку и т.п., тогда уже нужен adoquery. Это сообщение отредактировал(а) Данкинг - 11.2.2008, 19:35 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Sliva |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Данкинг,
с типами я разобралась - написала
т.е. раньше использовала TAdoTable, а исправила на TAdoQuery. У меня теперь немного другая проблема ![]() Я добавляю данные в одну таблицу Access, а она связана с 3-мя другими. Я сделала 4 adoQuery, 4 ado connection для подключения к каждой таблице Access. (Может, нужно везде использовать одно adoConnection? ) И потом 4 раза написала
потом пишу
делаю Append каждого Ado1Query для Access и пополняю каждую таблицу, которая связана с данной, НО возникает такая ошибка: Field privilege_id cannot be modified Т.е. нельзя добавлять первичный ключ. А почему? Хотя таблицы БД пустые! |
||||||
|
|||||||
Sliva |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Я нашла почему так! На поле, на котором вылетает программа, в свойствах стоит ReadOnly=true
![]() Сейчас еще разбираюсь. Наверное, вопросы будут еще ![]() |
|||
|
||||
Sliva |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
![]() ![]() ![]() Это кошмар какой-то! Снова ошибка! Вот теперь и не знаю что делать совсем. ПОМОГИТЕ РАЗОБРАТЬСЯ, ПОЖАЛУЙСТА!!!!
ОШИБКА: class EOleException with message: Изменения не были успешно внесены из-за повторяющихся значений в индексе, ключевых полях или связяхю Измените данные в полях, содержащих повторяющиеся значения, удалите индекс или переопределите его, чтобы разрешить повторяющиеся значения Что делать с этим? ![]() ![]() ![]() |
|||
|
||||
Rodman |
|
|||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 22 Всего: 122 |
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |