Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
1

выборка в delphi по типу boolean

16.05.2011, 08:35. Показов 2945. Ответов 22
Метки нет (Все метки)

Здравствуйте! Нужен совет.
Необходимо выбрать всех учащихся, кто не закончил учиться (у таких поле end равно false)
В access запрос работает, в delphi нет.
SQL
1
SELECT s.id_stud FROM students s WHERE s.end = FALSE
Ошибка именно в условии where.
Как сформировать условие, чтобы запрос сработал?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2011, 08:35
Ответы с готовыми решениями:

Фильтрация по типу BOOLEAN
У меня есть таблица. В ней есть столбик "Дата выдачи", в котором заполняются данные типа DateTime....

Выборка по логическому типу данных
Здравствуйте! Подскажите пожалуйста, как прописать в запросе "ЗапросКартаДетальПростоиПоДате"...

Выборка по типу нужному значению string
Существует база данных из которой мне нужно выбрать те записи которые из столбца tbl_name(TEXT)...

Хранимая процедура и выборка, где bit(boolean) поле равно NULL
В общем, не большой я мастер в хранимых процедурах, но вот пришлось браться за них. Имеется...

22
1382 / 1153 / 215
Регистрация: 04.04.2011
Сообщений: 4,010
16.05.2011, 10:59 2
WHERE s.end = 0
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
16.05.2011, 12:33  [ТС] 3
Цитата Сообщение от MsGuns Посмотреть сообщение
WHERE s.end = 0
К сожалению, не работает. делфи выдает неопознанную ошибку.
0
1382 / 1153 / 215
Регистрация: 04.04.2011
Сообщений: 4,010
16.05.2011, 13:12 4
не врите.
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
16.05.2011, 13:42  [ТС] 5
весь код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
with Module.FUnivers do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT s.id_stud FROM students s WHERE (s.end = 0)');
      Open;
      count := Module.FUnivers.RecordCount;
      showmessage(inttostr(count));
      GetLocalTime(ST);
      E := CreateOleObject('Excel.Application');
      E.Application.EnableEvents := False;
      E.WorkBooks.Add;
      E.WorkSheets[1].Activate;
      E.Visible := True;
      E.ActiveWorkBook.SaveAs(FileName := GetCurrentDir + '\Docs\enrolment.xls');
  end;
по сути, если бы все работало, мне должен был открыться excel. но! увы, delphi выдает "Неопознанная ошибка". даже не выдается сообщение с количеством записей в выборке. без условия и сообщение выводится, и excel открывается.
0
1382 / 1153 / 215
Регистрация: 04.04.2011
Сообщений: 4,010
16.05.2011, 14:55 6
У Вас между выполнением запроса (Open) и Экселем, который "должен был открыться" куча кода.
В частности вот этот :

count := Module.FUnivers.RecordCount;

И эта.. уберите with. В данном случае он весьма небезопасен

"Неопределенная ошибка" выдается не Delphi, а OLE и, как правило указывает на полную белиберду в запросе, например Alter Table .. Select .."

Добавлено через 3 минуты
Вы еще не сказали, какая БД, далеко не для всех RecordCount возвращает то, что Вы ожидаете
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
16.05.2011, 16:34  [ТС] 7
delphi связываю с access через ado
не спорю, код лишний, но потому как процедура в разработке, и потом все уберется
а через with все запросы написаны в программе, и все работает.
только здесь косяк, перепробовала все.
в итоге ошибка то до open, а не после
0
1382 / 1153 / 215
Регистрация: 04.04.2011
Сообщений: 4,010
16.05.2011, 16:49 8
Если ошибка именно на Open, то
- нет в базе такой таблицы,
- таблица открыта в самом акцесе в режиме "конструктор"
- кто-то другой юзает таблицу в монопольном режиме.

Сам запрос корректен. Только что проверил его.

ЗЫ. Для акцеса s=false и s=0, если s - логический тип данных, одно и то же.

