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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2011, 10:02   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию SQL запрос к dbf таблице

никак не пойму с этими кавычками ''' и этими %% сколько их ставить и где именно ставить?
запрос типа
select *
from kpy
работает
но если я хочу выбрать например
where fam ='' или
where like
то выдает ошибку как бы я не писал и сколько бы этих кавычек не ставил,помогите ребята с синтаксисом
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 18.07.2011, 10:56   #2
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

1) quotedstr()
2) #39
3) Chr(39)
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 18.07.2011, 14:08   #3
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

без этого нельзя? для меня это сложно quotedstr итд...лишние движения
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 18.07.2011, 16:43   #4
Pavels13
 
Регистрация: 21.05.2008
Сообщений: 8
По умолчанию SQL запрос к dbf таблице

База из BDDEMOS Delphi7:
Query1.SQL.Clear;
Query1.SQL.Add('select * from animals');
Query1.SQL.Add('where name like ' + #39 + Edit1.Text + #39);
Query1.SQL.Add(' or ' + 'name like ' + #39 + Edit2.Text + #39);
Query1.Active := true;
Возьми за шаблон и добавляй сколько угодно условий, и ковычки уже стоят где надо. А дальше можно и условие динамически подставлять, например из ComboBox (=,<>,>,<....). Разбирайся.
Pavels13 вне форума Ответить с цитированием
Старый 18.07.2011, 17:23   #5
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

вот что я написал
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 adoQuery1.SQL.Clear;
 adoQuery1.SQL.Add('select * from ххх');
 adoQuery1.SQL.Add('where ххх like ' + #39 + Edit1.Text + #39);
 adoQuery1.Active := true;
end;
но прит запуске выдает непредвиденную ошибку драйвера внешней базы данных
у меня rad studio 2007
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 18.07.2011, 18:33   #6
Pavels13
 
Регистрация: 21.05.2008
Сообщений: 8
По умолчанию

Попробуйте через разные драйвера подключится BDE работает?
Pavels13 вне форума Ответить с цитированием
Старый 18.07.2011, 18:59   #7
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

блин ниче не понял,дома теперь на 7-ке через dbase files все работает,по ходу на работе с дравами ОДБЦ что то не так
но по ходу возник еще один вопрос при запросе
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 adoQuery1.SQL.Clear;
 adoQuery1.SQL.Add('select * from ххх');
 adoQuery1.SQL.Add('where ххх like ' + #39 + Edit1.Text + #39);
 adoQuery1.Active := true;
end;
он выдает только одну запись,хотя там еще есть записи удовлетворяющие условию запроса,пробовал с разными именами но результат только одна запись,это как можно объянсить?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось betirsolt; 18.07.2011 в 19:05.
betirsolt вне форума Ответить с цитированием
Старый 18.07.2011, 19:30   #8
Pavels13
 
Регистрация: 21.05.2008
Сообщений: 8
По умолчанию

Напишите в Edit % - должен вывести все записи
Pavels13 вне форума Ответить с цитированием
Старый 18.07.2011, 20:28   #9
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

блин дело оказывается в регистре,там все заглавные а я писал строчными,а как сделать чтоб регистр не имел значения?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 18.07.2011, 23:32   #10
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Это можно сделать при помощи приведения к единому регистру. Используй одну из этих функций:
UpperCase() - верхний регистр
AnsiUpperCase() - верхний регистр (ansi)
LowerCase() - нижний регистр
AnsiLowerCase() - нижний регистр (ansi)

Последний раз редактировалось Gulik; 18.07.2011 в 23:35.
Gulik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
автоматическое обновление таблице через запрос sql eda Microsoft Office Excel 8 19.04.2011 12:47
Запрос к dbf таблице!!! dengul БД в Delphi 4 29.03.2011 09:36
Как отследить изменения в таблице DBF? maks448 БД в Delphi 4 29.11.2009 20:42
Изменение пути к таблице .dbf Tanuska___:) БД в Delphi 16 22.04.2008 15:52
удалить записи в таблице Dbf. pups БД в Delphi 7 15.12.2006 19:19