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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.08.2008, 14:14   #1
antoni
Пользователь
 
Регистрация: 01.08.2008
Сообщений: 32
Восклицание Запросы SQL в Delphi

Люди помогите !!!!
Как написать запрос для нечеткого сравнения ???
вот полный текст запроса
base.DataModule1.ADOQuery_dom.Activ e:=false;
base.DataModule1.ADOQuery_dom.SQL.C lear;
base.DataModule1.ADOQuery_dom.SQL.A dd('SELECT *');
base.DataModule1.ADOQuery_dom.SQL.A dd('FROM spr_dom');
DataModule1.ADOQuery_dom.SQL.Add ('WHERE fio LIKE '''+RzEdit1.Text+'''');
base.DataModule1.ADOQuery_dom.Activ e:=true;

я просто не соображу куда знак % ставить ???
если просто в Query Analyzer писать то все просто
use tel_spr
SELECT *
from spr_dom where fio like'%Тихонов%'
и все работает а как в delphi написать я никак не соображу.
antoni вне форума
Старый 01.08.2008, 14:49   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

поиск по части слова
Код:
DataModule1.ADOQuery_dom.SQL.Add ('WHERE fio LIKE like"'+'%'+RzEdit1.Text+'%'+'"');
SERG1980 вне форума
Старый 01.08.2008, 15:10   #3
antoni
Пользователь
 
Регистрация: 01.08.2008
Сообщений: 32
Восклицание

Цитата:
Сообщение от SERG1980 Посмотреть сообщение
поиск по части слова
Код:
DataModule1.ADOQuery_dom.SQL.Add ('WHERE fio LIKE like"'+'%'+RzEdit1.Text+'%'+'"');
Нет не получается Выходит ошибка invalid column name '%Тищенко%'
кстати два like так и должно быть или это ошибка ???
antoni вне форума
Старый 01.08.2008, 15:38   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Я помоему вам два слова LIKE вставил попробуйте так
Код:
DataModule1.ADOQuery_dom.SQL.Add ('WHERE fio LIKE"'+'%'+RzEdit1.Text+'%'+'"'
SERG1980 вне форума
Старый 01.08.2008, 15:58   #5
antoni
Пользователь
 
Регистрация: 01.08.2008
Сообщений: 32
Восклицание

Цитата:
Сообщение от SERG1980 Посмотреть сообщение
Я помоему вам два слова LIKE вставил попробуйте так
Код:
DataModule1.ADOQuery_dom.SQL.Add ('WHERE fio LIKE"'+'%'+RzEdit1.Text+'%'+'"'
Нет выдает ту же самую ошибку
втавил
DataModule1.ADOQuery_dom.SQL.Add ('WHERE fio LIKE"'+'%'+RzEdit1.Text+'%'+'"');

выходит ошибка column name '%Тищенко%'
antoni вне форума
Старый 01.08.2008, 16:24   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Вот запрос из мойе проги работает на 100%
Код:
Zapros:='Select * from configuration where name like"'+'%'+fam+'%'+'"' //часть слова
обратите внимание на двойные кавычки которые стоят сразу после слова like и в конце двойные кавычки заключены в одинарные

Последний раз редактировалось SERG1980; 01.08.2008 в 16:27.
SERG1980 вне форума
Старый 01.08.2008, 17:05   #7
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Да не мучай ты себя этими кавычками. Сделай так:

DataModule1.ADOQuery_dom.SQL.Add ('WHERE fio LIKE )
DataModule1.ADOQuery_dom.SQL.Add (QuotedStr('%' + RzEdit1.Text + '%'));

Функция QuotedStr возвращает строку, заключенную в кавычки.
Баламут вне форума
Старый 01.08.2008, 17:23   #8
KAMENYKA
Пользователь
 
Аватар для KAMENYKA
 
Регистрация: 06.12.2007
Сообщений: 87
По умолчанию

На будующие советую тебе выполнять запросы через ADODataSet!!

Пример:
if ADODataSet1.State<>dsInActive then ADODataSet1.Close;
s:='Select * From Konkurrent';
ADODataSet1.Connection:=ADOConnecti on1;
ADODataSet1.CommandText:=s;
ADODataSet1.Open;
ADODataSet1.Connection:=nil;

Только учти он выдаёт ошибку если запрос без возвращаемых параметров!!!
KAMENYKA вне форума
Старый 01.08.2008, 17:25   #9
antoni
Пользователь
 
Регистрация: 01.08.2008
Сообщений: 32
Восклицание

Ругается на строку
DataModule1.ADOQuery_dom.SQL.Add (QuotedStr('%' + RzEdit1.Text + '%'));

текст сообщения
[Error] form_dom.pas(40): Missing operator or semicolon
[Fatal Error] tel_spr.dpr(7): Could not compile used unit 'form_dom.pas'
antoni вне форума
Старый 01.08.2008, 17:36   #10
antoni
Пользователь
 
Регистрация: 01.08.2008
Сообщений: 32
Восклицание

Цитата:
Сообщение от Баламут Посмотреть сообщение
Да не мучай ты себя этими кавычками. Сделай так:

DataModule1.ADOQuery_dom.SQL.Add ('WHERE fio LIKE )
DataModule1.ADOQuery_dom.SQL.Add (QuotedStr('%' + RzEdit1.Text + '%'));

Функция QuotedStr возвращает строку, заключенную в кавычки.
Ругается на строку
DataModule1.ADOQuery_dom.SQL.Add (QuotedStr('%' + RzEdit1.Text + '%'));

текст сообщения
[Error] form_dom.pas(40): Missing operator or semicolon
[Fatal Error] tel_spr.dpr(7): Could not compile used unit 'form_dom.pas'
antoni вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL - запросы в Delphi zetrix БД в Delphi 41 08.06.2010 14:07
Запросы к БД xDjarx БД в Delphi 6 14.05.2008 17:04
Многотабличные запросы! (модификация данных). MSSQL +Delphi MoGiLsHiKK БД в Delphi 1 25.12.2007 16:21
Запросы к БД H@Z@RD Общие вопросы Delphi 3 28.03.2007 01:39