Добавлено через 2 минуты
Кстати, если у Вас в дизайне стоит ADOConnection на базу = true и параметры соединения как монопольные, то тоже будет такая же ошибка ибо Ваше приложение будет пытаться влезть в БД, заблокированную самим Делфи.
ВСЕГДА делайте соединение с БД в рантайме и Вы избавитесь от множества невынужденных ошибок

Добавлено через 2 минуты
Короче, информации для более точного "дагноза" Вы дали явно недостаточно.
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
16.05.2011, 16:51  [ТС] 9
все три перечисленных случая не подходят в данном случае.
для сравнения, у меня delphi 7 и access 2003, что у вас? возможно, если вы пользуетесь обновленными версиями, у вас и не выходят эти ошибки.
а в access, не спорю, запрос полностью работает
0
1382 / 1153 / 215
Регистрация: 04.04.2011
Сообщений: 4,010
16.05.2011, 16:55 10
Если нет сторонних компонент, то запакуйте проект вместе с файлом акцесс (если большой, то упакуйте его) и выложите куданить
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
16.05.2011, 16:59  [ТС] 11
http://disk.tom.ru/zcr2prn
0
1382 / 1153 / 215
Регистрация: 04.04.2011
Сообщений: 4,010
16.05.2011, 17:07 12
А файл проекта ?
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
16.05.2011, 17:08  [ТС] 13
все в архиве, Students.exe
0
1382 / 1153 / 215
Регистрация: 04.04.2011
Сообщений: 4,010
16.05.2011, 17:13 14
Вы, девушка, что мне прислали ? По ходу я более могу не заморачиваться Вашими глюками ?
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
16.05.2011, 17:24  [ТС] 15
в смысле? по ссылке находится заархивированный проект
0
1382 / 1153 / 215
Регистрация: 04.04.2011
Сообщений: 4,010
16.05.2011, 17:27 16
Давай в почту msguns@ukr.net

Добавлено через 1 минуту
По ссылке я нашел только "Проект v.6.rar"
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
16.05.2011, 17:35  [ТС] 17
таки логично, его разархивировать надо, файлов то дофига
0
1382 / 1153 / 215
Регистрация: 04.04.2011
Сообщений: 4,010
16.05.2011, 17:43 18
Да уж, до фига..
Аж два модуля (Addresses, Calendar), БД и два ее бэкапа, да 3 док-та Word
с "рыбами" приказов томского профтехучища №6
Короче, всего наилучшего, жаль потраченного времени О_о
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 12
16.05.2011, 17:46  [ТС] 19
уж извините, пишу как могу.. я не программист с десятилетним стажем, увы. Вам тоже всего хорошего
0
1382 / 1153 / 215
Регистрация: 04.04.2011
Сообщений: 4,010
16.05.2011, 17:56 20
Причем тут "как могу" ?
Где модули Referenses и Modules, на которые у Вас ссылки из формы ввода данных Addresses ?
Где компоненты доступа к БД или хотя бы код создания таковых ?
Где файл проекта наконец ?

Мне сдается, что проект не Ваш, исходник его не в одной папке, а Вы просто не в состоянии даже разобраться из каких "кусков" состоит Ваша "программа" и где они "лежат"

Добавлено через 4 минуты
И еще. Зачем мне 3 базы ? И Вы даже не потрудились сжать базу. А я ведь просил
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2011, 17:56

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Delphi,Access, AdoQuery, SQL (UPDATE SET) не вносится boolean значение
Вечер добрый, ну или утро, у кого как) Столкнулся с проблемой, ни как не могу решить, если можете...

Есть ли альтернатива типу Extended из Delphi
Считываю некоторый файл побайтово. Есть информация, записанная в типе Extended. В Delphi все...

Какой компонент Delphi соответствует типу bit?
Привет всем, проблема в следующим. Из делфи я добавляю данные в БД MySQL. Но сейчас стало...

В чем разница между boolean и Boolean
В чем разница между boolean и Boolean


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.