Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > не возвращает данные из access


Автор: aleksh 31.8.2010, 10:30
Чем пользуюсь - файлик mdb, в нем таблица, из delphi 2007 пытаюсь сделать выборку через ado

составляю простой запрос
Код

select * from tablog
where module = 'asdf'

и ничего не получаю в грид
имя таблицы и значение копировал из access-а
данные в ячейки, ниоткуда не подтягиваются
выборка по другим столбцам работает

почему такое может происходить и где искать что поченить?

Автор: Deniz 31.8.2010, 11:25
Вероятно module зарезервированное слово

Автор: pseud 31.8.2010, 11:42
Цитата(Deniz @  31.8.2010,  11:25 Найти цитируемый пост)
Вероятно module зарезервированное слово 

значит попытаться выполнить этот запрос прямо в Access для подтверждения.
Цитата(aleksh @  31.8.2010,  10:30 Найти цитируемый пост)
почему такое может происходить и где искать что поченить? 

Цитата(aleksh @  31.8.2010,  10:30 Найти цитируемый пост)
через ado

Конкретнее?
Как открываешь соединение?
Какой компонент как выборку используешь? Как его открываешь? Как его подключаешь к гриду?
Без грида изучи, что происходит:
Код

ADOQuery1.Active := True;
if not ADOQuery1.IsEmpty then
  ShowMessage(IntToStr(ADOQuery1.RecordCount));

Копай.

Автор: Данкинг 31.8.2010, 12:41
На самом Access'е такой запрос отлично работает:
Код

select * from t where module = 'aaa'

Т.е. ошибки в подключении/гриде.

Автор: Deniz 31.8.2010, 12:43
aleksh, все-ьто надо было:
Код
select * from tablog where [module] = 'asdf'

Автор: aleksh 31.8.2010, 15:27
toDeniz: спасибо, таки действительно достаточно взять название в скобки. а что это, кстати меняет?
topseud: соединение в adoquery через connectionstring, открываю активацией query, к ней привязан datasource, а к нему dbgrid

хотя не все проблемы решились, есть один столбец, где повторяющаяся одна строковая запись и несколько пустых ячеек, так вот при
Код

select * from tablog
where [user] <> 'system'

query таки пуста, но если эти строки вызывать по полю id возвращает нормально, а при таком же условии выборки в других столбцах с другими строками отрабатывает нормально. в аксесе тоже ничего не возвращает... ну да разберемся или спишем на "неправильный" файл

еще раз всем спасибо

Автор: pseud 31.8.2010, 16:13
Код

select 
  * 
from 
  tablog
where 
  [user] is null
  or [user] <> 'system'


Добавлено через 1 минуту и 9 секунд
null = 'system'    - False
null <> 'system'    - тоже False

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)