Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

работа с базой данных Access [D7, Access ]


Lewka ©   (2007-04-19 12:28:00) 

Я подключил базу данных Access через ADO и при работе в программе при удалении строки с помощью DBNavigator мне выдается сообщение
с текстом:"Слишком сложный запрос". В базе Используется всего одна таблица. Подскажите Чего я упустил при создании приложения.


Amoeba   (2007-04-20 10:44:00) [1]


> Робинзон   (20.04.07 09:36) [8]
>
> Еслия правильно понял в навигаторе не работает удаление.
>  Тогда в чем проблема поставь кнопку DelButton и в событии
> Click напиши следующий код if Application.MessageBox(PChar('Вы
> действительно хотите удалить '+DataModule1.ADOTableDSDesigner.
> AsString), 'Внимание!!!', MB_OKCANCEL)=id_OK then
>  DataModule1.ADOTable.Delete;
> end;
>

И чем принципиальноэтот код отличается от того, который выполняется при нажатии на соответствующую кнопку навигатора?


ЮЮ   (2007-04-20 09:54:00) [2]

> ADO может составить условие уникальности записи на удаление и без ключа

и получить "Слишком сложный запрос", ибо полей там, явно, немеряно, коль таблица в базе только одна, а поля большкй частью символьные (по той же причене) . Однако, имея ключ, трудно составить "Слишком сложный запрос"


Робинзон   (2007-04-20 09:36:00) [3]

Еслия правильно понял в навигаторе не работает удаление. Тогда в чем проблема поставь кнопку DelButton и в событии Click напиши следующий код if Application.MessageBox(PChar('Вы действительно хотите удалить '+DataModule1.ADOTableDSDesigner.AsString), 'Внимание!!!', MB_OKCANCEL)=id_OK then
 DataModule1.ADOTable.Delete;
end;


sniknik   (2007-04-19 16:34:00) [4]

> Ключевое поле в таблице есть?
думаешь он знает что это такое? :)

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


Sergey13   (2007-04-19 16:27:00) [5]

> [3] lewka ©   (19.04.07 15:18)

Ключевое поле в таблице есть?


sniknik   (2007-04-19 16:25:00) [6]

> Хотя в программе нет вообще запросов
это тебе так кажется, ADO в любом случае использует запросы, даже для ADOTable (который нужно ВЫКИНУТЬ (уже прямым текстом, не до намеков...)).

при удалении тоже посылается запрос... как он формируется (будет ли правильным/понятным jet) зависит от названия таблицы и структуры. (из какой таблицы удалять, по каким полям составлять условие)... возьми доступные компоненту данные и попробуй составить запрос сам, уверен этого не получится (даже если б ты мог, знал SQL), чегото будет не так, чегото будет нехватать/ошибочно.

> просто надо из программы удалять строки в таблице.
- девушка да у вас же счетчик бензина на нуле.
- да мне не надо чтобы счетчик работал, просто чтобы машина ехала.
© типа анекдот, от ремонтников по вызову.


Ega23   (2007-04-19 16:04:00) [7]


> Ситуация такая: программа работает с базой Access и имеет
> компонетны: DBGrid,ADOConnector,ADOTable, DBNavigator. И
> при удалении строки с помощью DBNavigator страз же выдает
> сообщение :"Слишком сложный запрос". Хотя в программе нет
> вообще запросов. и Query  не использую, просто надо из программы
> удалять строки в таблице.


Информации недостаточно.
Попробуй ответить на мой вопрос:

Программа работает с базо MSSQL через ADO и имеет компоненты ADOConnection, ADODataSet, DBGrid и кнопку. При удалении строки с помощью кнопки вылетает сообщение AccessViolation in module ....


lewka   (2007-04-19 15:18:00) [8]

Ситуация такая: программа работает с базой Access и имеет компонетны: DBGrid,ADOConnector,ADOTable, DBNavigator. И при удалении строки с помощью DBNavigator страз же выдает сообщение :"Слишком сложный запрос". Хотя в программе нет вообще запросов. и Query  не использую, просто надо из программы удалять строки в таблице.


Ega23   (2007-04-19 14:10:00) [9]


> p.s. верно заданный вопрос это половина ответа. © расказ
> Шекли вроде бы.
>


я бы сказал 90%. Больше половины случаев, когда я писал вопрос на форум, во время написания находил ответ. Или через 5 минут после отправки.
Т.к. пока грамотнопишешь вопрос, появляется масса мыслей. А вот если таких мыслей не появляется, то таки да, надо метлу в руки брать и в дворники идти.

З.Ы. sniknik © Чё-то тебя сильно разобрало... Хотя оно понятно: скоро сессия, двоечников как обычно на форуме полно. Идиотизьм растёть...  :)


sniknik   (2007-04-19 13:11:00) [10]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1176965523&n=18
почитай. и главное попробуй ответить автору, не отвечай, а просто составь ответ. получилось?

а твоя манера задания вопроса не многим лучше... ну вот чего тебе сказать на "чего ты упустил при создании приложения" если ни самого твоего приложения, ни описания по которому его можно представить, никто в глаза е видел?
и к чему сообщение "Слишком сложный запрос" если самого запроса нет, и вообще неясно используется ли "запросный" компонент или adotable который уже устали предупреждать, чтобы не использовали...
зачем указание, что таблица одна (что в общем то всем параллельно), а структура таблицы от которой чтото может зависеть скрывается...

p.s. верно заданный вопрос это половина ответа. © расказ Шекли вроде бы.


Наверх

Титульная страница Поиск, карта сайта Написать письмо