|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Помогите разобраться...
Проблема проста, и я уверен что Вы сможете мне помочь.
Есть БД, нужно сделать поиск с помощью SQL. Код:
Select * from www.db where fio='+edit1.text+'; В чем дело? Заранее благодарен, с ув. Лунтик-Некрофил. |
#2
|
|||
|
|||
для начала:
1. Где кавычки вокруг значения поля. 2. Это сравнение с учетеом регистра. Ты уверен, что это правильно. 3. Не наравится мне имя таблицы, но это уже детали. |
#3
|
||||
|
||||
1. С кавычками перебрал великое множество вариантов, результат тот же.
2. С регистром уверен. 3. Это уже детали. Я понимаю, что краткость чья-то там сестра, но всё же - нельзя ли немного поинформативнее? Желательно с правильно оформленным примером, если Вам не сложно. |
#4
|
|||
|
|||
Код:
Query1.SQL.Text := 'SELECT * FROM www.db WHERE fio = '''+edit1.Text+''''; Query1.Open; Должно быть так. А вообще тут у тебя условие на точное совпадение, т.е. даже любой пробел в поле или в едите даст уже неравенство. |
#5
|
||||
|
||||
Большое спасибо, работает). А как сделать на частичное совпадение? Например у метода Locate был option(или что-то подобное), где можно было записать учет регистра, частичное совпадение и т.п. Через SQL такое реально?
Заранее спасибо. |
#6
|
||||
|
||||
У вас Парадокс как я понял, там диалект SQL может несколько отличаться от стандарта. Так попробуйте:
Код:
Query1.SQL.Text := 'SELECT * FROM www.db WHERE fio like ''%'+edit1.Text+'%'''; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
||||
|
||||
К сожалению не помогло... Но не в этом теперь дело)
Возникла новая проблемка - надо поставить радиогруппу. В ней записанны поля таблицы. Т.е. словами юзера "Выбираем в радио нужное поле для поиска->Пишел в строке ввода нужную нам запись-> Оп, нашлось". Задачка не очень тяжелая, но не могу разобраться с этими ковычками, делфи ругается, либо не находит записей вообще. Код:
var s:string; begin case radiogroup1.ItemIndex of 0:s:='Fio'; 1:s:='Znak'; 2:s:='Data'; end; Query1.Close; Query1.SQL.Clear; Query1.SQL.Text := 'SELECT * FROM www.db WHERE ''s''='''+edit1.Text+''''; query1.Open; Как мне устроить переменную s поудобней чтобы и программа работала, и делфи по пустякам меня матом не крыла? Заранее спасибо) |
#8
|
||||
|
||||
С кавычками вложенными лучше так бороться:
Код:
Query1.SQL.Text := Format('SELECT * FROM www.db WHERE %s=%s',[s,QuotedStr(Edit1.Text)]); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
||||
|
||||
Страдалецъ, огромное спасибо, помогли нереально)
|