Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка на строке Query1->Open() 
:(
    Опции темы
artsb
Дата 25.4.2008, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Всем привет!
Сейчас изучаю работу с базами данных в Билдере. Задача такая: сделать простую записную книжку. Базу я делал в Microsoft Access 2007, зарегистрировал её.
На форме DBGrid, Query, DataSource, Table. Есть кнопка, при нажатии на которую открывается окно, в котором можно ввести слово для поиска:
Код

void __fastcall TfMain::BitBtn1Click(TObject *Sender)
{
fFind->Tag=0;
fFind->ShowModal();
if(fFind->Tag)
{
        Query1->SQL->Text="Select * from зап_книга where ФИО like \042%"+
                                fFind->Edit1->Text+"%\042";
        if(CheckBox1->Checked) Label1->Caption="SQL запрос: "+Query1->SQL->Text;
        Query1->Open();
        if(Query1->RecordCount!=0)
                DataSource1->DataSet=Query1;
        else
        {
                ShowMessage("В базе данных нет запрашиваемой"
                         " информации: "+fFind->Edit1->Text);
                DataSource1->DataSet=Table1;
        }
}
}


При запуске программы DBGrid заполняется нормально, но при попытке сделать поиск, на строке Query1->Open(), вылетает ошибка:

user posted image

В чём может быть дело?
И ещё один вопрос: Как сделать, чтобы база регистрировалась автоматически под нужным псевдонимом. Ведь если я дам кому-нибудь эту программу ему нужно тоже регистрировать базу данных. А если он не умеет smile

Добавлено через 1 минуту и 1 секунду
И как избавиться от окна с запросом имени и пароля. А то оно уже надоело.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
mrbrooks
Дата 25.4.2008, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Хм. А ты через что коннектишься к базе. После слова "регистрация" могу предположить что это BDE. В этом случае используй для теста SQL-запроса используй SQL Monitor. 
Но с Access лучше юзать ADO.

И для начала зделай запрос попроще типа 
Код

SELECT * FROM зап_книга


Query и Table лучше заменить одним DataSet
PM MAIL   Вверх
artsb
Дата 25.4.2008, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



mrbrooks спасибо, что помогаете. 
Я делаю эту программу по книге "C++ Builder в задачах и примерах". На диске есть исходник. При запуске exe'шника вылетает ошибка: не определён псевдоним adrbk (база называется adrbk.db). Как его определить? 
База создана в Paradox. Кстати, где его взять? В книге написано, что он устанавливается вместе с Билдером, но его что-то не нашёл. И как вообще автомотизировать этот процесс: определение псевдонимов, регистрация БД.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Smorodin
Дата 25.4.2008, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрейший
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 10.4.2006
Где: Пермь

Репутация: 1
Всего: 1



страница 161, пункты 4, 5, 6.


--------------------
Сделать можно все, только вопрос - когда?
PM MAIL Skype   Вверх
mrbrooks
Дата 25.4.2008, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Для регистрации нужно запустить BDE Administrator Object ->New  выбираем STANDART , появляется вкладка definition в PATH  указываем путь к базе данных Paradox, именуем алиас как  adrbk и жмем apply. (в контекстном меню ). все база зарегистрирована
PM MAIL   Вверх
artsb
Дата 25.4.2008, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Smorodin, я читал smile
Регистрирую базу с помощью утилиты "Источники данных (ODBC)". Но что-то не получается. Напишите, что именно нужно сделать при регистрации.

Добавлено через 44 секунды
Цитата(mrbrooks @  25.4.2008,  18:49 Найти цитируемый пост)
Для регистрации нужно запустить BDE Administrator Object ->New  выбираем STANDART , появляется вкладка definition в PATH  указываем путь к базе данных Paradox, именуем алиас как  adrbk и жмем apply. (в контекстном меню ). все база зарегистрирована 

Это в Билдере?

Добавлено через 3 минуты и 22 секунды
Уже нашёл. Буду пробовать.

Добавлено через 8 минут и 33 секунды
Большой сенкс! Получилось. Теперь другая проблема: в базе одна строка и четыре столбца. Редактируются только те, где уже был текст. Как редактировать остальные. И как добавлять и удалять записи?

Добавлено через 13 минут и 12 секунд
На счёт редактирования разобрался: сам виноват smile
Остаётся вопрос как добавлять и удалять записи.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
mrbrooks
Дата 25.4.2008, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Я точно не помню но кажется на прямую с БД  работает утилита SQL Monitor. А так тока программно    smile  еще упрощает жизнь компонент DBNavigator. 
PM MAIL   Вверх
artsb
Дата 25.4.2008, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Уже всё работает. Ещё раз спасибо. Просто у кого-то (меня) руки кривые smile
Сейчас такой вопрос: кинул на форму DBNavigator для управления базой. Всё работает, но мне не нравится, что при нажатии кнопки добавить он вставляет строку перед выделеной строкой, а не после. Как это исправить? И как можно менять местами строки?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0908 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.