Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2010, 01:16   #1
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию Delphi TQuery не открывается БД

Доброго времени суток.

С помощью TTable создаю базу (dBase) рядом с экзешником программы:
Код:
Form1.Table1.DatabaseName:= ExtractFilePath(Application.ExeName);
  Form1.Table1.TableName:='test';
  Form1.Table1.TableType := ttDBase;
  with Form1.Table1.FieldDefs do
   begin
     // тут добавляю поля
   end;
  Form1.Table1.CreateTable;
  Form1.Table1.Close;

// дальше открываю ее и импортирую данные из нескольких файлов
После этого хочу открыть ее в TQuery и послать sql-запрос, чтобы вывести в TDBGrid данные по определенным критериям:
Код:
procedure load;
begin
 Form1.Query1.EnableControls;
 Form1.DataSource1.Enabled := true;
 Form1.Query1.DatabaseName := ExtractFilePath(Application.ExeName);

 Form1.DataSource1.DataSet:=Form1.Query1;
 Form1.DBGrid1.DataSource:=Form1.DataSource1;

 Form1.Query1.Close;
 Form1.Query1.SQL.Clear;
 Form1.Query1.SQL.Add('Select * from test.dbf');
 Form1.Query1.Open;

end;
Но в гриде пусто. Никаких ошибок не выводит. Когда вывожу в TTable, то все показывает.
Чего ему еще надо?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.09.2010, 02:54   #2
shodlik
Новичок
Джуниор
 
Регистрация: 03.09.2010
Сообщений: 2
По умолчанию

load где то выполняется или нет
shodlik вне форума Ответить с цитированием
Старый 03.09.2010, 05:43   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Нет, тут надо еще кое что сделать. Смотри, когда ты переключаешь на Query, то ты должен и другие два компонента DataSource и DBGrid настроить на него. Вот так:
Код:
 Form1.DataSource1.DataSource:=Form1.Query1;
 Form1.DBGrid1.DataSource:=Form1.DataSource1;
как-то так. Если словесно пояснить, то получается, что мы DBGrid настроили на DataSource, который в свою очередь перенастроили на Query.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 03.09.2010, 05:49   #4
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Еще, перед тем как переключать источник данных, нужно все делать неактивным (disabled), а потом обратно - активным (enabled)
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 03.09.2010, 19:00   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

artemavd, так ведь это уже там есть )

Проблему решил. Она, как оказалось, была в другом месте. Даже как-то и говорить немного стыдно
Прав оказался shodlik. Из-за косяка в другой функции load не вызывалась. Обычно не допускаю такого рода ошибок, поэтому и не обратил внимания.

Всем спасибо за участие )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объект TQuery Tomatos БД в Delphi 6 03.07.2009 05:28
[Delphi] TQuery и реализация запроса. MaGWaY_minsk Помощь студентам 2 12.05.2009 00:31
Синтаксис запросов в Delphi (TQuery) Lady_olga БД в Delphi 6 25.05.2008 18:09
TQuery - путь Nati БД в Delphi 8 18.07.2007 12:33
TQuery EdNovice БД в Delphi 2 08.05.2007 14:44